Our requirement is to develop remote sound system which should support all the windows OS starting from WindowsXP Onwards .

I would like to describe the functionalites more clearly here...

Microsoft has 3 different options over RDP using virtual chanel

1. Play on this computer

2. Don't play

3. Play in Remote System

For that microft is using RdpendP.dll and virtual chanel to control over that three diff. options..


Our case is just reverse of Microsoft when one user is selecting Play in Remote System option that should be played at local system not in remote system.. using our own virtual chanel which we have registered. Secondly when the user is selecting Play on this computer option that should be played on remote system not in local system with low latency...

Our approach:

We just created one virtual client dll and registered at (HCURRENT_USER/Software/Microsoft/Terminal Server Client/Default/Addin).Now we able to make a virtual chanel with terminal server.

Problems:

1. First problem is how to redirect the sound from Terminal server to client(So that when one media player is playing at terminal server it should be played at client system).We tried with WASAPIS to capture sound from terminal server endpoint device speaker and using WTSVirtualWrite to write audio data to virtual chanel and then at the client side we use to render it by using getbuffer method to write client endpoint device , but I think it is very bad approach and huge latency is coming.
So what we think here instead of capturing and rendering if we redirect the sound which is playing in terminal server side to client audio device that would be the better approach but how to do these implementaions using virtual channel and terminal server APIs or any other Windows APIs..
What are the registry changes should be done for that…

2. Second problem is how to add a dummy speaker icon to volume Mixture device speaker(One combo box will come at device speaker , here we would have two diff. speaker icon with their property, one is HDRealtalk as supported and second one is our speaker with a speaker property general only)

Note : Here Instead of writing virtual Audio driver or our own audiodrv, how to achieve that.

3. Third problem is how to support our own codec(like verbois)...
(Here we created one .acm file but how to support it, We have gone through diff. ACM functionalities like ACMDriverAdd, ACMDrvClose, ACMOpen but we don't have idea to implement that)...

4. Fourth Problem is how to capture and render from microphone to client system(Like to capture from terminal server microphone to local capturing device and also playback there)...

Our requirement is like it should supported by all windows OS starting from Window XP onwards..