>It does sound like this way of solving the problem is more nicely

>generic than the member boolean or CO methods.

I agree. I've been playing around with this design, and here's what I've come 
up with so far.

First, I've modified EngineChannel to be a subclass of AudioSource, as RJ 
recommended.

Because EngineMaster does all the processing on channels and sets up their 
buffers, I needed to give each EngineChannel access to its corresponding buffer 
after it was created by EngineMaster. This is necessary if we want to route the 
EngineChannels directly to the corresponding devices in SoundManager. 
Therefore, I've modified EngineChannel to include CSAMPLE* m_pASBuffer and a 
setASBuffer(CSAMPLE*) function. I've also modified the ::buffer(AudioOutput 
output) function inherited from AudioSource to return this buffer pointer. In 
EngineMaster, when a new channel is inserted, I set the EngineChannel to point 
to the channel buffer created by EngineMaster. Finally, in mixxx.cpp, I've 
registered the AudioOutputs with the EngineDecks as a test, and everything 
seems to be working smoothly.

I hope that wasn't too confusing. It's a bit much to take in. As always, I 
welcome everyone's opinions/comments/suggestions!

mattmik
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org


Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to