From 9bd12f02016cca8387b5f1498c9bded5e1368ab6 Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 3 Sep 2008 14:39:09 +0000 Subject: [PATCH] A fix for 64-bits --- panda/src/audiotraits/fmodAudioSound.cxx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/panda/src/audiotraits/fmodAudioSound.cxx b/panda/src/audiotraits/fmodAudioSound.cxx index 536841549d..cd18a3525d 100644 --- a/panda/src/audiotraits/fmodAudioSound.cxx +++ b/panda/src/audiotraits/fmodAudioSound.cxx @@ -311,10 +311,13 @@ set_time(float start_time) { } if (_channel == 0) { - + // This is because setCallback expects an integer + // but 64-bits pointers wont fit in a 32-bits int. + nassertv_always((intptr_t)this < UINT_MAX); + result = _manager->_system->playSound(FMOD_CHANNEL_FREE, _sound, true, &_channel); fmod_audio_errcheck("_system->playSound()", result); - result = _channel->setCallback(FMOD_CHANNEL_CALLBACKTYPE_END, sound_end_callback, (int)this); + result = _channel->setCallback(FMOD_CHANNEL_CALLBACKTYPE_END, sound_end_callback, (intptr_t)this); fmod_audio_errcheck("_channel->setCallback()", result); result = _channel->setPosition( startTime , FMOD_TIMEUNIT_MS ); fmod_audio_errcheck("_channel->setPosition()", result);