Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

cardsession_manager.h

Go to the documentation of this file.
00001 /*
00002         $Id: cardsession_manager.h,v 1.1 2001/03/06 15:09:26 mbn Exp $
00003 
00004         ------------------------------------------------------------------------
00005         ClanLib, the platform independent game SDK.
00006 
00007         This library is distributed under the GNU LIBRARY GENERAL PUBLIC LICENSE
00008         version 2. See COPYING for details.
00009 
00010         For a total list of contributers see CREDITS.
00011 
00012         ------------------------------------------------------------------------
00013 */
00014 
00015 #ifndef header_cardsession_manager
00016 #define header_cardsession_manager
00017 
00018 #include "API/Core/System/cl_assert.h"
00019 #include "cardsoundbuffer_playback.h"
00020 
00021 #include <vector>
00022 
00023 class CL_CardSessionManager
00024 {
00025 public:
00026         CL_CardSessionManager();
00027         virtual ~CL_CardSessionManager();
00028 
00029         void *add_playback(CL_CardSoundBuffer_Playback *playback_buffer);
00030         void add_reference(void *handle);
00031         void remove_reference(void *handle);
00032         void remove_soundbuffer_playbacks(CL_SoundBuffer_Generic *playback);
00033         void remove_all_playbacks();
00034         bool is_soundbuffer_playing(CL_SoundBuffer *playback);
00035 
00036         CL_CardSoundBuffer_Playback *get_playback(void *handle)
00037         {
00038                 // Totally safe type checking (not)
00039                 SPlayBackStruct *s = (SPlayBackStruct *) handle;
00040                 return s->playback;
00041         }
00042 
00043 private:
00044         struct SPlayBackStruct
00045         {
00046                 CL_CardSoundBuffer_Playback *playback;
00047                 int reference_count;
00048 
00049                 SPlayBackStruct(CL_CardSoundBuffer_Playback *_playback);
00050                 virtual ~SPlayBackStruct();
00051         };
00052 
00053         std::list<SPlayBackStruct*> playbacks;
00054         void garbage_collect();
00055 };
00056 
00057 #endif

Generated at Wed Apr 4 19:53:59 2001 for ClanLib by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001