OSDN Git Service

ab0bebf5e45015fff9ec35971146ee4f48d07c87
[internetcity/break_prototype.git] / source / CWaveData.h
1 // \8b\9e
2 #ifndef INC_CWaveData
3 #define INC_CWaveData
4
5
6
7 #include <Windows.h>
8
9
10 // \83C\83\93\83N\83\8b\81[\83h\82Í\95K\82¸\95K\97v\82È\95¨\82¾\82¯
11 // \93à\95\94\82Å\97\98\97p\82·\82é\82¾\82¯\82Ì\95¨\82Í\83\\81[\83X\82É\8bL\8fq
12
13 // \8aÖ\90\94\96¼\82Í\83\8d\81[\83\8f\83L\83\83\83\81\83\8b\83P\81[\83X\82Æ\82·\82é
14
15
16 ////////////////////////////////////////////////////////////////////////////////
17 // CWaveData
18 // Wave\83f\81[\83^\82ð\88µ\82¤\83N\83\89\83X
19 // \83o\83b\83t\83@\82Ì\8aÇ\97\9d\81i\8am\95Û\82Æ\89ð\95ú\81j\82ð\8ds\82¤
20 // \83o\83b\83t\83@\83v\81[\83\8b\82ð\97p\82¢\82½\82Ù\82¤\82ª\82æ\82¢\82Æ\8ev\82¤\82ª\8c»\8fó\82Í\8am\95Û\82µ\82Á\82Ï\82È\82µ\82Æ\82·\82é
21 ////////////////////////////////////////////////////////////////////////////////
22 class CWaveData
23 {
24         ////////////////////////////////////////////////////////////////////////////////
25         // \83\81\83\93\83o\95Ï\90\94
26         ////////////////////////////////////////////////////////////////////////////////
27 private:
28         // \83o\83b\83t\83@\82Ö\82Ì\83|\83C\83\93\83^
29         char* m_pWaveBuffer;
30         // Wave\83t\83H\81[\83}\83b\83g
31         WAVEFORMATEX m_WaveFormat;
32         // \98^\89¹\8e\9e\8aÔ [\95b]
33         DWORD m_RecordSecond;
34         // \83o\83b\83t\83@\83T\83C\83Y [byte]
35         DWORD m_BufferSize;
36
37
38         ////////////////////////////////////////////////////////////////////////////////
39         // \83R\83\93\83X\83g\83\89\83N\83^
40         ////////////////////////////////////////////////////////////////////////////////
41 public:
42         CWaveData();
43
44         ////////////////////////////////////////////////////////////////////////////////
45         // \83f\83X\83g\83\89\83N\83^
46         ////////////////////////////////////////////////////////////////////////////////
47 public:
48         ~CWaveData();
49
50         ////////////////////////////////////////////////////////////////////////////////
51         // \83R\81[\83\8b\83o\83b\83N\95Ï\90\94
52         ////////////////////////////////////////////////////////////////////////////////
53         ////////////////////////////////////////////////////////////////////////////////
54         // \91\80\8dì\83\81\83\\83b\83h
55         ////////////////////////////////////////////////////////////////////////////////
56 public:
57         // \8f\89\8aú\89»
58         void initialize();
59         // \83o\83b\83t\83@\82ð\8am\95Û
60         bool allocBuffer();
61         // \83o\83b\83t\83@\82ð\89ð\95ú
62         bool freeBuffer();
63
64         ////////////////////////////////////////////////////////////////////////////////
65         // \91®\90«\83\81\83\\83b\83h
66         ////////////////////////////////////////////////////////////////////////////////
67 public:
68         // \98^\89¹\8e\9e\8aÔ\82ð\83Z\83b\83g
69         bool setRecordSecond(DWORD in_RecordSecond)
70         {
71                 if(m_pWaveBuffer != NULL){
72                         // \83\81\83\82\83\8a\82ª\8am\95Û\82µ\82Ä\82 \82é\8aÔ\82Í\98^\89¹\8e\9e\8aÔ\82ð\95Ï\8dX\82µ\82È\82¢
73                         return false;
74                 }
75                 m_RecordSecond = in_RecordSecond;
76                 m_BufferSize = m_WaveFormat.nAvgBytesPerSec * m_RecordSecond;
77                 return true;
78         }
79
80         // Wave\83o\83b\83t\83@\82ð\8eæ\93¾\82·\82é
81         char* getWaveBuffer()
82         {
83                 return m_pWaveBuffer;
84         }
85
86         // \83o\83b\83t\83@\83T\83C\83Y\82ð\8eæ\93¾\82·\82é
87         DWORD getBufferSize()
88         {
89                 return m_BufferSize;
90         }
91
92         // Wave\83t\83H\81[\83}\83b\83g\82Ö\82Ì\83|\83C\83\93\83^\82ð\8eæ\93¾\82·\82é
93         const WAVEFORMATEX* getWaveFormat()
94         {
95                 return &m_WaveFormat;
96         }
97
98         ////////////////////////////////////////////////////////////////////////////////
99         // \83C\83e\83\8c\81[\83V\83\87\83\93
100         ////////////////////////////////////////////////////////////////////////////////
101         ////////////////////////////////////////////////////////////////////////////////
102         // \8fó\91Ô
103         ////////////////////////////////////////////////////////////////////////////////
104         ////////////////////////////////////////////////////////////////////////////////
105         // \83X\83^\83e\83B\83b\83N\8aÖ\90\94
106         ////////////////////////////////////////////////////////////////////////////////
107         ////////////////////////////////////////////////////////////////////////////////
108         // \89\89\8eZ\8eq
109         ////////////////////////////////////////////////////////////////////////////////
110         ////////////////////////////////////////////////////////////////////////////////
111         // \8f\83\90\88\89¼\91z\8aÖ\90\94\81A\92è\8b`\82Ì\82Ý
112         ////////////////////////////////////////////////////////////////////////////////
113         ////////////////////////////////////////////////////////////////////////////////
114         // \93à\95\94\83N\83\89\83X
115         ////////////////////////////////////////////////////////////////////////////////
116
117
118 };
119
120 #endif //INC_CWaveData