Пример #1
0
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;
}
Пример #2
0
	void FusionSoundAudioProvider::initialize(int numArgs, char* args[]) {
		if (sound == NULL) {
			if (!initialized) {
				initialized = true;
				//pool = new set<IFusionSoundStream*>;
				FusionSoundInit(&numArgs, &args);
			}
			FusionSoundCreate(&sound);
		}
	}
Пример #3
0
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;
}