On Sat, Jun 4, 2011 at 4:02 AM, Ged Murphy <gedmurphy(a)gmail.com> wrote:
Can you use the reactos / ansi coding standard.
This code is almost unreadable, which makes it very difficult to review
Sorry, I will keep that in mind from next time onwards
On 3 June 2011 22:41, <nyadav(a)svn.reactos.org>
wrote:
Author: nyadav
Date: Fri Jun 3 21:41:26 2011
New Revision: 52076
URL:
http://svn.reactos.org/svn/reactos?rev=52076&view=rev
Log:
[AUDSRV] finish upto actual mixing functions
Added:
branches/nyadav-audio-branch/base/services/audsrv/mixer.c (with
props)
Modified:
branches/nyadav-audio-branch/base/services/audsrv/CMakeLists.txt
branches/nyadav-audio-branch/base/services/audsrv/audsrv.c
branches/nyadav-audio-branch/base/services/audsrv/audsrv.h
branches/nyadav-audio-branch/base/services/audsrv/rpc.c
branches/nyadav-audio-branch/base/services/audsrv/stream.c
branches/nyadav-audio-branch/dll/win32/audsrvapi/audsrvapi.c
branches/nyadav-audio-branch/dll/win32/audsrvapi/audsrvapi.spec
branches/nyadav-audio-branch/drivers/wdm/audio/backpln/audclient/audclient.c
branches/nyadav-audio-branch/include/reactos/idl/audsrvrpc.idl
branches/nyadav-audio-branch/include/reactos/libs/audsrv/audsrvapi.h
Modified:
branches/nyadav-audio-branch/base/services/audsrv/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/branches/nyadav-audio-branch/base/servic…
==============================================================================
---
branches/nyadav-audio-branch/base/services/audsrv/CMakeLists.txt
[iso-8859-1]
(original)
+++
branches/nyadav-audio-branch/base/services/audsrv/CMakeLists.txt
[iso-8859-1] Fri
Jun 3 21:41:26 2011
> @@ -7,6 +7,7 @@
> audsrv.c
> audsrv.rc
> rpc.c
> + mixer.c
> stream.c)
> add_executable(audsrv ${SOURCE})
> Modified:
branches/nyadav-audio-branch/base/services/audsrv/audsrv.c
URL:
http://svn.reactos.org/svn/reactos/branches/nyadav-audio-branch/base/servic…
==============================================================================
---
branches/nyadav-audio-branch/base/services/audsrv/audsrv.c
[iso-8859-1] (original)
+++
branches/nyadav-audio-branch/base/services/audsrv/audsrv.c
[iso-8859-1] Fri Jun 3
21:41:26 2011
@@ -41,6 +41,7 @@
const GUID KSMEDIUMSETID_Standard = {0x4747B320L, 0x62CE,
0x11CF,
{0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}};
const GUID KSDATAFORMAT_TYPE_AUDIO
= {0x73647561L, 0x0000,
0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}};
const GUID KSDATAFORMAT_SUBTYPE_PCM
= {0x00000001L, 0x0000,
0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}};
+const GUID KSDATAFORMAT_SUBTYPE_IEEE_FLOAT
= {0x00000003L, 0x0000,
0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}};
const GUID KSDATAFORMAT_SPECIFIER_WAVEFORMATEX
= {0x05589f81L, 0xc356,
0x11ce, {0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a}};
> MixerEngine engine,*pengine;
> @@ -152,24 +153,31 @@
> -
> -void fill(MixerEngine * mixer,int buffer)
> -{
> - DWORD Length;
> - UINT i = 0;
> -Sleep(100);
> - Length = mixer->masterfreq * mixer->masterchannels *
mixer->masterbitspersample / 8;
- mixer->masterbuf[buffer] =
(PSHORT)HeapAlloc(GetProcessHeap(), 0,
Length);
- while (i < Length / 2)
- {
- mixer->masterbuf[buffer][i] = 0x7FFF * sin(0.5 * (i - 1) * 500 *
_2pi
/ 48000);
- i++;
- mixer->masterbuf[buffer][i] = 0x7FFF * sin(0.5 * (i - 2) * 500 *
_2pi
/ 48000);
- i++;
- }
- mixer->bytes_to_play = Length;
-}
-
+void mixandfill(MixerEngine * mixer,int buffer)
+{
+
while(WaitForSingleObject(mixer->streampresent,100)!=0){if(mixer->dead)
return;} /*Check if there is at least one stream present.*/
+ if(mixer->masterdatatype == 0)/*signed
int*/
+ {
+ if(mixer->masterbitspersample ==
8)mixs8(mixer,buffer);else
if(mixer->masterbitspersample == 16)
mixs16(mixer,buffer);else if(mixer->masterbitspersample == 32)
mixs32(mixer,buffer);else if(mixer->masterbitspersample == 64)
mixs64(mixer,buffer);
+ }
+ else if (mixer->masterdatatype == 1)/*unsigned int*/
+ {
+ if(mixer->masterbitspersample ==
8)mixu8(mixer,buffer);else
if(mixer->masterbitspersample == 16)
mixu16(mixer,buffer);else if(mixer->masterbitspersample == 32)
mixu32(mixer,buffer);else if(mixer->masterbitspersample == 64)
mixu64(mixer,buffer);
+ }
+ else if(mixer->masterdatatype == 2)/*Float*/
+ {
+ if(mixer->masterbitspersample ==
32)mixfl32(mixer,buffer);else
if(mixer->masterbitspersample == 64)
mixfl64(mixer,buffer);
+ }
+
+ mixer->masterbuf[buffer] = HeapAlloc(GetProcessHeap(), 0,
mixer->serverstreamlist->length_filtered);
+
CopyMemory(mixer->masterbuf[buffer],mixer->serverstreamlist->filteredbuf,mixer->serverstreamlist->length_filtered);
+ mixer->bytes_to_play =
mixer->serverstreamlist->length_filtered;
+}
+void freebuffer()
+{
+ HeapFree(GetProcessHeap(), 0,
pengine->masterbuf[pengine->playcurrent]);
+
pengine->masterbuf[pengine->playcurrent] = NULL;
+}
void playbuffer(MixerEngine * mixer,int buffer)
{
SP_DEVICE_INTERFACE_DATA InterfaceData;
@@ -276,7 +284,10 @@
DataFormat->Flags = 0;
DataFormat->Reserved = 0;
DataFormat->MajorFormat = KSDATAFORMAT_TYPE_AUDIO;
- DataFormat->SubFormat = KSDATAFORMAT_SUBTYPE_PCM;
+ if(mixer->masterdatatype == 0 || mixer->masterdatatype == 1)
+ DataFormat->SubFormat = KSDATAFORMAT_SUBTYPE_PCM;
+ else
+ DataFormat->SubFormat = KSDATAFORMAT_SUBTYPE_IEEE_FLOAT;
DataFormat->Specifier = KSDATAFORMAT_SPECIFIER_WAVEFORMATEX;
DataFormat->SampleSize = mixer->masterchannels *
mixer->masterbitspersample / 8;
DataFormat->FormatSize =
sizeof(KSDATAFORMAT) +
sizeof(WAVEFORMATEXTENSIBLE);
@@ -290,9 +301,11 @@
WaveFormat->Format.cbSize = sizeof(WAVEFORMATEXTENSIBLE) -
sizeof(WAVEFORMATEX);
> WaveFormat->dwChannelMask = mixer->masterchannelmask;
> WaveFormat->Samples.wValidBitsPerSample = mixer->masterbitspersample;
> - WaveFormat->SubFormat = KSDATAFORMAT_SUBTYPE_PCM;
> -
> - //printf("Creating pin\n");
> + if(mixer->masterdatatype == 0 || mixer->masterdatatype == 1)
> + WaveFormat->SubFormat = KSDATAFORMAT_SUBTYPE_PCM;
> + else
> + WaveFormat->SubFormat = KSDATAFORMAT_SUBTYPE_IEEE_FLOAT;
+
> //
> // Create the pin
> @@ -367,12 +380,9 @@
> SetEvent(mixer->played);
> while(1)
> {
> -
while(WaitForSingleObject(mixer->streampresent,100)!=0){if(mixer->dead)goto
DEAD;} /*Check if there is at least one stream present.*/
> -
while(WaitForSingleObject(mixer->played,100)!=0){if(mixer->dead)goto DEAD;}
> - fill(mixer,1-mixer->playcurrent);
> + mixandfill(mixer,1-mixer->playcurrent);
> SetEvent(mixer->filled);
> -
> }
> DEAD:
> printf("\nMixer Thread Ended\n");
> @@ -386,7 +396,7 @@
while(WaitForSingleObject(mixer->filled,100)!=0){if(mixer->dead)goto DEAD;}
> SetEvent(mixer->played);
> playbuffer(mixer,mixer->playcurrent);
> -
> + freebuffer();
> mixer->playcurrent=1-mixer->playcurrent;
> }
> @@ -468,6 +478,7 @@
> pengine->mute=FALSE;
> pengine->dead=0;
> + pengine->streamidpool=0;
> pengine->playcurrent=1;
> pengine->masterbuf[0] = NULL;
> pengine->masterbuf[1] = NULL;
> @@ -501,6 +512,7 @@
> pengine->mute=FALSE;
> pengine->dead=0;
> + pengine->streamidpool=0;
> pengine->playcurrent=1;
> pengine->masterbuf[0] = NULL;
> pengine->masterbuf[1] = NULL;
> Modified:
branches/nyadav-audio-branch/base/services/audsrv/audsrv.h
URL:
http://svn.reactos.org/svn/reactos/branches/nyadav-audio-branch/base/servic…
==============================================================================
---
branches/nyadav-audio-branch/base/services/audsrv/audsrv.h
[iso-8859-1] (original)
+++
branches/nyadav-audio-branch/base/services/audsrv/audsrv.h
[iso-8859-1] Fri Jun 3
21:41:26 2011
> @@ -29,15 +29,24 @@
> typedef struct ServerStream
> {
> + long streamid;
> int volume;
> LONG freq;
> int bitspersample;
> + int datatype; /*0=signed int,1=unsigned int,2=float*/
> int channels;
> ULONG channelmask;
> HANDLE played;
> - HANDLE streamready;
> + HANDLE threadready;
> HANDLE thread;
> float balance;
> + BOOL ready;
> + PVOID genuinebuf;
> + int length_genuine;
> + PVOID filteredbuf;
> + int length_filtered;
> + PVOID minsamplevalue;
> + PVOID maxsamplevalue;
> struct ServerStream * next;
> } ServerStream;
> @@ -45,6 +54,7 @@
> {
> /*Should be Initialized at Server Start*/
> char dead;
> + long streamidpool;
> HANDLE played;
> HANDLE filled;
> HANDLE streampresent;
> @@ -60,7 +70,8 @@
> int masterchannels;
> unsigned long masterchannelmask;
> int masterbitspersample;
> - PSHORT masterbuf[2];
> + int masterdatatype;
> + PVOID masterbuf[2];
> /*Currently don't know the future of following variables*/
> long bytes_to_play;
> HANDLE FilterHandle;
> @@ -75,10 +86,22 @@
> /* rpc.c */
> DWORD WINAPI RunRPCThread(LPVOID lpParameter);
> /* audsrv.c*/
> -void fill(MixerEngine * mixer,int buffer);
> +void mixandfill(MixerEngine * mixer,int buffer);
> void playbuffer(MixerEngine * mixer,int buffer);
> /*stream.c*/
> -HANDLE addstream(LONG frequency,int channels,int bitspersample, ULONG
channelmask,int volume,int mute,float balance);
+long getnewstreamid();
+long addstream(LONG frequency,int channels,int bitspersample,int
datatype, ULONG
channelmask,int volume,int mute,float balance);
> +/*mixer.c*/
> +void * mixs8(MixerEngine * mixer,int buffer);
> +void * mixs16(MixerEngine * mixer,int buffer);
> +void * mixs32(MixerEngine * mixer,int buffer);
> +void * mixs64(MixerEngine * mixer,int buffer);
> +void * mixu8(MixerEngine * mixer,int buffer);
> +void * mixu16(MixerEngine * mixer,int buffer);
> +void * mixu32(MixerEngine * mixer,int buffer);
> +void * mixu64(MixerEngine * mixer,int buffer);
> +void * mixfl32(MixerEngine * mixer,int buffer);
> +void * mixfl64(MixerEngine * mixer,int buffer);
> /********************************/
> #endif /* __AUDSRV_H__ */
> Added:
branches/nyadav-audio-branch/base/services/audsrv/mixer.c
URL:
http://svn.reactos.org/svn/reactos/branches/nyadav-audio-branch/base/servic…
==============================================================================
---
branches/nyadav-audio-branch/base/services/audsrv/mixer.c (added)
+++ branches/nyadav-audio-branch/base/services/audsrv/mixer.c
[iso-8859-1] Fri Jun
3 21:41:26 2011
> @@ -1,0 +1,35 @@
+
> +#include "audsrv.h"
> +void * mixs8(MixerEngine * mixer,int buffer)
> +{
> +}
> +void * mixs16(MixerEngine * mixer,int buffer)
> +{
> + mixer->masterbuf[buffer] = HeapAlloc(GetProcessHeap(), 0,
mixer->serverstreamlist->length_filtered);
+
CopyMemory(mixer->masterbuf[buffer],mixer->serverstreamlist->filteredbuf,mixer->serverstreamlist->length_filtered);
> + mixer->bytes_to_play = mixer->serverstreamlist->length_filtered;
> +}
> +void * mixs32(MixerEngine * mixer,int buffer)
> +{
> +}
> +void * mixs64(MixerEngine * mixer,int buffer)
> +{
> +}
> +void * mixu8(MixerEngine * mixer,int buffer)
> +{
> +}
> +void * mixu16(MixerEngine * mixer,int buffer)
> +{
> +}
> +void * mixu32(MixerEngine * mixer,int buffer)
> +{
> +}
> +void * mixu64(MixerEngine * mixer,int buffer)
> +{
> +}
> +void * mixfl32(MixerEngine * mixer,int buffer)
> +{
> +}
> +void * mixfl64(MixerEngine * mixer,int buffer)
> +{
> +}
> Propchange:
branches/nyadav-audio-branch/base/services/audsrv/mixer.c
------------------------------------------------------------------------------
> svn:eol-style = native
> Propchange:
branches/nyadav-audio-branch/base/services/audsrv/mixer.c
------------------------------------------------------------------------------
> svn:mime-type = text/plain
> Modified:
branches/nyadav-audio-branch/base/services/audsrv/rpc.c
URL:
http://svn.reactos.org/svn/reactos/branches/nyadav-audio-branch/base/servic…
==============================================================================
---
branches/nyadav-audio-branch/base/services/audsrv/rpc.c [iso-8859-1]
(original)
+++
branches/nyadav-audio-branch/base/services/audsrv/rpc.c [iso-8859-1]
Fri Jun 3
21:41:26 2011
> @@ -45,13 +45,13 @@
> /*************************RPC
Functions**********************************/
> -int AUDInitStream( IN
RPC_BINDING_HANDLE hBinding,LONG frequency,int
channels,int bitspersample, ULONG channelmask,int volume,int mute,float
balance)
+long AUDInitStream( IN RPC_BINDING_HANDLE
hBinding,LONG frequency,int
channels,int bitspersample,int datatype, ULONG
channelmask,int volume,int
mute,float balance)
{
- HANDLE stream;
- printf("Client Connected and Initiated Stream Freq: %ld,Channle:
%d,Bitspersample: %d,Mask: %ld,Volume: %d,Mute: %d,Balance:
%f\n",frequency,channels,bitspersample,channelmask,volume,mute,balance);
- stream =
addstream(frequency,channels,bitspersample,channelmask,volume,mute,balance);
- if( stream == NULL ){return
0;}else{printf("Stream added\n");}
- return (int)stream;
+ long stream;
+ printf("Client Connected and Initiated Stream Freq: %ld,Channle:
%d,Bitspersample: %d,Datatype: %d,Mask: %ld,Volume: %d,Mute: %d,Balance:
%f\n",frequency,channels,bitspersample,datatype,channelmask,volume,mute,balance);
+ stream =
addstream(frequency,channels,bitspersample,datatype,channelmask,volume,mute,balance);
> + if( stream != 0 ){printf("Stream added\n");}
> + return stream;
> }
/*************************************************************************/
> void __RPC_FAR *__RPC_USER midl_user_allocate(SIZE_T len)
> Modified:
branches/nyadav-audio-branch/base/services/audsrv/stream.c
URL:
http://svn.reactos.org/svn/reactos/branches/nyadav-audio-branch/base/servic…
==============================================================================
---
branches/nyadav-audio-branch/base/services/audsrv/stream.c
[iso-8859-1] (original)
+++
branches/nyadav-audio-branch/base/services/audsrv/stream.c
[iso-8859-1] Fri Jun 3
21:41:26 2011
> @@ -1,17 +1,40 @@
> #include "audsrv.h"
> +long getnewstreamid()
> +{
> + long streamid= pengine->streamidpool;
> + pengine->streamidpool+=1;
> + return streamid;
> +}
> DWORD WINAPI RunStreamThread(LPVOID param)
> {
> + UINT i = 0;
> ServerStream * localstream = (ServerStream *) param;
> -
SetEvent(localstream->streamready);
+
> printf("Signaling Mixer
Thread For First Stream\n");
> - SetEvent(pengine->streampresent);
> +/*HACK fill filtered buffer (1 second duration in the master stream
format) directly until we are in a condition to get buffer directly from the
client*/
+/******************************************************/
+PSHORT tempbuf;
+localstream->ready =TRUE;
+localstream->length_filtered = localstream->freq * localstream->channels
* localstream->bitspersample / 8;
+tempbuf = (PSHORT)HeapAlloc(GetProcessHeap(), 0,
localstream->length_filtered);
> + while (i < localstream->length_filtered / 2)
> + {
> + tempbuf[i] = 0x7FFF * sin(0.5 * (i - 1) * 500 * 6.28 / 48000);
> + i++;
> + tempbuf[i] = 0x7FFF * sin(0.5 * (i - 2) * 500 * 6.28 / 48000);
> + i++;
> + }
> +localstream->filteredbuf = tempbuf;
> +/******************************************************/
> + SetEvent(localstream->threadready);
+
> while
(1){OutputDebugStringA("Stream Thread
Running.");Sleep(100);};
> /*Clean Stream's data*/
> }
> -HANDLE addstream(LONG frequency,int
channels,int bitspersample, ULONG
channelmask,int volume,int mute,float balance)
+long addstream(LONG frequency,int channels,int
bitspersample,int
datatype, ULONG channelmask,int volume,int mute,float balance)
{
ServerStream * newstream,*localstream;
DWORD dwID;
@@ -23,37 +46,56 @@
if(volume < 0) {newstream->volume = 0;}else if (volume > 1000)
{newstream->volume = 1000;}else {newstream->volume = volume;}
> if(volume < -1.0) {newstream->volume = -1.0;}else if (volume
1.0) {newstream->volume = 1.0;}else
{newstream->volume = volume;}
newstream->freq = frequency; /*TODO
frequency validation
required*/
+ if(datatype==0 || datatype==1 ||
datatype==2){newstream->datatype=datatype;}else goto error;
+ if ((datatype==0 &&
(bitspersample == 8 || bitspersample ==
16 || bitspersample == 32 || bitspersample
== 64 )) ||
+ (datatype==1 &&
(bitspersample == 8 || bitspersample ==
16 || bitspersample == 32 || bitspersample
== 64)) ||
+ (datatype==2 &&
(bitspersample == 32 || bitspersample ==
64)) )
newstream->bitspersample =
bitspersample; /*TODO bitspersample
validation*/
> + else goto error;
+
> newstream->channels =
channels; /*TODO validation*/
> newstream->channelmask = channelmask; /*TODO validation*/
> + newstream->ready = FALSE;
> + newstream->length_genuine = 0;
> + newstream->genuinebuf = NULL;
> + newstream->length_filtered = 0;
> + newstream->filteredbuf = NULL;
> + newstream->minsamplevalue = NULL;
> + newstream->maxsamplevalue = NULL;
+
> newstream->next = NULL;
> newstream->played = CreateEvent(NULL,FALSE,FALSE,NULL);
> - newstream->streamready = CreateEvent(NULL,FALSE,FALSE,NULL);
> + newstream->threadready = CreateEvent(NULL,FALSE,FALSE,NULL);
> - if(newstream->played ==
NULL || newstream->streamready == NULL)
{goto error;}
+ if(newstream->played == NULL ||
newstream->threadready == NULL)
{goto error;}
newstream->thread=CreateThread(NULL,0,RunStreamThread,newstream,0,&dwID);
> if(newstream->thread == NULL) {goto error;}
> -
WaitForSingleObject(newstream->streamready,INFINITE);
> +
WaitForSingleObject(newstream->threadready,INFINITE);
+
> +
newstream->streamid=getnewstreamid();
> if(localstream == NULL)
> {
> - pengine->serverstreamlist = localstream;
> + pengine->serverstreamlist = newstream;
>
pengine->masterfreq=frequency;
> pengine->masterchannels=channels;
> pengine->masterchannelmask=channelmask;
> pengine->masterbitspersample=bitspersample;
> + pengine->masterdatatype = datatype;
> }
> else
> {
> while(localstream->next != NULL){localstream =
localstream->next;}
> localstream->next = newstream;
> }
> - return newstream->thread;
> + SetEvent(pengine->streampresent);
> + return newstream->streamid;
> error:
> + printf("Stream Rejected \n");
> HeapFree(GetProcessHeap(), 0, newstream);
> - return NULL;
> + return 0;
> }
> Modified:
branches/nyadav-audio-branch/dll/win32/audsrvapi/audsrvapi.c
URL:
http://svn.reactos.org/svn/reactos/branches/nyadav-audio-branch/dll/win32/a…
==============================================================================
---
branches/nyadav-audio-branch/dll/win32/audsrvapi/audsrvapi.c
[iso-8859-1]
(original)
+++
branches/nyadav-audio-branch/dll/win32/audsrvapi/audsrvapi.c
[iso-8859-1] Fri Jun
3 21:41:26 2011
@@ -5,9 +5,9 @@
/*Initialize an audio stream
*Return -1 if callbacks are NULL pointers
*/
-WINAPI int initstream (ClientStream * clientstream,LONG frequency,int
channels,int bitspersample, ULONG channelmask,int volume,int mute,float
balance)
+WINAPI int initstream (ClientStream *
clientstream,LONG frequency,int
channels,int bitspersample,int datatype, ULONG
channelmask,int volume,int
mute,float balance)
{
- int streamid;
+ long streamid;
if (clientstream == NULL ) return -1;
if (clientstream->callbacks.OpenComplete == NULL ||
clientstream->callbacks.BufferCopied == NULL ||
clientstream->callbacks.PlayComplete == NULL) return -2;
> /*Validity of all other data will be checked at server*/
> @@ -16,8 +16,9 @@
> RpcTryExcept
> {
> - streamid = AUDInitStream
(audsrv_v0_0_c_ifspec,frequency,channels,bitspersample,channelmask,volume,mute,balance);
- printf("AUDInitStream
Returned %d",streamid);
+ streamid = AUDInitStream
(audsrv_v0_0_c_ifspec,frequency,channels,bitspersample,datatype,channelmask,volume,mute,balance);
> + printf("AUDInitStream Returned %ld",streamid);
> + if(streamid != 0) {clientstream->stream = streamid;}
> }
> RpcExcept(1)
> {
> @@ -28,8 +29,6 @@
> /*Analyse the return by the
function*/
> /*Currently Suppose the return is 0 and a valid streamid is
returned*/
> - clientstream->stream = &status;
> -
clientstream->ClientEventPool[0]=CreateEvent(NULL,FALSE,FALSE,NULL);
> clientstream->dead = 0;
> Modified: branches/nyadav-audio-branch/dll/win32/audsrvapi/audsrvapi.spec
URL:
http://svn.reactos.org/svn/reactos/branches/nyadav-audio-branch/dll/win32/a…
==============================================================================
---
branches/nyadav-audio-branch/dll/win32/audsrvapi/audsrvapi.spec
[iso-8859-1]
(original)
+++
branches/nyadav-audio-branch/dll/win32/audsrvapi/audsrvapi.spec
[iso-8859-1] Fri
Jun 3 21:41:26 2011
> @@ -1,4 +1,4 @@
> -@ stdcall initstream (ptr long long long long long long long)
> +@ stdcall initstream (ptr long long long long long long long long)
> @ stdcall playaudio ( ptr);
> @ stdcall stopaudio (ptr );
> @ stdcall Volume(ptr ptr );
> Modified:
branches/nyadav-audio-branch/drivers/wdm/audio/backpln/audclient/audclient.c
URL:
http://svn.reactos.org/svn/reactos/branches/nyadav-audio-branch/drivers/wdm…
==============================================================================
---
branches/nyadav-audio-branch/drivers/wdm/audio/backpln/audclient/audclient.c
[iso-8859-1] (original)
+++
branches/nyadav-audio-branch/drivers/wdm/audio/backpln/audclient/audclient.c
[iso-8859-1] Fri Jun 3 21:41:26 2011
> @@ -8,7 +8,7 @@
> void buffercopied (int error );
> void playcomplete (int error );
> -ClientStream clientstream =
{NULL,0,{NULL},{opencomplete,buffercopied,playcomplete}};/*This
initialization should not be necessary for a typical client*/
+ClientStream clientstream =
{0,0,{NULL},{opencomplete,buffercopied,playcomplete}};/*This initialization
should not be necessary for a typical client*/
> DWORD WINAPI RunAudioThread(LPVOID
param)
> {
> @@ -39,12 +39,12 @@
> char input='\0';
> printf("ReactOS Audio Mixer Sample Client.Enter 'a' to
Stop.\n");
> //if (clientstream->callbacks.OpenComplete == NULL ||
clientstream->callbacks.BufferCopied == NULL ||
clientstream->callbacks.PlayComplete == NULL) printf("");
- error = initstream ( &clientstream ,
44100 , 2 , 16 ,
KSAUDIO_SPEAKER_STEREO , 1000 , 0, 0.0 ); /*[out]HANDLE *
streamhandle,[in]
long frequency,[in] int number of channels,[in] int bitspersample,[in]ULONG
channelmask,[in] int volume,[in] int mute,[in] float balance*/
+ error = initstream ( &clientstream ,
44100 , 2 , 16 ,0,
KSAUDIO_SPEAKER_STEREO , 1000 , 0, 0.0 ); /*[out]HANDLE *
streamhandle,[in]
long frequency,[in] int number of channels,[in] int bitspersample,[in]ULONG
channelmask,[in] int volume,[in] int mute,[in] float balance*/
if ( error )
printf("Failed to Initialize Stream.Error %d\n", error);
else
{
- printf("StreamID : %d\n",*((int *)clientstream.stream));
+ printf("StreamID : %ld\n",clientstream.stream);
audiothread =
CreateThread(NULL,0,RunAudioThread,&clientstream,0,&dwID);
> }
> while ( input != 'a' )
> Modified:
branches/nyadav-audio-branch/include/reactos/idl/audsrvrpc.idl
URL:
http://svn.reactos.org/svn/reactos/branches/nyadav-audio-branch/include/rea…
==============================================================================
---
branches/nyadav-audio-branch/include/reactos/idl/audsrvrpc.idl
[iso-8859-1]
(original)
+++
branches/nyadav-audio-branch/include/reactos/idl/audsrvrpc.idl
[iso-8859-1] Fri Jun
3 21:41:26 2011
> @@ -39,6 +39,6 @@
> interface audsrv
> {
> - int AUDInitStream([in] handle_t
h1,[in]LONG frequency,[in]int
channels,[in]int bitspersample,[in] ULONG channelmask,[in]int volume,[in]int
mute,[in]float balance);
+ long AUDInitStream([in] handle_t h1,[in]LONG
frequency,[in]int
channels,[in]int bitspersample,[in]int datatype,[in] ULONG
channelmask,[in]int volume,[in]int mute,[in]float balance);
> }
> Modified:
branches/nyadav-audio-branch/include/reactos/libs/audsrv/audsrvapi.h
URL:
http://svn.reactos.org/svn/reactos/branches/nyadav-audio-branch/include/rea…
==============================================================================
---
branches/nyadav-audio-branch/include/reactos/libs/audsrv/audsrvapi.h
[iso-8859-1]
(original)
+++
branches/nyadav-audio-branch/include/reactos/libs/audsrv/audsrvapi.h
[iso-8859-1]
Fri Jun 3 21:41:26 2011
> @@ -17,14 +17,14 @@
> typedef struct ClientStream
> {
> -HANDLE stream;
> +long stream;
> int dead;
> HANDLE ClientEventPool[1]; //0]th event is for Activescheduler
> struct CallBacks callbacks;
> } ClientStream;
> /********************API
Functions******************/
> -WINAPI int initstream (ClientStream * clientstream,LONG frequency,int
channels,int bitspersample, ULONG channelmask,int volume,int mute,float
balance);
+WINAPI int initstream (ClientStream *
clientstream,LONG frequency,int
channels,int bitspersample,int datatype, ULONG
channelmask,int volume,int
mute,float balance);
> WINAPI int playaudio ( ClientStream * clientstream);
> WINAPI int stopaudio (ClientStream * clientstream );
> WINAPI int Volume(ClientStream * clientstream, int * volume );
_______________________________________________
Ros-dev mailing list
Ros-dev(a)reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev