00001 // Copyright (C) 2002-2018 Nikolaus Gebhardt 00002 // This file is part of the "irrKlang" library. 00003 // For conditions of distribution and use, see copyright notice in irrKlang.h 00004 00005 #ifndef __I_IRRKLANG_SOUND_STOP_EVENT_RECEIVER_H_INCLUDED__ 00006 #define __I_IRRKLANG_SOUND_STOP_EVENT_RECEIVER_H_INCLUDED__ 00007 00008 #include "ik_IRefCounted.h" 00009 #include "ik_SAudioStreamFormat.h" 00010 00011 00012 namespace irrklang 00013 { 00014 00015 00017 enum E_STOP_EVENT_CAUSE 00018 { 00020 ESEC_SOUND_FINISHED_PLAYING = 0, 00021 00023 ESEC_SOUND_STOPPED_BY_USER, 00024 00027 ESEC_SOUND_STOPPED_BY_SOURCE_REMOVAL, 00028 00031 ESEC_FORCE_32_BIT = 0x7fffffff 00032 }; 00033 00034 00036 00041 class ISoundStopEventReceiver 00042 { 00043 public: 00044 00046 virtual ~ISoundStopEventReceiver() {}; 00047 00049 00063 virtual void OnSoundStopped(ISound* sound, E_STOP_EVENT_CAUSE reason, void* userData) = 0; 00064 00065 }; 00066 00067 00068 } // end namespace irrklang 00069 00070 00071 #endif 00072