enforce that changed message is broadcast whenever value changes

This commit is contained in:
Chris Danford
2005-02-24 12:27:30 +00:00
parent 94743864e6
commit ab22e629d4
19 changed files with 54 additions and 26 deletions
+19
View File
@@ -12,6 +12,25 @@ public:
virtual void HandleMessage( const CString& sMessage ) = 0;
};
enum Message
{
MESSAGE_CURRENT_SONG_CHANGED,
NUM_MESSAGES
};
const CString& MessageToString( Message m );
template<class T, Message M>
class BroadcastOnChangePtr
{
private:
T *val;
public:
const T* Get() { return val; }
void Set( T* t ) { val = t; MESSAGEMAN->Broadcast( MessageToString(M) ); }
operator T* () const { return val; }
T* operator->() const { return val; }
};
class MessageManager
{
public: