/[qemu]/qemu/audio/fmodaudio.c
ViewVC logotype

Diff of /qemu/audio/fmodaudio.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4 by bellard, Sun Oct 30 18:58:22 2005 UTC revision 1.5 by bellard, Sat Nov 5 18:55:27 2005 UTC
# Line 78  static void GCC_FMT_ATTR (2, 3) fmod_log Line 78  static void GCC_FMT_ATTR (2, 3) fmod_log
78  {  {
79      va_list ap;      va_list ap;
80    
81      AUD_log (AUDIO_CAP, "Can not initialize %s\n", typ);      AUD_log (AUDIO_CAP, "Could not initialize %s\n", typ);
82    
83      va_start (ap, fmt);      va_start (ap, fmt);
84      AUD_vlog (AUDIO_CAP, fmt, ap);      AUD_vlog (AUDIO_CAP, fmt, ap);
# Line 356  static void fmod_fini_out (HWVoiceOut *h Line 356  static void fmod_fini_out (HWVoiceOut *h
356      }      }
357  }  }
358    
359  static int fmod_init_out (HWVoiceOut *hw, int freq, int nchannels, audfmt_e fmt)  static int fmod_init_out (HWVoiceOut *hw, audsettings_t *as)
360  {  {
361      int bits16, mode, channel;      int bits16, mode, channel;
362      FMODVoiceOut *fmd = (FMODVoiceOut *) hw;      FMODVoiceOut *fmd = (FMODVoiceOut *) hw;
363    
364      mode = aud_to_fmodfmt (fmt, nchannels == 2 ? 1 : 0);      mode = aud_to_fmodfmt (as->fmt, as->nchannels == 2 ? 1 : 0);
365      fmd->fmod_sample = FSOUND_Sample_Alloc (      fmd->fmod_sample = FSOUND_Sample_Alloc (
366          FSOUND_FREE,            /* index */          FSOUND_FREE,            /* index */
367          conf.nb_samples,        /* length */          conf.nb_samples,        /* length */
368          mode,                   /* mode */          mode,                   /* mode */
369          freq,                   /* freq */          as->freq,               /* freq */
370          255,                    /* volume */          255,                    /* volume */
371          128,                    /* pan */          128,                    /* pan */
372          255                     /* priority */          255                     /* priority */
# Line 386  static int fmod_init_out (HWVoiceOut *hw Line 386  static int fmod_init_out (HWVoiceOut *hw
386      fmd->channel = channel;      fmd->channel = channel;
387    
388      /* FMOD always operates on little endian frames? */      /* FMOD always operates on little endian frames? */
389      audio_pcm_init_info (&hw->info, freq, nchannels, fmt,      audio_pcm_init_info (&hw->info, as, audio_need_to_swap_endian (0));
                          audio_need_to_swap_endian (0));  
390      bits16 = (mode & FSOUND_16BITS) != 0;      bits16 = (mode & FSOUND_16BITS) != 0;
391      hw->bufsize = conf.nb_samples << (nchannels == 2) << bits16;      hw->samples = conf.nb_samples;
392      return 0;      return 0;
393  }  }
394    
# Line 417  static int fmod_ctl_out (HWVoiceOut *hw, Line 416  static int fmod_ctl_out (HWVoiceOut *hw,
416      return 0;      return 0;
417  }  }
418    
419  static int fmod_init_in (HWVoiceIn *hw, int freq, int nchannels, audfmt_e fmt)  static int fmod_init_in (HWVoiceIn *hw, audsettings_t *as)
420  {  {
421      int bits16, mode;      int bits16, mode;
422      FMODVoiceIn *fmd = (FMODVoiceIn *) hw;      FMODVoiceIn *fmd = (FMODVoiceIn *) hw;
# Line 426  static int fmod_init_in (HWVoiceIn *hw, Line 425  static int fmod_init_in (HWVoiceIn *hw,
425          return -1;          return -1;
426      }      }
427    
428      mode = aud_to_fmodfmt (fmt, nchannels == 2 ? 1 : 0);      mode = aud_to_fmodfmt (as->fmt, as->nchannels == 2 ? 1 : 0);
429      fmd->fmod_sample = FSOUND_Sample_Alloc (      fmd->fmod_sample = FSOUND_Sample_Alloc (
430          FSOUND_FREE,            /* index */          FSOUND_FREE,            /* index */
431          conf.nb_samples,        /* length */          conf.nb_samples,        /* length */
432          mode,                   /* mode */          mode,                   /* mode */
433          freq,                   /* freq */          as->freq,               /* freq */
434          255,                    /* volume */          255,                    /* volume */
435          128,                    /* pan */          128,                    /* pan */
436          255                     /* priority */          255                     /* priority */
# Line 443  static int fmod_init_in (HWVoiceIn *hw, Line 442  static int fmod_init_in (HWVoiceIn *hw,
442      }      }
443    
444      /* FMOD always operates on little endian frames? */      /* FMOD always operates on little endian frames? */
445      audio_pcm_init_info (&hw->info, freq, nchannels, fmt,      audio_pcm_init_info (&hw->info, as, audio_need_to_swap_endian (0));
                          audio_need_to_swap_endian (0));  
446      bits16 = (mode & FSOUND_16BITS) != 0;      bits16 = (mode & FSOUND_16BITS) != 0;
447      hw->bufsize = conf.nb_samples << (nchannels == 2) << bits16;      hw->samples = conf.nb_samples;
448      return 0;      return 0;
449  }  }
450    
# Line 479  static int fmod_run_in (HWVoiceIn *hw) Line 477  static int fmod_run_in (HWVoiceIn *hw)
477    
478      new_pos = FSOUND_Record_GetPosition ();      new_pos = FSOUND_Record_GetPosition ();
479      if (new_pos < 0) {      if (new_pos < 0) {
480          fmod_logerr ("Can not get recording position\n");          fmod_logerr ("Could not get recording position\n");
481          return 0;          return 0;
482      }      }
483    

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26