////////////////////////////////////////////////////////////////////////////////
bool CInputWave::start()
{
- // \83f\83o\83C\83X\82ð\8aJ\82¢\82Ä\82¢\82é\82©\81A\98^\89¹\92\86\82È\82çfalse\82ð\95Ô\82·
+ // \83f\83o\83C\83X\82ð\8aJ\82¢\82Ä\82¢\82È\82¢\82©\81A\98^\89¹\92\86\82È\82çfalse\82ð\95Ô\82·
if(!m_isOpen || m_isInput){
return false;
}
+ // \83o\83b\83t\83@\82ð\8dÄ\82Ñ\93n\82³\82È\82¢\82Æ\90V\82½\82É\98^\89¹\82Å\82«\82È\82¢\82ç\82µ\82¢
+ // \83w\83b\83_\81[\82ð\8f\80\94õ\82·\82é
+ switch(waveInPrepareHeader(m_hWaveIn, &m_WaveHeader, sizeof(WAVEHDR))){
+ // \90¬\8c÷
+ case MMSYSERR_NOERROR:
+ break;
+
+ // \95Ê\82Ì\83X\83\8c\83b\83h\82ª\83n\83\93\83h\83\8b\82ð\8eg\97p\92\86\82Å\82 \82é
+ case MMSYSERR_HANDLEBUSY:
+ throw "waveInPrepareHeader: \95Ê\82Ì\83X\83\8c\83b\83h\82ª\83n\83\93\83h\83\8b\82ð\8eg\97p\92\86\82Å\82 \82é ";
+ break;
+ // \83f\83o\83C\83X\83n\83\93\83h\83\8b\82ª\96³\8cø\82Å\82 \82é
+ case MMSYSERR_INVALHANDLE:
+ throw "waveInPrepareHeader: \83f\83o\83C\83X\83n\83\93\83h\83\8b\82ª\96³\8cø\82Å\82 \82é";
+ break;
+ // \83f\83o\83C\83X\83h\83\89\83C\83o\82ª\82È\82¢
+ case MMSYSERR_NODRIVER:
+ throw "waveInPrepareHeader:\83f\83o\83C\83X\83h\83\89\83C\83o\82ª\82È\82¢";
+ break;
+ // \83\81\83\82\83\8a\82ð\8a\84\82è\93\96\82Ä\82ç\82ê\82È\82¢\81A\82Ü\82½\82Í\83\8d\83b\83N\82Å\82«\82È\82¢
+ case MMSYSERR_NOMEM:
+ throw "waveInPrepareHeader: \83\81\83\82\83\8a\82ð\8a\84\82è\93\96\82Ä\82ç\82ê\82È\82¢\81A\82Ü\82½\82Í\83\8d\83b\83N\82Å\82«\82È\82¢";
+ break;
+ }
+
+ // \83o\83b\83t\83@\82ð\93n\82·
+ switch(waveInAddBuffer(m_hWaveIn, &m_WaveHeader, sizeof(WAVEHDR))){
+ // \90¬\8c÷
+ case MMSYSERR_NOERROR:
+ break;
+
+ // \95Ê\82Ì\83X\83\8c\83b\83h\82ª\83n\83\93\83h\83\8b\82ð\8eg\97p\92\86\82Å\82 \82é
+ case MMSYSERR_HANDLEBUSY:
+ throw "waveInAddBuffer: \95Ê\82Ì\83X\83\8c\83b\83h\82ª\83n\83\93\83h\83\8b\82ð\8eg\97p\92\86\82Å\82 \82é";
+ break;
+
+ // \83f\83o\83C\83X\83n\83\93\83h\83\8b\82ª\96³\8cø\82Å\82 \82é
+ case MMSYSERR_INVALHANDLE:
+ throw "waveInAddBuffer: \83f\83o\83C\83X\83n\83\93\83h\83\8b\82ª\96³\8cø\82Å\82 \82é";
+ break;
+
+ // \83f\83o\83C\83X\83h\83\89\83C\83o\82ª\82È\82¢
+ case MMSYSERR_NODRIVER:
+ throw "waveInAddBuffer: \83f\83o\83C\83X\83h\83\89\83C\83o\82ª\82È\82¢";
+ break;
+
+ // \83\81\83\82\83\8a\82ð\8a\84\82è\93\96\82Ä\82ç\82ê\82È\82¢\81A\82Ü\82½\82Í\83\8d\83b\83N\82Å\82«\82È\82¢
+ case MMSYSERR_NOMEM:
+ throw "waveInAddBuffer: \83\81\83\82\83\8a\82ð\8a\84\82è\93\96\82Ä\82ç\82ê\82È\82¢\81A\82Ü\82½\82Í\83\8d\83b\83N\82Å\82«\82È\82¢";
+ break;
+
+ // \83o\83b\83t\83@\82ª\8f\80\94õ\82³\82ê\82Ä\82¢\82È\82¢
+ case WAVERR_UNPREPARED:
+ throw "waveInAddBuffer: \83o\83b\83t\83@\82ª\8f\80\94õ\82³\82ê\82Ä\82¢\82È\82¢";
+ break;
+
+ }
+
waveInStart(m_hWaveIn);
m_isInput = true;
return true;
m_isInput = false;
waveInStop(m_hWaveIn);
+
return true;
}
waveOutPrepareHeader(m_hWaveOut, &m_WaveHeader, sizeof(WAVEHDR));
m_isOpen = true;
-
- // \82±\82±\82©\82ç\95Ê\8aÖ\90\94\82É\82·\82é
-
- // \8fo\97Í\81i\8dÄ\90¶\81j\82ð\8aJ\8en\82·\82é
- waveOutWrite(m_hWaveOut, &m_WaveHeader, sizeof(WAVEHDR));
- m_isOutput = true;
-
return true;
}
////////////////////////////////////////////////////////////////////////////////
bool COutputWave::close()
{
- if(m_isOutput){
- m_isOutput = false;
- // \92\86\92f\97p\8aÖ\90\94
- waveOutReset(m_hWaveOut);
- }
-
if(m_isOpen){
m_isOpen = false;
// \83w\83b\83_\81[\89ð\95ú\97p\8aÖ\90\94
return true;
}
+////////////////////////////////////////////////////////////////////////////////
+// \8fo\97Í\81i\8dÄ\90¶\81j\82ð\8aJ\8en\82·\82é
+////////////////////////////////////////////////////////////////////////////////
+bool COutputWave::start()
+{
+ // \83f\83o\83C\83X\82ð\8aJ\82¢\82Ä\82¢\82È\82¢\82©\81A\8dÄ\90¶\92\86\82È\82çfalse\82ð\95Ô\82·
+ if(!m_isOpen || m_isOutput){
+ return false;
+ }
+
+ // \8fo\97Í\81i\8dÄ\90¶\81j\82ð\8aJ\8en\82·\82é
+ waveOutWrite(m_hWaveOut, &m_WaveHeader, sizeof(WAVEHDR));
+ m_isOutput = true;
+
+ return true;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// \8fo\97Í\81i\8dÄ\90¶\81j\82ð\92â\8e~\82·\82é
+////////////////////////////////////////////////////////////////////////////////
+bool COutputWave::stop()
+{
+ // \8dÄ\90¶\92\86\82Å\82È\82¢\8fê\8d\87false\82ð\95Ô\82·
+ if(!m_isOutput){
+ return false;
+ }
+
+ m_isOutput = false;
+ waveOutReset(m_hWaveOut);
+
+ return true;
+}
////////////////////////////////////////////////////////////////////////////////
// \8fo\97Í\83f\83o\83C\83X\82Ì\8fó\91Ô\82ð\92m\82ç\82¹\82é\83R\81[\83\8b\83o\83b\83N\8aÖ\90\94
bool open();
// \83f\83o\83C\83X\82ð\95Â\82¶\82é
bool close();
+ // \8fo\97Í\81i\8dÄ\90¶\81j\82ð\8aJ\8en\82·\82é
+ bool start();
+ // \8fo\97Í\81i\8dÄ\90¶\81j\82ð\92â\8e~\82·\82é
+ bool stop();
// \8fo\97Í\83f\83o\83C\83X\82Ì\8fó\91Ô\82ð\92m\82ç\82¹\82é\83R\81[\83\8b\83o\83b\83N\8aÖ\90\94
void procedureWave(HWAVEOUT in_hWaveOut, UINT in_Message, DWORD in_Instance, DWORD in_Param1, DWORD in_Param2);