Click here to Skip to main content
15,889,416 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I got the code from here:http://www.techmind.org/wave/[^]

I tried the code at the site provided.

but i get tons of errors...and to my confusion its in the mmsystem.h
anyone know whats wrong?, i am confused whats wrong with the compiler.

code:
#include <mmsystem.h>

const int NUMPTS = 44100 * 10;   // 10 seconds
int sampleRate = 44100;
short int waveIn[NUMPTS];   // 'short int' is a 16-bit type; I request 16-bit samples below
                            // for 8-bit capture, you'd use 'unsigned char' or 'BYTE' 8-bit types

HWAVEIN      hWaveIn;
WAVEHDR      WaveInHdr;
MMRESULT result;

// Specify recording parameters
WAVEFORMATEX pFormat;
pFormat.wFormatTag=WAVE_FORMAT_PCM;     // simple, uncompressed format
pFormat.nChannels=1;                    //  1=mono, 2=stereo
pFormat.nSamplesPerSec=sampleRate;      // 44100
pFormat.nAvgBytesPerSec=sampleRate*2;   // = nSamplesPerSec * n.Channels * wBitsPerSample/8
pFormat.nBlockAlign=2;                  // = n.Channels * wBitsPerSample/8
pFormat.wBitsPerSample=16;              //  16 for high quality, 8 for telephone-grade
pFormat.cbSize=0;

result = waveInOpen(&hWaveIn, WAVE_MAPPER,&pFormat,
           0L, 0L, WAVE_FORMAT_DIRECT);
if (result)
{
 char fault[256];
 waveInGetErrorText(result, fault, 256);
 Application->MessageBox(fault, "Failed to open waveform input device.",
             MB_OK | MB_ICONEXCLAMATION);
 return;
}

// Set up and prepare header for input
WaveInHdr.lpData = (LPSTR)waveIn;
WaveInHdr.dwBufferLength = NUMPTS*2;
WaveInHdr.dwBytesRecorded=0;
WaveInHdr.dwUser = 0L;
WaveInHdr.dwFlags = 0L;
WaveInHdr.dwLoops = 0L;
waveInPrepareHeader(hWaveIn, &WaveInHdr, sizeof(WAVEHDR));

// Insert a wave input buffer
result = waveInAddBuffer(hWaveIn, &WaveInHdr, sizeof(WAVEHDR));
if (result)
{
 MessageBox(Application->Handle, "Failed to read block from device",
                  NULL, MB_OK | MB_ICONEXCLAMATION);
 return;
}


// Commence sampling input
result = waveInStart(hWaveIn);
if (result)
{
 MessageBox(Application->Handle, "Failed to start recording",
                  NULL, MB_OK | MB_ICONEXCLAMATION);
 return;
}


// Wait until finished recording
do {} while (waveInUnprepareHeader(hWaveIn, &WaveInHdr, sizeof(WAVEHDR))==WAVERR_STILLPLAYING);


ERROR:
c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|905|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;MCIERROR&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|906|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;MCIDEVICEID&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|907|error: expected &#39;)&#39; before &#39;*&#39; token|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|908|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;MMVERSION&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|909|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;MMRESULT&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|911|error: expected specifier-qualifier-list before &#39;UINT&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|933|error: expected specifier-qualifier-list before &#39;DWORD&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|938|error: expected specifier-qualifier-list before &#39;DWORD&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|943|error: expected &#39;)&#39; before &#39;*&#39; token|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|944|error: expected &#39;)&#39; before &#39;DRVCALLBACK&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|945|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;*&#39; token|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|946|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;*&#39; token|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|950|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;*&#39; token|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|951|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;*&#39; token|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|952|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;WAVECALLBACK&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|953|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;*&#39; token|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|955|error: expected specifier-qualifier-list before &#39;LPSTR&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|965|error: expected specifier-qualifier-list before &#39;WORD&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|975|error: expected specifier-qualifier-list before &#39;WORD&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|985|error: expected specifier-qualifier-list before &#39;WORD&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|994|error: expected specifier-qualifier-list before &#39;WORD&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1003|error: expected specifier-qualifier-list before &#39;WORD&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1011|error: expected specifier-qualifier-list before &#39;WORD&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1017|error: expected specifier-qualifier-list before &#39;WORD&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1031|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;*&#39; token|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1032|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;*&#39; token|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1033|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;*&#39; token|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1034|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;*&#39; token|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1035|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;MIDICALLBACK&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1036|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;*&#39; token|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1037|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;PATCHARRAY&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1038|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;*&#39; token|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1039|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;KEYARRAY&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1040|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;*&#39; token|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1042|error: expected specifier-qualifier-list before &#39;WORD&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1053|error: expected specifier-qualifier-list before &#39;WORD&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1064|error: expected specifier-qualifier-list before &#39;WORD&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1071|error: expected specifier-qualifier-list before &#39;WORD&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1078|error: expected specifier-qualifier-list before &#39;LPSTR&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1089|error: expected specifier-qualifier-list before &#39;DWORD&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1095|error: expected specifier-qualifier-list before &#39;DWORD&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1100|error: expected specifier-qualifier-list before &#39;DWORD&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1104|error: expected specifier-qualifier-list before &#39;DWORD&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1108|error: expected specifier-qualifier-list before &#39;WORD&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1117|error: expected specifier-qualifier-list before &#39;WORD&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1126|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;*&#39; token|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1128|error: expected &#39;=&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__attribute__&#39; before &#39;*&#39; token|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1130|error: expected specifier-qualifier-list before &#39;WORD&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1138|error: expected specifier-qualifier-list before &#39;WORD&#39;|

c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\mmsystem.h|1146|error: expected specifier-qualifier-list before &#39;DWORD&#39;|

||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build finished: 50 errors, 0 warnings ===|</pre>
Posted

1 solution

Try compiling with Visual C++ 2010 express[^] - it's free too.

It seems like there is something in the header that gcc don't like

Update
You probably need to "#include <windows.h>" before mmsystem.h
You need to make sure you are not creating a .Net project - you want native code generation

Best reagrds
Espen Harlinn
 
Share this answer
 
v2
Comments
Sergey Alexandrovich Kryukov 10-Jul-11 18:21pm    
OP answered by posting a "solution", please see.
--SA
Espen Harlinn 10-Jul-11 18:28pm    
OK, wrong kind of project, that was for a .Net C++/CLI project
Sergey Alexandrovich Kryukov 13-Jul-11 17:39pm    
Right idea, my 5.
--SA
Espen Harlinn 13-Jul-11 17:50pm    
Thank you, Sergey!

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900