MCPcopy Create free account
hub / github.com/Audio4Linux/JDSP4Linux / parse_app_info

Method parse_app_info

src/audio/pulseaudio/PulseManager.h:136–250  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

134
135 template <typename T>
136 auto parse_app_info(const T& info) -> std::shared_ptr<AppInfo> {
137 std::string app_name;
138 std::string media_name;
139 std::string media_role;
140 std::string app_id;
141 auto ai = std::make_shared<AppInfo>();
142 bool forbidden_app = false;
143
144 auto prop = pa_proplist_gets(info->proplist, "application.name");
145
146 if (prop != nullptr) {
147 app_name = prop;
148
149 forbidden_app =
150 std::find(std::begin(blacklist_apps), std::end(blacklist_apps), app_name) != std::end(blacklist_apps);
151
152 if (forbidden_app) {
153 return nullptr;
154 }
155 }
156
157 prop = pa_proplist_gets(info->proplist, "media.name");
158
159 if (prop != nullptr) {
160 media_name = prop;
161
162 if (app_name.empty()) {
163 app_name = media_name;
164 }
165
166 forbidden_app = std::find(std::begin(blacklist_media_name), std::end(blacklist_media_name), media_name) !=
167 std::end(blacklist_media_name);
168
169 if (forbidden_app) {
170 return nullptr;
171 }
172 }
173
174 prop = pa_proplist_gets(info->proplist, "media.role");
175
176 if (prop != nullptr) {
177 media_role = prop;
178
179 forbidden_app = std::find(std::begin(blacklist_media_role), std::end(blacklist_media_role), media_role) !=
180 std::end(blacklist_media_role);
181
182 if (forbidden_app) {
183 return nullptr;
184 }
185 }
186
187 prop = pa_proplist_gets(info->proplist, "application.id");
188
189 if (prop != nullptr) {
190 app_id = prop;
191
192 forbidden_app =
193 std::find(std::begin(blacklist_app_id), std::end(blacklist_app_id), app_id) != std::end(blacklist_app_id);

Callers

nothing calls this directly

Calls 3

beginFunction · 0.85
endFunction · 0.85
emptyMethod · 0.45

Tested by

no test coverage detected