Changeset View
Changeset View
Standalone View
Standalone View
src/profile.h
Show First 20 Lines • Show All 43 Lines • ▼ Show 20 Line(s) | 37 | public: | |||
---|---|---|---|---|---|
44 | Q_ENUM(Availability) | 44 | Q_ENUM(Availability) | ||
45 | 45 | | |||
46 | Profile(QObject *parent); | 46 | Profile(QObject *parent); | ||
47 | virtual ~Profile(); | 47 | virtual ~Profile(); | ||
48 | 48 | | |||
49 | template<typename PAInfo> | 49 | template<typename PAInfo> | ||
50 | void setInfo(const PAInfo *info) | 50 | void setInfo(const PAInfo *info) | ||
51 | { | 51 | { | ||
52 | setCommonInfo(info, info->available ? Available : Unavailable); | ||||
53 | } | ||||
54 | | ||||
55 | QString name() const; | ||||
56 | QString description() const; | ||||
57 | quint32 priority() const; | ||||
58 | Availability availability() const; | ||||
59 | | ||||
60 | signals: | ||||
61 | void nameChanged(); | ||||
62 | void descriptionChanged(); | ||||
63 | void priorityChanged(); | ||||
64 | void availabilityChanged(); | ||||
65 | | ||||
66 | protected: | ||||
67 | template<typename PAInfo> | ||||
68 | void setCommonInfo(const PAInfo *info, Availability newAvailability) | ||||
69 | { | ||||
52 | // Description is optional. Name not so much as we need some ID. | 70 | // Description is optional. Name not so much as we need some ID. | ||
53 | Q_ASSERT(info->name); | 71 | Q_ASSERT(info->name); | ||
54 | QString infoName = QString::fromUtf8(info->name); | 72 | QString infoName = QString::fromUtf8(info->name); | ||
55 | if (m_name != infoName) { | 73 | if (m_name != infoName) { | ||
56 | m_name = infoName; | 74 | m_name = infoName; | ||
57 | emit nameChanged(); | 75 | emit nameChanged(); | ||
58 | } | 76 | } | ||
59 | if (info->description) { | 77 | if (info->description) { | ||
60 | QString infoDescription = QString::fromUtf8(info->description); | 78 | QString infoDescription = QString::fromUtf8(info->description); | ||
61 | if (m_description != infoDescription) { | 79 | if (m_description != infoDescription) { | ||
62 | m_description = infoDescription; | 80 | m_description = infoDescription; | ||
63 | emit descriptionChanged(); | 81 | emit descriptionChanged(); | ||
64 | } | 82 | } | ||
65 | } | 83 | } | ||
66 | if (m_priority != info->priority) { | 84 | if (m_priority != info->priority) { | ||
67 | m_priority = info->priority; | 85 | m_priority = info->priority; | ||
68 | emit priorityChanged(); | 86 | emit priorityChanged(); | ||
69 | } | 87 | } | ||
70 | 88 | | |||
71 | Availability newAvailability = info->available ? Available : Unavailable; | | |||
72 | if (m_availability != newAvailability) { | 89 | if (m_availability != newAvailability) { | ||
73 | m_availability = newAvailability; | 90 | m_availability = newAvailability; | ||
74 | emit availabilityChanged(); | 91 | emit availabilityChanged(); | ||
75 | } | 92 | } | ||
76 | } | 93 | } | ||
77 | 94 | | |||
78 | QString name() const; | | |||
79 | QString description() const; | | |||
80 | quint32 priority() const; | | |||
81 | Availability availability() const; | | |||
82 | | ||||
83 | signals: | | |||
84 | void nameChanged(); | | |||
85 | void descriptionChanged(); | | |||
86 | void priorityChanged(); | | |||
87 | void availabilityChanged(); | | |||
88 | | ||||
89 | private: | 95 | private: | ||
90 | QString m_name; | 96 | QString m_name; | ||
91 | QString m_description; | 97 | QString m_description; | ||
92 | quint32 m_priority; | 98 | quint32 m_priority; | ||
93 | Availability m_availability; | 99 | Availability m_availability; | ||
94 | }; | 100 | }; | ||
95 | 101 | | |||
96 | } // QPulseAudio | 102 | } // QPulseAudio | ||
97 | 103 | | |||
98 | #endif // PROFILE_H | 104 | #endif // PROFILE_H |