1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
HSTREAM BASSDEF(BASS_StreamCreate)(DWORD freq, DWORD chans, DWORD flags, STREAMPROC *proc, void *user);//This Function id defined in bass.dll
unsigned int __stdcall read_udp_data(void* data)//thread function
{
BASS_StreamCreate( Decoder.Samplerate(), Decoder.Channels(),BASS_SAMPLE_FLOAT|BASS_STREAM_DECODE, &MyStreamWriter, 0);
}
DWORD CALLBACK MyStreamWriter(HSTREAM handle, void *buf, DWORD len, void *user)
{
//
}
DecoderC Decoder = DecoderC(input_buffer, output_buffer);//Derived based on a separate class
int main( int argc, char *argv[] )
{
DWORD dwExitCode0;
DWORD dwEvent;
HANDLE hthDecoder[2];
unsigned uiThreadID0;
hthDecoder[0] = (HANDLE)_beginthreadex( NULL,
0,
read_udp_data,
NULL,
0,
&uiThreadID0 );
if ( hthDecoder[0] == 0 )
printf("Failed to create decoder thread\n");
WaitForSingleObject( hthDecoder[0], INFINITE );
return 0;
}
|