OSDN Git Service

add voice source
[internetcity/prototype.git] / common / CInputWave.h
diff --git a/common/CInputWave.h b/common/CInputWave.h
new file mode 100644 (file)
index 0000000..d0532a4
--- /dev/null
@@ -0,0 +1,121 @@
+// \8b\9e
+#ifndef INC_CInputWave
+#define INC_CInputWave
+
+// \83C\83\93\83N\83\8b\81[\83h\82Í\95K\82¸\95K\97v\82È\95¨\82¾\82¯
+// \93à\95\94\82Å\97\98\97p\82·\82é\82¾\82¯\82Ì\95¨\82Í\83\\81[\83X\82É\8bL\8fq
+
+// \8aÖ\90\94\96¼\82Í\83\8d\81[\83\8f\83L\83\83\83\81\83\8b\83P\81[\83X\82Æ\82·\82é
+
+
+#include "CWaveData.h"
+#include <list>
+
+
+typedef void (*DataFullCallBack)(WAVEHDR*);
+
+////////////////////////////////////////////////////////////////////////////////
+// CInputWave
+////////////////////////////////////////////////////////////////////////////////
+class CInputWave
+{
+       ////////////////////////////////////////////////////////////////////////////////
+       // \83\81\83\93\83o\95Ï\90\94
+       ////////////////////////////////////////////////////////////////////////////////
+private:
+       // Wave\83f\83o\83C\83X\83n\83\93\83h\83\8b
+       HWAVEIN m_hWaveIn;
+       // Wave\83w\83b\83_\81[
+       typedef std::list<WAVEHDR> WaveHeaderTable;
+       WaveHeaderTable m_WaveHeaders;
+       WaveHeaderTable::iterator m_CurrentWaveHeader;
+       WaveHeaderTable::iterator m_NextWaveHeader;
+       // Wave\83f\81[\83^
+       CWaveData* m_pWaveData;
+
+       // \8aÖ\90\94\83|\83C\83\93\83^
+       DataFullCallBack m_pDataFullCallBackFunction;
+
+       // \83f\83o\83C\83X\82ð\83I\81[\83v\83\93\82µ\82Ä\82¢\82é
+       bool m_isOpen;
+       // \98^\89¹\92\86
+       bool m_isInput;
+       // \83L\83\85\81[\82É\89Á\82¦\82é\83o\83b\83t\83@\90\94
+       int m_MaxNumberOfBuffer;
+       // \83L\83\85\81[\82É\89Á\82¦\82Ä\82¢\82é\83o\83b\83t\83@\90\94
+       int m_NumberOfBufferInQueue;
+
+       ////////////////////////////////////////////////////////////////////////////////
+       // \83R\83\93\83X\83g\83\89\83N\83^
+       ////////////////////////////////////////////////////////////////////////////////
+public:
+       CInputWave();
+
+       ////////////////////////////////////////////////////////////////////////////////
+       // \83f\83X\83g\83\89\83N\83^
+       ////////////////////////////////////////////////////////////////////////////////
+public:
+       virtual ~CInputWave();
+
+       ////////////////////////////////////////////////////////////////////////////////
+       // static\8aÖ\90\94\81A\83R\81[\83\8b\83o\83b\83N\8aÖ\90\94
+       ////////////////////////////////////////////////////////////////////////////////
+       // \93ü\97Í\83f\83o\83C\83X\82Ì\8fó\91Ô\82ð\92m\82ç\82¹\82é\83R\81[\83\8b\83o\83b\83N\8aÖ\90\94
+       static void CALLBACK waveInProc(HWAVEIN in_hWaveIn, UINT in_Message, DWORD in_Instance, DWORD in_Param1, DWORD in_Param2);
+       void callbackWave(HWAVEIN in_hWaveIn, UINT in_Message, DWORD in_Instance, DWORD in_Param1, DWORD in_Param2);
+
+
+       ////////////////////////////////////////////////////////////////////////////////
+       // \91\80\8dì\83\81\83\\83b\83h
+       ////////////////////////////////////////////////////////////////////////////////
+public:
+       // \8f\89\8aú\89»
+       void initialize();
+       // \83f\83o\83C\83X\82ð\8aJ\82­
+       bool open();
+       // \83f\83o\83C\83X\82ð\95Â\82\82é
+       bool close();
+protected:
+       // add wave buffer in queue
+       bool addWaveBuffer();
+public:
+       // \93ü\97Í\81i\98^\89¹\81j\82ð\8aJ\8en\82·\82é
+       bool start();
+       // \93ü\97Í\81i\98^\89¹\81j\82ð\92â\8e~\82·\82é
+       bool stop();
+
+       ////////////////////////////////////////////////////////////////////////////////
+       // \91®\90«\83\81\83\\83b\83h
+       ////////////////////////////////////////////////////////////////////////////////
+public:
+       void setWaveData(CWaveData* io_pWaveData)
+       {
+               m_pWaveData = io_pWaveData;
+       }
+
+       void setDataFullCallBack(DataFullCallBack in_pDataFullCallBack)
+       {
+               m_pDataFullCallBackFunction = in_pDataFullCallBack;
+       }
+
+       ////////////////////////////////////////////////////////////////////////////////
+       // \83C\83e\83\8c\81[\83V\83\87\83\93
+       ////////////////////////////////////////////////////////////////////////////////
+       ////////////////////////////////////////////////////////////////////////////////
+       // \8fó\91Ô
+       ////////////////////////////////////////////////////////////////////////////////
+
+       ////////////////////////////////////////////////////////////////////////////////
+       // \89\89\8eZ\8eq
+       ////////////////////////////////////////////////////////////////////////////////
+       ////////////////////////////////////////////////////////////////////////////////
+       // \8f\83\90\88\89¼\91z\8aÖ\90\94\81A\92è\8b`\82Ì\82Ý\81i\94ñ\8eÀ\91\95\92ñ\8b\9f\81j
+       ////////////////////////////////////////////////////////////////////////////////
+       ////////////////////////////////////////////////////////////////////////////////
+       // \93à\95\94\83N\83\89\83X
+       ////////////////////////////////////////////////////////////////////////////////
+
+
+};
+
+#endif //INC_CInputWave