From: <man...@us...> - 2015-01-07 09:57:44
|
Revision: 4702 http://sourceforge.net/p/modplug/code/4702 Author: manxorist Date: 2015-01-07 09:57:38 +0000 (Wed, 07 Jan 2015) Log Message: ----------- [Ref] sounddev: enum RequestFlags should be an FlagSet<RequestFlags> . Modified Paths: -------------- trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/sounddev/SoundDevice.cpp trunk/OpenMPT/sounddev/SoundDevice.h Modified: trunk/OpenMPT/mptrack/MainFrm.cpp =================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp 2015-01-06 21:24:26 UTC (rev 4701) +++ trunk/OpenMPT/mptrack/MainFrm.cpp 2015-01-07 09:57:38 UTC (rev 4702) @@ -1603,15 +1603,15 @@ MPT_TRACE(); if(gpSoundDevice) { - const LONG requestFlags = gpSoundDevice->GetRequestFlags(); - if(requestFlags & SoundDevice::IBase::RequestFlagClose) + const FlagSet<SoundDevice::RequestFlags> requestFlags = gpSoundDevice->GetRequestFlags(); + if(requestFlags[SoundDevice::RequestFlagClose]) { StopPlayback(); audioCloseDevice(); - } else if(requestFlags & SoundDevice::IBase::RequestFlagReset) + } else if(requestFlags[SoundDevice::RequestFlagReset]) { ResetSoundCard(); - } else if(requestFlags & SoundDevice::IBase::RequestFlagRestart) + } else if(requestFlags[SoundDevice::RequestFlagRestart]) { RestartPlayback(); } else Modified: trunk/OpenMPT/sounddev/SoundDevice.cpp =================================================================== --- trunk/OpenMPT/sounddev/SoundDevice.cpp 2015-01-06 21:24:26 UTC (rev 4701) +++ trunk/OpenMPT/sounddev/SoundDevice.cpp 2015-01-07 09:57:38 UTC (rev 4702) @@ -396,7 +396,7 @@ m_StreamPositionOutputFrames = 0; } m_Clock.SetResolution(1); - m_RequestFlags.fetch_and(~RequestFlagRestart); + m_RequestFlags.fetch_and((~RequestFlagRestart).as_bits()); if(!InternalStart()) { m_Clock.SetResolution(0); @@ -422,7 +422,7 @@ { InternalStop(); } - m_RequestFlags.fetch_and(~RequestFlagRestart); + m_RequestFlags.fetch_and((~RequestFlagRestart).as_bits()); m_Clock.SetResolution(0); m_IsPlaying = false; { Modified: trunk/OpenMPT/sounddev/SoundDevice.h =================================================================== --- trunk/OpenMPT/sounddev/SoundDevice.h 2015-01-06 21:24:26 UTC (rev 4701) +++ trunk/OpenMPT/sounddev/SoundDevice.h 2015-01-07 09:57:38 UTC (rev 4702) @@ -13,6 +13,7 @@ #include "../common/mutex.h" #include "../common/misc_util.h" +#include "../common/FlagSet.h" #include "../common/mptAtomic.h" #include "../common/ComponentManager.h" #include "../soundlib/SampleFormat.h" @@ -438,6 +439,18 @@ }; +enum RequestFlags +{ + RequestFlagClose = 1<<0, + RequestFlagReset = 1<<1, + RequestFlagRestart = 1<<2, +}; +} // namespace SoundDevice +template <> struct enum_traits<SoundDevice::RequestFlags> { typedef uint32 store_type; }; +namespace SoundDevice { +MPT_DECLARE_ENUM(RequestFlags) + + //========= class IBase //========= @@ -458,12 +471,6 @@ public: - static const uint32 RequestFlagClose = 1<<0; - static const uint32 RequestFlagReset = 1<<1; - static const uint32 RequestFlagRestart = 1<<2; - -public: - virtual void SetSource(SoundDevice::ISource *source) = 0; virtual void SetMessageReceiver(SoundDevice::IMessageReceiver *receiver) = 0; @@ -478,7 +485,7 @@ virtual bool Start() = 0; virtual void Stop(bool force = false) = 0; - virtual uint32 GetRequestFlags() const = 0; + virtual FlagSet<RequestFlags> GetRequestFlags() const = 0; virtual bool IsInited() const = 0; virtual bool IsOpen() const = 0; @@ -613,7 +620,7 @@ bool Start(); void Stop(bool force = false); - uint32 GetRequestFlags() const { return m_RequestFlags.load(); } + FlagSet<RequestFlags> GetRequestFlags() const { return FlagSet<RequestFlags>(m_RequestFlags.load()); } bool IsInited() const { return m_Caps.Available; } bool IsOpen() const { return IsInited() && InternalIsOpen(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |