Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/sanear.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Marsev <alex.marsev@gmail.com>2016-01-26 14:32:08 +0300
committerAlex Marsev <alex.marsev@gmail.com>2016-01-27 09:11:52 +0300
commit8659c969d393894ced711060f69308b20c2cf539 (patch)
tree6fcd34408c3b4a4314149c41f0347088133865ca
parent4976a8c89b60f22c5dd4dce4a9eb8201606095f6 (diff)
Code refactoring
Some deduplication.
-rw-r--r--src/AudioDevice.h29
-rw-r--r--src/AudioDeviceEvent.cpp34
-rw-r--r--src/AudioDevicePush.cpp34
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;
}