diff options
author | Alex Marsev <alex.marsev@gmail.com> | 2016-01-26 14:32:08 +0300 |
---|---|---|
committer | Alex Marsev <alex.marsev@gmail.com> | 2016-01-27 09:11:52 +0300 |
commit | 8659c969d393894ced711060f69308b20c2cf539 (patch) | |
tree | 6fcd34408c3b4a4314149c41f0347088133865ca | |
parent | 4976a8c89b60f22c5dd4dce4a9eb8201606095f6 (diff) |
Code refactoring
Some deduplication.
-rw-r--r-- | src/AudioDevice.h | 29 | ||||
-rw-r--r-- | src/AudioDeviceEvent.cpp | 34 | ||||
-rw-r--r-- | src/AudioDevicePush.cpp | 34 |
3 files changed, 31 insertions, 66 deletions
diff --git a/src/AudioDevice.h b/src/AudioDevice.h index 80b0956..27f6905 100644 --- a/src/AudioDevice.h +++ b/src/AudioDevice.h @@ -67,5 +67,34 @@ namespace SaneAudioRenderer protected:
std::shared_ptr<AudioDeviceBackend> m_backend;
+
+ template <class T>
+ bool IsLastInstance(T& smartPointer)
+ {
+ bool ret = (smartPointer.GetInterfacePtr()->AddRef() == 2);
+ smartPointer.GetInterfacePtr()->Release();
+ return ret;
+ }
+
+ bool CheckLastInstances()
+ {
+ if (!m_backend.unique())
+ return false;
+
+ if (m_backend->audioClock && !IsLastInstance(m_backend->audioClock))
+ return false;
+
+ m_backend->audioClock = nullptr;
+
+ if (m_backend->audioRenderClient && !IsLastInstance(m_backend->audioRenderClient))
+ return false;
+
+ m_backend->audioRenderClient = nullptr;
+
+ if (m_backend->audioClient && !IsLastInstance(m_backend->audioClient))
+ return false;
+
+ return true;
+ }
};
}
diff --git a/src/AudioDeviceEvent.cpp b/src/AudioDeviceEvent.cpp index d5475f3..8ddf5ee 100644 --- a/src/AudioDeviceEvent.cpp +++ b/src/AudioDeviceEvent.cpp @@ -3,17 +3,6 @@ namespace SaneAudioRenderer
{
- namespace
- {
- template <class T>
- bool IsLastInstance(T& smartPointer)
- {
- bool ret = (smartPointer.GetInterfacePtr()->AddRef() == 2);
- smartPointer.GetInterfacePtr()->Release();
- return ret;
- }
- }
-
AudioDeviceEvent::AudioDeviceEvent(std::shared_ptr<AudioDeviceBackend> backend)
{
assert(backend);
@@ -36,28 +25,7 @@ namespace SaneAudioRenderer if (m_thread.joinable())
m_thread.join();
- auto areLastInstances = [this]
- {
- if (!m_backend.unique())
- return false;
-
- if (m_backend->audioClock && !IsLastInstance(m_backend->audioClock))
- return false;
-
- m_backend->audioClock = nullptr;
-
- if (m_backend->audioRenderClient && !IsLastInstance(m_backend->audioRenderClient))
- return false;
-
- m_backend->audioRenderClient = nullptr;
-
- if (m_backend->audioClient && !IsLastInstance(m_backend->audioClient))
- return false;
-
- return true;
- };
- assert(areLastInstances());
-
+ assert(CheckLastInstances());
m_backend = nullptr;
}
diff --git a/src/AudioDevicePush.cpp b/src/AudioDevicePush.cpp index 8b75032..96ac526 100644 --- a/src/AudioDevicePush.cpp +++ b/src/AudioDevicePush.cpp @@ -3,17 +3,6 @@ namespace SaneAudioRenderer
{
- namespace
- {
- template <class T>
- bool IsLastInstance(T& smartPointer)
- {
- bool ret = (smartPointer.GetInterfacePtr()->AddRef() == 2);
- smartPointer.GetInterfacePtr()->Release();
- return ret;
- }
- }
-
AudioDevicePush::AudioDevicePush(std::shared_ptr<AudioDeviceBackend> backend)
: m_woken(TRUE/*manual reset*/)
{
@@ -39,28 +28,7 @@ namespace SaneAudioRenderer if (m_thread.joinable())
m_thread.join();
- auto areLastInstances = [this]
- {
- if (!m_backend.unique())
- return false;
-
- if (m_backend->audioClock && !IsLastInstance(m_backend->audioClock))
- return false;
-
- m_backend->audioClock = nullptr;
-
- if (m_backend->audioRenderClient && !IsLastInstance(m_backend->audioRenderClient))
- return false;
-
- m_backend->audioRenderClient = nullptr;
-
- if (m_backend->audioClient && !IsLastInstance(m_backend->audioClient))
- return false;
-
- return true;
- };
- assert(areLastInstances());
-
+ assert(CheckLastInstances());
m_backend = nullptr;
}
|