OSDN Git Service

reset brain memory
[internetcity/prototype.git] / common / CWaveData.h
1 // \8b\9e\r
2 #ifndef INC_CWaveData\r
3 #define INC_CWaveData\r
4 \r
5 \r
6 #include "CRingBuffer.h"\r
7 #include <Windows.h>\r
8 \r
9 \r
10 // \83C\83\93\83N\83\8b\81[\83h\82Í\95K\82¸\95K\97v\82È\95¨\82¾\82¯\r
11 // \93à\95\94\82Å\97\98\97p\82·\82é\82¾\82¯\82Ì\95¨\82Í\83\\81[\83X\82É\8bL\8fq\r
12 \r
13 // \8aÖ\90\94\96¼\82Í\83\8d\81[\83\8f\83L\83\83\83\81\83\8b\83P\81[\83X\82Æ\82·\82é\r
14 \r
15 \r
16 // wave buffer struct\r
17 struct StructWaveBuffer\r
18 {\r
19         // \83o\83b\83t\83@\82Ö\82Ì\83|\83C\83\93\83^\r
20         char* m_pWaveBuffer;\r
21         // \98^\89¹\8e\9e\8aÔ [\83~\83\8a\95b]\r
22         DWORD m_RecorMilliSecond;\r
23         // \83o\83b\83t\83@\83T\83C\83Y [byte]\r
24         DWORD m_BufferSize;\r
25 };\r
26 \r
27 \r
28 ////////////////////////////////////////////////////////////////////////////////\r
29 // CWaveData\r
30 // Wave\83f\81[\83^\82ð\88µ\82¤\83N\83\89\83X\r
31 // \83o\83b\83t\83@\82Ì\8aÇ\97\9d\81i\8am\95Û\82Æ\89ð\95ú\81j\82ð\8ds\82¤\r
32 // \83L\83\85\81[\82ð\97p\82¢\82Ä\83o\83b\83t\83@\8aÇ\97\9d\82ð\8ds\82¤\r
33 ////////////////////////////////////////////////////////////////////////////////\r
34 class CWaveData : public CRingBuffer<StructWaveBuffer>\r
35 {\r
36         ////////////////////////////////////////////////////////////////////////////////\r
37         // \83\81\83\93\83o\95Ï\90\94\r
38         ////////////////////////////////////////////////////////////////////////////////\r
39 private:\r
40         ////////////////////////////////////////////////////////////////////////////////\r
41         // \83R\83\93\83X\83g\83\89\83N\83^\r
42         ////////////////////////////////////////////////////////////////////////////////\r
43 public:\r
44         CWaveData(){}\r
45 \r
46         ////////////////////////////////////////////////////////////////////////////////\r
47         // \83f\83X\83g\83\89\83N\83^\r
48         ////////////////////////////////////////////////////////////////////////////////\r
49 public:\r
50         ~CWaveData(){}\r
51 \r
52         ////////////////////////////////////////////////////////////////////////////////\r
53         // static\8aÖ\90\94\81A\83R\81[\83\8b\83o\83b\83N\8aÖ\90\94\r
54         ////////////////////////////////////////////////////////////////////////////////\r
55         ////////////////////////////////////////////////////////////////////////////////\r
56         // \91\80\8dì\83\81\83\\83b\83h\r
57         ////////////////////////////////////////////////////////////////////////////////\r
58 public:\r
59         // \83o\83b\83t\83@\82ð\8am\95Û\r
60         bool allocate(int in_BufferNumber, DWORD in_RecorMilliSecond, DWORD in_BufferSize)\r
61         {\r
62                 if(!CRingBuffer::allocate(in_BufferNumber) || in_BufferSize == 0){\r
63                         return false;\r
64                 }\r
65 \r
66                 for(int i = 0; i < in_BufferNumber; i++){\r
67                         StructWaveBuffer tempWaveBuffer;\r
68                         tempWaveBuffer.m_RecorMilliSecond = in_RecorMilliSecond;\r
69                         tempWaveBuffer.m_BufferSize       = in_BufferSize;\r
70                         tempWaveBuffer.m_pWaveBuffer      = new char[tempWaveBuffer.m_BufferSize];\r
71                         *at(i) = tempWaveBuffer;\r
72                 }\r
73 \r
74                 return true;\r
75         }\r
76 \r
77         void clear()\r
78         {\r
79                 for(size_t i = 0; i < size(); i++){\r
80                         StructWaveBuffer* tempWaveBuffer = at(i);\r
81                         delete tempWaveBuffer->m_pWaveBuffer;\r
82                 }\r
83                 CRingBuffer::clear();\r
84         }\r
85 \r
86         ////////////////////////////////////////////////////////////////////////////////\r
87         // \91®\90«\83\81\83\\83b\83h\r
88         ////////////////////////////////////////////////////////////////////////////////\r
89         ////////////////////////////////////////////////////////////////////////////////\r
90         // \83C\83e\83\8c\81[\83V\83\87\83\93\r
91         ////////////////////////////////////////////////////////////////////////////////\r
92         ////////////////////////////////////////////////////////////////////////////////\r
93         // \8fó\91Ô\r
94         ////////////////////////////////////////////////////////////////////////////////\r
95         ////////////////////////////////////////////////////////////////////////////////\r
96         // \89\89\8eZ\8eq\r
97         ////////////////////////////////////////////////////////////////////////////////\r
98         ////////////////////////////////////////////////////////////////////////////////\r
99         // \8f\83\90\88\89¼\91z\8aÖ\90\94\81A\92è\8b`\82Ì\82Ý\81i\94ñ\8eÀ\91\95\92ñ\8b\9f\81j\r
100         ////////////////////////////////////////////////////////////////////////////////\r
101         ////////////////////////////////////////////////////////////////////////////////\r
102         // \93à\95\94\83N\83\89\83X\r
103         ////////////////////////////////////////////////////////////////////////////////\r
104 \r
105 \r
106 };\r
107 \r
108 \r
109 #endif //INC_CWaveData\r