diff options
author | Alex Marsev <alex.marsev@gmail.com> | 2015-10-18 22:52:09 +0300 |
---|---|---|
committer | Alex Marsev <alex.marsev@gmail.com> | 2015-10-18 22:52:09 +0300 |
commit | 739293f4f82c010f55f7a50996e1ae47d8002bae (patch) | |
tree | cd064b215752f64e2cbd1cdd3110a94be0a9db2c | |
parent | f7b10f7d9e58f80e44968ae02cf74c37d7513bcc (diff) |
Indicate guided reclock on MyPropertyPage
-rw-r--r-- | src/AudioRenderer.cpp | 10 | ||||
-rw-r--r-- | src/AudioRenderer.h | 3 | ||||
-rw-r--r-- | src/MyFilter.cpp | 3 | ||||
-rw-r--r-- | src/MyPropertyPage.cpp | 7 | ||||
-rw-r--r-- | src/MyPropertyPage.h | 3 |
5 files changed, 21 insertions, 5 deletions
diff --git a/src/AudioRenderer.cpp b/src/AudioRenderer.cpp index d60a6e0..5df133a 100644 --- a/src/AudioRenderer.cpp +++ b/src/AudioRenderer.cpp @@ -59,6 +59,8 @@ namespace SaneAudioRenderer m_externalClock = false;
}
+
+ m_guidedReclockActive = false;
}
bool AudioRenderer::Push(IMediaSample* pSample, AM_SAMPLE2_PROPERTIES& sampleProps, CAMEvent* pFilledEvent)
@@ -110,6 +112,7 @@ namespace SaneAudioRenderer {
// Apply guided reclock adjustment.
m_dspRate.Adjust(-offset);
+ m_guidedReclockActive = true;
}
}
@@ -363,6 +366,13 @@ namespace SaneAudioRenderer return ret;
}
+ bool AudioRenderer::OnGuidedReclock()
+ {
+ CAutoLock objectLock(this);
+
+ return m_guidedReclockActive;
+ }
+
void AudioRenderer::CheckDeviceSettings()
{
CAutoLock objectLock(this);
diff --git a/src/AudioRenderer.h b/src/AudioRenderer.h index e0e6d35..826a9bc 100644 --- a/src/AudioRenderer.h +++ b/src/AudioRenderer.h @@ -59,6 +59,8 @@ namespace SaneAudioRenderer bool IsLive() const { return m_live; }
bool IsBitstreaming() const { return m_bitstreaming; }
+ bool OnGuidedReclock();
+
private:
void CheckDeviceSettings();
@@ -130,5 +132,6 @@ namespace SaneAudioRenderer double m_rate = 1.0;
std::atomic<REFERENCE_TIME> m_guidedReclockOffset = 0;
+ bool m_guidedReclockActive = false;
};
}
diff --git a/src/MyFilter.cpp b/src/MyFilter.cpp index 181c21f..e70e054 100644 --- a/src/MyFilter.cpp +++ b/src/MyFilter.cpp @@ -181,7 +181,8 @@ namespace SaneAudioRenderer data = MyPropertyPage::CreateDialogData(resize, inputFormat, audioDevice,
m_renderer->GetActiveProcessors(),
m_renderer->OnExternalClock(),
- m_renderer->IsLive());
+ m_renderer->IsLive(),
+ m_renderer->OnGuidedReclock());
}
catch (std::bad_alloc&)
{
diff --git a/src/MyPropertyPage.cpp b/src/MyPropertyPage.cpp index 691fb39..088a344 100644 --- a/src/MyPropertyPage.cpp +++ b/src/MyPropertyPage.cpp @@ -152,7 +152,8 @@ namespace SaneAudioRenderer }
std::vector<char> MyPropertyPage::CreateDialogData(bool resize, SharedWaveFormat inputFormat, const AudioDevice* pDevice,
- std::vector<std::wstring> processors, bool externalClock, bool live)
+ std::vector<std::wstring> processors, bool externalClock, bool live,
+ bool guidedReclock)
{
std::wstring adapterField = (pDevice && pDevice->GetAdapterName()) ? *pDevice->GetAdapterName() : L"-";
@@ -166,7 +167,7 @@ namespace SaneAudioRenderer std::wstring bitstreamingField = (inputFormat ? (bitstreaming ? L"Yes" : L"No") : L"-");
- std::wstring slavingField = live ? L"Live Source" : externalClock ? L"Graph Clock" : L"Audio Device";
+ std::wstring slavingField = guidedReclock ? L"Guided Reclock" : live ? L"Live Source" : externalClock ? L"Graph Clock" : L"Audio Device";
std::wstring channelsInputField = (inputFormat && !bitstreaming) ? std::to_wstring(inputFormat->nChannels) +
L" (" + GetHexString(DspMatrix::GetChannelMask(*inputFormat)) + L")" : L"-";
@@ -237,7 +238,7 @@ namespace SaneAudioRenderer : CUnknown(L"SaneAudioRenderer::MyPropertyPage", nullptr)
, m_delayedData(true)
{
- m_dialogData = CreateDialogData(false, nullptr, nullptr, {}, false, false);
+ m_dialogData = CreateDialogData(false, nullptr, nullptr, {}, false, false, false);
}
MyPropertyPage::MyPropertyPage(HRESULT& result, IStatusPageData* pData)
diff --git a/src/MyPropertyPage.h b/src/MyPropertyPage.h index 0a0a23c..a3f33d6 100644 --- a/src/MyPropertyPage.h +++ b/src/MyPropertyPage.h @@ -20,7 +20,8 @@ namespace SaneAudioRenderer public:
static std::vector<char> CreateDialogData(bool resize, SharedWaveFormat inputFormat, const AudioDevice* device,
- std::vector<std::wstring> processors, bool externalClock, bool live);
+ std::vector<std::wstring> processors, bool externalClock, bool live,
+ bool guidedReclock);
MyPropertyPage();
MyPropertyPage(HRESULT& result, IStatusPageData* pData);
|