Commit f8cd12a
committed
feat(controlpoint): ask a renderer which formats it accepts (v0.4.0)
A UPnP renderer publishes what it can decode as protocolInfo entries in its
ConnectionManager's Sink list, and asking is the only way to know whether a stream will
play before sending it: a renderer handed something it cannot decode does not complain,
it plays silence. Without this, a caller can only guess or be configured.
- discovery now resolves the ConnectionManager control URL alongside AVTransport and
RenderingControl; the service parsing was already generic, so this is one more lookup.
- DlnaControlPoint.getSinkContentTypes() invokes GetProtocolInfo and returns the MIME
types, cached — the sink list is a property of the device, not of a session.
- parseSinkContentTypes() is exported and takes the *third colon-separated field* of
each entry rather than searching the raw string, so `audio/flac` cannot be found
inside some other token, and it keeps parameterised types (`audio/L16;rate=44100`)
intact.
Returns null — not an empty array — when the device has no ConnectionManager, does not
answer, or answers unparseably. "It told us nothing" and "it accepts nothing" must not
read the same to a caller deciding what to send.1 parent f791538 commit f8cd12a
4 files changed
Lines changed: 107 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
59 | 62 | | |
60 | 63 | | |
61 | 64 | | |
| |||
181 | 184 | | |
182 | 185 | | |
183 | 186 | | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
184 | 248 | | |
185 | 249 | | |
186 | 250 | | |
| |||
580 | 644 | | |
581 | 645 | | |
582 | 646 | | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
583 | 650 | | |
584 | 651 | | |
585 | 652 | | |
| |||
611 | 678 | | |
612 | 679 | | |
613 | 680 | | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
13 | 19 | | |
14 | 20 | | |
15 | 21 | | |
| |||
347 | 353 | | |
348 | 354 | | |
349 | 355 | | |
| 356 | + | |
350 | 357 | | |
351 | 358 | | |
352 | 359 | | |
353 | 360 | | |
354 | 361 | | |
355 | 362 | | |
| 363 | + | |
356 | 364 | | |
357 | 365 | | |
358 | 366 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | | - | |
| 52 | + | |
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
| |||
0 commit comments