int main (int argc, char *argv[]) { DirectResult ret; IFusionSound *sound; IFusionSoundBuffer *buffer; ret = FusionSoundInit (&argc, &argv); if (ret) FusionSoundErrorFatal ("FusionSoundInit", ret); if (argc != 2) { fprintf (stderr, "\nUsage: %s <filename>\n", argv[0]); return -1; } ret = FusionSoundCreate (&sound); if (ret) FusionSoundErrorFatal ("FusionSoundCreate", ret); buffer = load_sample (sound, argv[1]); if (buffer) { do_playback_tests (buffer); buffer->Release (buffer); } sound->Release (sound); return 0; }
void FusionSoundAudioProvider::initialize(int numArgs, char* args[]) { if (sound == NULL) { if (!initialized) { initialized = true; //pool = new set<IFusionSoundStream*>; FusionSoundInit(&numArgs, &args); } FusionSoundCreate(&sound); } }
int main (int argc, char *argv[]) { DirectResult ret; IFusionSound *sound; IFusionSoundStream *stream; FSStreamDescription desc; ret = FusionSoundInit (&argc, &argv); if (ret) FusionSoundErrorFatal ("FusionSoundInit", ret); /* Retrieve the main sound interface. */ ret = FusionSoundCreate (&sound); if (ret) FusionSoundErrorFatal ("FusionSoundCreate", ret); /* Fill stream description. */ desc.flags = FSSDF_SAMPLERATE | FSSDF_BUFFERSIZE | FSSDF_CHANNELS | FSSDF_SAMPLEFORMAT; desc.samplerate = 44100; desc.buffersize = 32768; desc.channels = 1; desc.sampleformat = FSSF_S16; /* Create the sound stream and feed it. */ ret = sound->CreateStream (sound, &desc, &stream); if (ret) { FusionSoundError ("IFusionSound::CreateStream", ret); } else { /* Fill the ring buffer with our generated data. */ feed_stream (stream); /* Wait for end of stream (ring buffer holds ~3/4 sec). */ stream->Wait (stream, 0); stream->Release (stream); } sound->Release (sound); return 0; }