Changeset View
Changeset View
Standalone View
Standalone View
src/device.h
Show All 32 Lines | |||||
33 | { | 33 | { | ||
34 | 34 | | |||
35 | class Device : public VolumeObject | 35 | class Device : public VolumeObject | ||
36 | { | 36 | { | ||
37 | Q_OBJECT | 37 | Q_OBJECT | ||
38 | Q_PROPERTY(State state READ state NOTIFY stateChanged) | 38 | Q_PROPERTY(State state READ state NOTIFY stateChanged) | ||
39 | Q_PROPERTY(QString name READ name NOTIFY nameChanged) | 39 | Q_PROPERTY(QString name READ name NOTIFY nameChanged) | ||
40 | Q_PROPERTY(QString description READ description NOTIFY descriptionChanged) | 40 | Q_PROPERTY(QString description READ description NOTIFY descriptionChanged) | ||
41 | Q_PROPERTY(QString formFactor READ formFactor NOTIFY formFactorChanged) | ||||
41 | Q_PROPERTY(quint32 cardIndex READ cardIndex NOTIFY cardIndexChanged) | 42 | Q_PROPERTY(quint32 cardIndex READ cardIndex NOTIFY cardIndexChanged) | ||
42 | Q_PROPERTY(QList<QObject *> ports READ ports NOTIFY portsChanged) | 43 | Q_PROPERTY(QList<QObject *> ports READ ports NOTIFY portsChanged) | ||
43 | Q_PROPERTY(quint32 activePortIndex READ activePortIndex WRITE setActivePortIndex NOTIFY activePortIndexChanged) | 44 | Q_PROPERTY(quint32 activePortIndex READ activePortIndex WRITE setActivePortIndex NOTIFY activePortIndexChanged) | ||
44 | Q_PROPERTY(bool default READ isDefault WRITE setDefault NOTIFY defaultChanged) | 45 | Q_PROPERTY(bool default READ isDefault WRITE setDefault NOTIFY defaultChanged) | ||
45 | public: | 46 | public: | ||
46 | enum State { | 47 | enum State { | ||
47 | InvalidState = 0, | 48 | InvalidState = 0, | ||
48 | RunningState, | 49 | RunningState, | ||
Show All 13 Lines | 60 | { | |||
62 | if (m_name != info->name) { | 63 | if (m_name != info->name) { | ||
63 | m_name = info->name; | 64 | m_name = info->name; | ||
64 | emit nameChanged(); | 65 | emit nameChanged(); | ||
65 | } | 66 | } | ||
66 | if (m_description != info->description) { | 67 | if (m_description != info->description) { | ||
67 | m_description = info->description; | 68 | m_description = info->description; | ||
68 | emit descriptionChanged(); | 69 | emit descriptionChanged(); | ||
69 | } | 70 | } | ||
71 | const char *form_factor = pa_proplist_gets(info->proplist, PA_PROP_DEVICE_FORM_FACTOR); | ||||
72 | if (form_factor) { | ||||
73 | QString formFactor = QString::fromUtf8(form_factor); | ||||
74 | if (m_formFactor != formFactor) { | ||||
75 | m_formFactor = formFactor; | ||||
76 | emit formFactorChanged(); | ||||
77 | } | ||||
78 | } | ||||
70 | 79 | | |||
71 | m_cardIndex = info->card; | 80 | m_cardIndex = info->card; | ||
72 | emit cardIndexChanged(); | 81 | emit cardIndexChanged(); | ||
73 | 82 | | |||
74 | // TODO: this rebuilds the entire port list on every update. would be | 83 | // TODO: this rebuilds the entire port list on every update. would be | ||
75 | // nicer if it actually removed what needs removing updates what needs | 84 | // nicer if it actually removed what needs removing updates what needs | ||
76 | // updating and adds what needs adding. Alas, this is a tad more | 85 | // updating and adds what needs adding. Alas, this is a tad more | ||
77 | // involved. | 86 | // involved. | ||
Show All 15 Lines | 101 | if (infoState != m_state) { | |||
93 | m_state = infoState; | 102 | m_state = infoState; | ||
94 | emit stateChanged(); | 103 | emit stateChanged(); | ||
95 | } | 104 | } | ||
96 | } | 105 | } | ||
97 | 106 | | |||
98 | State state() const; | 107 | State state() const; | ||
99 | QString name() const; | 108 | QString name() const; | ||
100 | QString description() const; | 109 | QString description() const; | ||
110 | QString formFactor() const; | ||||
101 | quint32 cardIndex() const; | 111 | quint32 cardIndex() const; | ||
102 | QList<QObject *> ports() const; | 112 | QList<QObject *> ports() const; | ||
103 | quint32 activePortIndex() const; | 113 | quint32 activePortIndex() const; | ||
104 | virtual void setActivePortIndex(quint32 port_index) = 0; | 114 | virtual void setActivePortIndex(quint32 port_index) = 0; | ||
105 | virtual bool isDefault() const = 0; | 115 | virtual bool isDefault() const = 0; | ||
106 | virtual void setDefault(bool enable) = 0; | 116 | virtual void setDefault(bool enable) = 0; | ||
107 | 117 | | |||
108 | signals: | 118 | signals: | ||
109 | void stateChanged(); | 119 | void stateChanged(); | ||
110 | void nameChanged(); | 120 | void nameChanged(); | ||
111 | void descriptionChanged(); | 121 | void descriptionChanged(); | ||
122 | void formFactorChanged(); | ||||
112 | void cardIndexChanged(); | 123 | void cardIndexChanged(); | ||
113 | void portsChanged(); | 124 | void portsChanged(); | ||
114 | void activePortIndexChanged(); | 125 | void activePortIndexChanged(); | ||
115 | void defaultChanged(); | 126 | void defaultChanged(); | ||
116 | 127 | | |||
117 | protected: | 128 | protected: | ||
118 | Device(QObject *parent); | 129 | Device(QObject *parent); | ||
119 | 130 | | |||
120 | private: | 131 | private: | ||
121 | State stateFromPaState(int value) const; | 132 | State stateFromPaState(int value) const; | ||
122 | 133 | | |||
123 | QString m_name; | 134 | QString m_name; | ||
124 | QString m_description; | 135 | QString m_description; | ||
136 | QString m_formFactor; | ||||
125 | quint32 m_cardIndex = -1; | 137 | quint32 m_cardIndex = -1; | ||
126 | QList<QObject *> m_ports; | 138 | QList<QObject *> m_ports; | ||
127 | quint32 m_activePortIndex = -1; | 139 | quint32 m_activePortIndex = -1; | ||
128 | State m_state = UnknownState; | 140 | State m_state = UnknownState; | ||
129 | }; | 141 | }; | ||
130 | 142 | | |||
131 | } // QPulseAudio | 143 | } // QPulseAudio | ||
132 | 144 | | |||
133 | #endif // DEVICE_H | 145 | #endif // DEVICE_H |