Sorry for pounding on that question once again, but, please, may be anyone from development team could post a little c/c++ code snippet, what would list all the ASIO channels and how to select a pair of these for sound output.
I have been browsing through whole internet and and have seen this question popping up regularly. So far it has been answered that FMOD Ex is going to be really nice about it. However, I can not find any code sample or documentation about how ASIO channel selection is to be done.
I am simply trying to send diferent audio files to different outputs on soundcard.
for (count=0; count < numdrivers; count++)
system->getDriverName(count, name, 256);
This will give only one driver name (ASIO driver itself).
How can I list and select channel pairs from there? It will work nice on default, 0-1, but how can I change these?
Thank you and best regards,
- Laid asked 11 years ago
I read more about ASIO inclusion into FMOD and I think there is an easy way to provide us with the needed information. How about returning the IASIO interface structure when System::getOutputHandle is called? In this case we could just cast this pointer back to IASIO and we could call the function:
virtual ASIOError getChannels(long *numInputChannels, long *numOutputChannels) = 0;
it’s me again 😉 I have been searching the chm-File for the term "ASIO" a hundred of times and today I though I just do the same with the .h-File … fortunately I found:
typedef struct FMOD_ADVANCEDSETTINGS
int cbsize; /* Size of structure. Use sizeof(FMOD_ADVANCEDSETTINGS) /
int maxMPEGcodecs; / For use with FMOD_CREATECOMPRESSEDSAMPLE only. Mpeg codecs consume 29,424 bytes per instance and this number will determine how many mpeg channels can be played simultaneously. Default = 16. /
int maxADPCMcodecs; / For use with FMOD_CREATECOMPRESSEDSAMPLE only. ADPCM codecs consume 2,136 bytes per instance (based on FSB encoded ADPCM block size – see remarks) and this number will determine how many ADPCM channels can be played simultaneously. Default = 32. /
int maxXMAcodecs; / For use with FMOD_CREATECOMPRESSEDSAMPLE only. XMA codecs consume 20,512 bytes per instance and this number will determine how many XMA channels can be played simultaneously. Default = 32. */
That’s pretty nice since that’s almost what I wanted beside the ASIO configuration dialog. This is the only thing that’s just missing 😉 Maybe delivering IASIO is still a good idea.
with kind regards
I found that System::getOutputHandle() does not return NULL in case of ASIO. It does return a pointer to somewhere. Is that pointer probably something from the ASIO API? I already tried to cast it to IASIO without success (it crashes immediately ).
Please login first to submit.