メインページ | モジュール | データ構造 | Directories | ファイル一覧 | データフィールド | グローバル | 関連ページ

adin_mic_sp.c

説明を見る。
00001 
00040 /* adin_mic_sp.c --- adin microphone library for spAudio
00041  * by Hideki Banno */
00042 
00043 #include <sp/spAudioLib.h>
00044 
00045 #include <sent/stddefs.h>
00046 #include <sent/adin.h>
00047 
00048 static spAudio audio = NULL;    
00049 static long buffer_length = 256; 
00050 
00051 static float rate;              
00052 
00061 boolean
00062 adin_mic_standby(int sfreq, void *dummy)
00063 {
00064   rate = sfreq;
00065   if (adin_mic_start() == FALSE) return FALSE;
00066   if (adin_mic_stop() == FALSE) return FALSE;
00067   return TRUE;
00068 }
00069 
00075 boolean
00076 adin_mic_start()
00077 {
00078   if (audio == NULL) {
00079     audio = spInitAudio();
00080   }
00081   spSetAudioSampleRate(audio, rate);
00082   spSetAudioChannel(audio, 1);
00083   spSetAudioSampleBit(audio, 16);
00084 #ifdef SP_AUDIO_NONBLOCKING
00085   spSetAudioBlockingMode(audio, SP_AUDIO_NONBLOCKING);
00086 #endif
00087   
00088   if (!spOpenAudioDevice(audio, "ro")) {
00089     j_printerr("Error: adin_mic_sp: spOpenAudioDevice\n");
00090     return FALSE;
00091   }
00092     
00093   return TRUE;
00094 }
00095 
00101 boolean
00102 adin_mic_stop()
00103 {
00104   spCloseAudioDevice(audio);
00105   return TRUE;
00106 }
00107 
00120 int
00121 adin_mic_read(SP16 *buf, int sampnum)
00122 {
00123   long nread;
00124 
00125 #ifdef SP_AUDIO_NONBLOCKING
00126   nread = sampnum;
00127 #else
00128   if (sampnum <= buffer_length) {
00129       nread = sampnum;
00130   } else {
00131       nread = buffer_length;
00132   }
00133 #endif
00134   nread = spReadAudio(audio, (short *)buf, nread);
00135   
00136   return nread;
00137 }

Juliusに対してTue Mar 28 16:20:50 2006に生成されました。  doxygen 1.4.2