forked from quickshell/quickshell
service/pipewire: refactor defaults and metadata handling
This commit is contained in:
parent
7f9762be53
commit
f889f08901
11 changed files with 455 additions and 144 deletions
73
src/services/pipewire/defaults.hpp
Normal file
73
src/services/pipewire/defaults.hpp
Normal file
|
@ -0,0 +1,73 @@
|
|||
#pragma once
|
||||
|
||||
#include <qobject.h>
|
||||
#include <qtmetamacros.h>
|
||||
|
||||
#include "registry.hpp"
|
||||
|
||||
namespace qs::service::pipewire {
|
||||
|
||||
class PwDefaultTracker: public QObject {
|
||||
Q_OBJECT;
|
||||
|
||||
public:
|
||||
explicit PwDefaultTracker(PwRegistry* registry);
|
||||
|
||||
[[nodiscard]] PwNode* defaultSink() const;
|
||||
[[nodiscard]] PwNode* defaultSource() const;
|
||||
|
||||
[[nodiscard]] PwNode* defaultConfiguredSink() const;
|
||||
[[nodiscard]] const QString& defaultConfiguredSinkName() const;
|
||||
|
||||
[[nodiscard]] PwNode* defaultConfiguredSource() const;
|
||||
[[nodiscard]] const QString& defaultConfiguredSourceName() const;
|
||||
|
||||
signals:
|
||||
void defaultSinkChanged();
|
||||
void defaultSinkNameChanged();
|
||||
|
||||
void defaultSourceChanged();
|
||||
void defaultSourceNameChanged();
|
||||
|
||||
void defaultConfiguredSinkChanged();
|
||||
void defaultConfiguredSinkNameChanged();
|
||||
|
||||
void defaultConfiguredSourceChanged();
|
||||
void defaultConfiguredSourceNameChanged();
|
||||
|
||||
private slots:
|
||||
void onMetadataAdded(PwMetadata* metadata);
|
||||
void onMetadataProperty(const char* key, const char* type, const char* value);
|
||||
void onNodeAdded(PwNode* node);
|
||||
void onNodeDestroyed(QObject* node);
|
||||
|
||||
private:
|
||||
void setDefaultSink(PwNode* node);
|
||||
void setDefaultSinkName(const QString& name);
|
||||
|
||||
void setDefaultSource(PwNode* node);
|
||||
void setDefaultSourceName(const QString& name);
|
||||
|
||||
void setDefaultConfiguredSink(PwNode* node);
|
||||
void setDefaultConfiguredSinkName(const QString& name);
|
||||
|
||||
void setDefaultConfiguredSource(PwNode* node);
|
||||
void setDefaultConfiguredSourceName(const QString& name);
|
||||
|
||||
PwRegistry* registry;
|
||||
PwBindableRef<PwMetadata> defaultsMetadata;
|
||||
|
||||
PwNode* mDefaultSink = nullptr;
|
||||
QString mDefaultSinkName;
|
||||
|
||||
PwNode* mDefaultSource = nullptr;
|
||||
QString mDefaultSourceName;
|
||||
|
||||
PwNode* mDefaultConfiguredSink = nullptr;
|
||||
QString mDefaultConfiguredSinkName;
|
||||
|
||||
PwNode* mDefaultConfiguredSource = nullptr;
|
||||
QString mDefaultConfiguredSourceName;
|
||||
};
|
||||
|
||||
} // namespace qs::service::pipewire
|
Loading…
Add table
Add a link
Reference in a new issue