summaryrefslogtreecommitdiff
path: root/plugin/src/Caelestia/audioprovider.cpp
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-09-13 14:38:44 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-09-13 14:38:44 +1000
commit306cfc06ed38a2f86616c1f2fe64de45321f21a6 (patch)
treea27c79d9c4d01c2dadeeae74c844875ab7ab4eed /plugin/src/Caelestia/audioprovider.cpp
parentpopouts/tray: better interaction (diff)
downloadcaelestia-shell-306cfc06ed38a2f86616c1f2fe64de45321f21a6.tar.gz
caelestia-shell-306cfc06ed38a2f86616c1f2fe64de45321f21a6.tar.bz2
caelestia-shell-306cfc06ed38a2f86616c1f2fe64de45321f21a6.zip
plugin: refactor into modules
Diffstat (limited to 'plugin/src/Caelestia/audioprovider.cpp')
-rw-r--r--plugin/src/Caelestia/audioprovider.cpp122
1 files changed, 0 insertions, 122 deletions
diff --git a/plugin/src/Caelestia/audioprovider.cpp b/plugin/src/Caelestia/audioprovider.cpp
deleted file mode 100644
index f31480e..0000000
--- a/plugin/src/Caelestia/audioprovider.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-#include "audioprovider.hpp"
-
-#include "audiocollector.hpp"
-#include "service.hpp"
-#include <qdebug.h>
-#include <qthread.h>
-
-namespace caelestia {
-
-AudioProcessor::AudioProcessor(AudioCollector* collector, QObject* parent)
- : QObject(parent)
- , m_collector(collector) {}
-
-AudioProcessor::~AudioProcessor() {
- stop();
-}
-
-void AudioProcessor::init() {
- m_timer = new QTimer(this);
- if (m_collector) {
- m_timer->setInterval(static_cast<int>(m_collector->chunkSize() * 1000.0 / m_collector->sampleRate()));
- }
- connect(m_timer, &QTimer::timeout, this, &AudioProcessor::process);
-}
-
-void AudioProcessor::setCollector(AudioCollector* collector) {
- if (m_collector == collector) {
- return;
- }
-
- if (m_timer) {
- if (m_timer->isActive()) {
- if (m_collector) {
- m_collector->unref();
- }
- if (collector) {
- collector->ref();
- }
- }
- if (collector) {
- m_timer->setInterval(static_cast<int>(collector->chunkSize() * 1000.0 / collector->sampleRate()));
- } else {
- m_timer->stop();
- }
- }
-
- m_collector = collector;
-}
-
-void AudioProcessor::start() {
- if (m_timer && m_collector) {
- m_collector->ref();
- m_timer->start();
- }
-}
-
-void AudioProcessor::stop() {
- if (m_timer && m_collector) {
- m_timer->stop();
- m_collector->unref();
- }
-}
-
-AudioProvider::AudioProvider(QObject* parent)
- : Service(parent)
- , m_collector(nullptr)
- , m_processor(nullptr)
- , m_thread(nullptr) {}
-
-AudioProvider::~AudioProvider() {
- if (m_thread) {
- m_thread->quit();
- m_thread->wait();
- }
-}
-
-AudioCollector* AudioProvider::collector() const {
- return m_collector;
-}
-
-void AudioProvider::setCollector(AudioCollector* collector) {
- if (m_collector == collector) {
- return;
- }
-
- m_collector = collector;
- emit collectorChanged();
-
- if (m_processor) {
- QMetaObject::invokeMethod(m_processor, "setCollector", Qt::QueuedConnection, Q_ARG(AudioCollector*, collector));
- }
-}
-
-void AudioProvider::init() {
- if (!m_processor) {
- qWarning() << "AudioProvider::init: attempted to init with no processor set";
- return;
- }
-
- m_thread = new QThread(this);
- m_processor->moveToThread(m_thread);
-
- connect(m_thread, &QThread::started, m_processor, &AudioProcessor::init);
- connect(m_thread, &QThread::finished, m_processor, &AudioProcessor::deleteLater);
- connect(m_thread, &QThread::finished, m_thread, &QThread::deleteLater);
-
- m_thread->start();
-}
-
-void AudioProvider::start() {
- if (m_processor) {
- QMetaObject::invokeMethod(m_processor, "start", Qt::QueuedConnection);
- }
-}
-
-void AudioProvider::stop() {
- if (m_processor) {
- QMetaObject::invokeMethod(m_processor, "stop", Qt::QueuedConnection);
- }
-}
-
-} // namespace caelestia