-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathChangeLog
More file actions
1202 lines (746 loc) · 38 KB
/
ChangeLog
File metadata and controls
1202 lines (746 loc) · 38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
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
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
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
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2023-03-22 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 6.1 released.
* Stability: Fix crash after wakeup in paused Roon mode.
* Audio sources: Fix deferred audio source selection.
* User interface: The busy flag is more reliable now. Double display
updates while navigating a list are avoided, speeding up the UI and
thus improving the UX.
* Misc: Maintenance work.
2023-03-14 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 6.0 released.
* Airable: Stream links from Airable are passed straight to the
player. It makes more sense to resolve them there and removes quite
some complexity from drcpd.
* Stability: Fix a few minor bugs.
2022-11-30 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.32 released.
* Debugging: Avoid a few false error messages.
* Misc: Maintenance work.
2022-11-17 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.31 released.
* Playback: Don't mess with the player's queue on stream stop if we
are not the controlling instance.
2022-10-28 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.30 released.
* Playback: When skipping any stream in pause mode, automatically
leave pause mode and play the next stream.
* Stability: Replace assertion with bug message when trying to enter
root directory while jumping to context.
2022-10-21 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.29 released.
* Playback: When skipping app streams in pause mode, automatically
leave pause mode and play the next stream.
2022-10-14 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.28 released.
* Playback: Fix handling of play and pause state. This avoids
displaying pause state while the player is actually playing.
* Stability: Fix crash during startup and on audio source selection.
2022-09-05 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.27 released.
* dbus: Do not send stream information to dcpd if the information
haven't changed. This avoids wasting a good deal of CPU cycles.
* Misc: Fix uninitialized memory access.
* Logging: Do not write buffering information to the log.
2022-08-16 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.26 released.
* Playback: Handle streams dropped by streamplayer directly from
queue.
* Unit tests: Fix failing tests.
* Misc: Fix several linter warnings.
2022-04-07 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.25 released.
* Playback: Skip over list items which have no URL associated with
them. This may happen with items returned by Airable or UPnP, in
case the corresponding list brokers fail to mark these items as
locked.
* Playback: Send reasons for start and pause commands to streamplayer
for debugging purposes.
2021-10-19 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.24 released.
* Airable: Avoid a crash in case OAuth is active and is supposed to
be activated again. This happens while being logged out from TIDAL,
and then logging out again.
2021-10-15 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.23 released.
* Airable: Keep OAuth going between audio source switches.
* Stability: Fix severe bug in meta data handling (bad memory
accesses). This bug was introduced in v5.22, rendering that version
useless for all practical purpuses.
* Stability: Fix infinite loop during traversal of directory
structures of certain shapes.
* Stability: Fix memory leak.
2021-10-11 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.22 released.
* Player: Push meta data to streamplayer so that preset meta data
pulled from Airable is reported to REST API client.
2021-10-04 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.21 released.
* Stability: Fix two crashes.
2021-10-01 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.20 released.
* User interface: Button presses on appliance and remote control are
not sent directly to the active player while there is a REST API
client in control. This allows the REST API client to control
whether or not the command should be turned into action.
* DCP: Preset meta data set via registers 78 and 238 to dcpd are not
sent via StreamInfo signal anymore. These data are sent by dcpd
along with the stream URL to the player queue. We have code already
which recognizes them, so all code related to StreamInfo signal
handling was removed.
2021-09-14 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.19 released.
* Playback: Do not stop playing on series of errors.
* Playback: Fix synchronization of DRCPD playback queue and
streamplayer gapless queue.
* Playback: Slightly improve performance of skipping of unplayable
streams.
2021-09-08 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.18 released.
* Airable: Deactivate repeated OAuth notification screen when leaving
the TIDAL audio source.
* User interface: Fix flickering index indication in lists.
* Internationalization: Fix build with Meson.
2021-08-26 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.17 released.
* Airable: Support OAuth2 authentication as soon will be required by
TIDAL.
* Audio sources: Support the new strbo.rest audio source which allows
REST API clients to access the stream player and the appliance
display directly.
* User interface: Allow processes in the system to send errors that
cannot be caught in other ways. A new D-Bus interface has been added
for this, which drcpd monitors. Currently, only the Airable list
broker sends errors to support the user with detecting problems in
his network, and troubleshooting them.
* Misc: Better log messages for certain runtime failures.
2021-06-28 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.16 released.
* Player: Fix playback for a series of short tracks.
2021-05-12 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.15 released.
* Stability: Fix freeze during high frequency UPnP server root list
updates (and generally, any high frequency list updates).
2021-05-07 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.14 released.
* Stability: Fix a crash which occurred during high frequency UPnP
server root list updates.
2021-04-27 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.13 released.
* Player: Dump new buffer information D-Bus signal sent around by
streamplayer to the log. These information are going only to the log
for now, not to the display.
2021-04-23 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.12 released.
* Playback: Distribute CPU consumption caused by prefetching to avoid
stuttering playback during track changes.
2021-02-23 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.11 released.
* Stability: Abort messages sent by list brokers are recognized as
such and handled as such now.
* Stability: Crash on music service login error fixed (context jump
handling was bad, combined with race conditions in list brokers and
the missed abort messages).
* User interface: If logging into a music service fails due to bad
credentials, then emit a corresponding error message in the right
place and time.
2021-02-11 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.10 released.
* Playback: Fix handling of unplayable files. They should be skipped
properly now.
* Misc: Fix various internal shortcomings.
2021-01-25 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.9 released.
* Playback: Avoid crash on playback failure due to stream error.
2020-12-14 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.8 released.
* Playback: Avoid crash when skipping quickly while in pause state.
2020-11-25 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.7 released.
* Playback: Avoid crash on source selection while playing.
2020-11-23 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.6 released.
* Playback: Fix handling of pause/play state.
* Playback: Selected track via app is actually played, not the next or
the one following the next.
* Playback: Fix a bug while skipping back and forth which caused the
skipping mechanism to stop working.
* Stability: Hitting the blue search button while a list operation was
active caused the system to enter an infinite loop, flooding the log
and leaving the UI unresponsive. This has been fixed.
* Stability: Fix several crashes while playing and skipping through a
list.
2020-10-30 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.5 released.
* Stability: Fix two crashes related to playing from the app.
* Stability: Fix another (very rare) crash happening at startup.
2020-10-28 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.4 released.
* Stability: The whole D-Bus list management has been rewritten to
cope with the new flexibility of RNF calls. The old code base relied
on certain assumptions such as single-call-at-a-time, completion of
calls in specific order, and other things that were true in the old
implementation. Emulating overall behaviour to match the old
implementation would have been very complicated and misguided, so
instead the list filling and caching code has been rewritten to make
use of the added flexibility.
* Stability: Avoid crash on play caused by deferencing a dangling
pointer.
* Playback: Handling of dropped streams, especially during skipping,
has been improved. Streamplayer v5.2 or later is required to make
this work.
* Misc: Fixed compiler warnings.
2020-03-24 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.3 released.
* Stability: Avoid crash on invalid stream ID in play view.
* Stability: Avoid crash when starting a stream from USB.
* Stability: Avoid crash when browsing long UPnP server lists.
* Meson: Several improvements and simplifications.
* Misc: Fixed compiler warnings.
2020-03-04 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.2 released.
* Playback: Fix meta data management for streams pushed in via app.
* Playback: Fix handling of play/pause commands.
* User interface: Avoid annoying "No data available" placeholder while
loading lists. It was an artifact added by the increased precision
and control over D-Bus calls since v5.0.
2020-02-28 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.1 released.
* Playback: System can be used from app again.
* Playback: System can be used from Roon again.
* User interface: Meta data from app is displayed.
* User interface: Avoid endless display of busy symbol.
* Stability: Fixed several crashes and one memory leak.
2020-02-19 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 5.0 released.
* D-Bus: Rewritten list navigation code. All potentially long-running
sycnhronous D-Bus method invocations were replaced by a completely
asynchronously working mechanism. The new code cannot trigger D-Bus
timeouts anymore (unless there is a true communication error) and
makes many things explicit (object to represent state and
expectations) which were implicit before (semi-globals, state
scattered across processes and D-Bus method call states).
A lot of code had to be changed or entirely rewritten, so this
version is expected to contain quite some bugs.
* D-Bus: Rewritten streamplayer synchronization code. There were many
situations in which our old code full of guesswork was unable to
synchronize with streamplayer queue states. It worked before because
of the way list navigation and thus list playback worked, but the
change of communication style rendered the previous synchronization
useless in many places.
* Build system: Support Meson.
* Licensing: Changed license from GPLv3+ to GPLv2+.
* Misc: Fixed many compiler and cppcheck warnings/bugs.
2019-03-14 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 4.18 released.
* Playback: Proper synchronization with TAPSwitch for clean switching
of audio sources.
2018-12-17 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 4.17 released.
* Logging: Send stop reason to stream player so that it can be emitted
to the log.
2018-09-20 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 4.16 released.
* Internationalization: Reword Deezer idle screen message.
2018-07-13 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 4.15 released.
* Roon view: Send screen update when switching from idle source to
Roon source. The Roon view was active at that time (it had to
because of pending events coming from Roon), so the screen
serialization was suppressed on audio source switch. We now enforce
the update.
* Airable views: Fixed updating of view titles when switching back and
forth between Airable audio sources.
2018-06-19 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 4.14 released.
* Audio sources: Adapted to changed D-Bus interfaces required for
Roon certification.
2018-04-17 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 4.13 released.
* Playback: Proper handling and observation of deferred audio path
activation. Requires TAPSwitch v1.3 or later.
2018-03-16 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 4.12 released.
* Internationalization: Improved handling of missing translations. In
case a language is selected for which there is no translation
available, the software falls back to US English. It should have
done this before anyway, but it didn't quite work.
* Internationalization: Fixed dynamic translation of placeholder
list item shown while loading a list ("Loading...").
2018-03-12 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 4.11 released.
* Internationalization: Add French and Italian translations.
2018-03-06 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 4.10 released.
* Maintenance: Fix compilation with gcc 7.3.0.
* Misc: Do not error out if markdown is not installed.
2018-02-06 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 4.9 released.
* Roon: Fixed handling of play/pause commands coming from our
appliance on the one hand, and from the Roon app on the other hand.
For instance, we tried to continue playing a stream when pause was
pushed on Roon side if that stream has been paused and resume on
appliance side before.
* Roon: Jump to Roon's idle screen when the appliance switches from
play view with Roon playing to the inactive view. This masks frozen
Roon display with wrong contents (play state is shown while the Roon
app is in pause state).
* Airable: Fixed switching back and forth between TIDAL/Qobuz and
Internet Radio audio sources (Airable's root directory became
visible and browsable in case external music service credentials
were wrong or missing).
* UI: Ignore navigational commands while Roon or App audio source is
active.
* UI: Roon idle screen says, "Roon Ready" (not "Roon Ready (beta)").
2018-01-30 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 4.8 released.
* Stability: Fixed possible crash due to uninitialized pointer.
2017-12-08 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 4.7 released.
* Internationalization: Revert translation for one string so that a
hack on the SPI slave can continue to function.
2017-12-07 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 4.6 released.
* Airable: The navigational state is kept while jumping between
different Airable audio sources.
* Internationalization: Add full German translation.
2017-11-30 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 4.5 released.
* Playback: Resuming after switching between audio sources works now.
* Playback: Bit rate limitation setting works reliably now.
* Airable: Reload root listing of external service whose login status
have been changed. This change relies on D-Bus API changes as used
by listbrokers v3.3.
* Airable: Fix list context information in XML serialization for old
navigation style (coming from the Airable root directory).
* Deezer: Locked out. It is possible to activate the Deezer source,
but it will not work.
* UI: Avoid funny lines in lists ("Project-Id-Version: ...").
2017-11-23 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 4.4 released.
* DRCP: Support resume-playback command (0xb4). The current crawler
state is encoded as StrBo URL by asking the responsible list broker
and then stored on file. On next start, the configuration is read
back and used when the resume request is received. Resume data is
erased on explicit stop commands sent by the end user.
* DRCP: Screen IDs are not sent anymore with browse, play, edit, or
msg views. There is a new screen ID "error" which uses screen IDs
for error reporting purposes.
The term "screen ID" will still be used even though the term "error
ID" would be more appropriate given the current implementation. This
is because it is possible to send screen IDs with non-error views,
too. This is also the reason why screen IDs will be global and
independent of context they appear in.
* DRCP: A few errors with proper screen IDs are emitted for testing
purposes. They are emitted on problems when entering a directory or
jumping to a list context (aka activating an Airable audio source),
e.g., if permission is denied or on authentication failure.
* DRCP: Audio source idle screens are sent as view ID "msg".
* DRCP: Empty or other status screens are sent as view ID "msg"
containing multi-line messages.
* Roon: Idle screen says, "Roon Ready (beta)".
* Roon: Only send opaque lines (see d03067e7) to SPI slave as stream
meta data if the other tags are unavailable. This reduces the amount
of data sent to the SPI slave and causes less confusion.
* Internationalization: The local language can be configured and
queried over D-Bus using the generic configuration interface.
Language settings are stored on configuration file so to avoid
"language flickering" at startup. Translated on-screen messages are
updated at runtime the instant the language settings are changed.
2017-10-16 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 4.3 released.
* Audio sources: A new view for inactive state has been added. It does
not send any screen updates and does not react to any inputs.
* Roon: Forward non-structured meta data to SPI slave as per
certification requirements. This is done in the play view using the
new tags "line0", "line1", and "line2". The tags for transmitting
structured information remain empty for Roon.
* Misc: The program activates the view for inactive at startup. In
previous versions, the UPnP view was automatically activated (an
arbitrary choice made in the past because "just something" had to be
activated).
2017-09-26 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 4.2 released.
* Playback: Lists are requested to remain in cache while playing their
contents. To make this work, listbrokers v3.1 or later is required.
The problem with non-cacheable lists is that they are destroyed and
reloaded once the user re-enters them by navigating back and forth.
The directory crawler cannot catch up with these changes, so it
stopped working in previous versions and drcpd even crashed in this
situation. Since it would have been impractical to extend the
crawler, the list brokers have been taught to temporarily override
list caching modes.
* Roon: Forward button presses to Roon (skip, seek, shuffle, repeat)
if the Roon source is selected, report Roon state changes to SPI
slave via DRCP XML.
2017-09-05 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 4.1 released.
* Summary: This is a merge of versions 3.9 and 4.0. It includes a
first beta integration of our Roon player and explicit audio source
handling.
* Roon: Add view for Roon audio source handling and corresponding idle
screen.
* TA Control: Add view for plain URL audio source handling and
corresponding idle screen.
* Airable: Register multiple audio sources, one for each top-level
item in the root directory. The primary Airable audio source is
called "airable", meaning all of Airable. Each sub-source is
prefixed with string "airable." (as in "airable.tidal"). While an
audio sub-source is active, list navigation is restricted to the
subtree corresponding to that source (e.g., it is not possible to
leave the TIDAL directory while source "airable.tidal" is active).
* Audio sources: Switching by audio source now also switches the view
the audio source belongs to. For Airable sub-sources, the
corresponding subtree is entered.
* Audio sources: Changed naming scheme. We do not use view name for
audio source IDs anymore (primarily because the Airable view is
associated with multiple audio sources).
* DRCP: Send dynamic view titles as passed in by list brokers.
* Airable: Fix minor bug in root list handling which sometimes caused
the search forms to stop working.
* Misc: Show helpful message in case USB device list, UPnP server
list, or Airable root list is empty.
2017-09-01 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 3.9 released.
* Playback: Fix skipping over empty directories while playing a
directory structure.
2017-07-19 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 3.8 released.
* Misc: Adapted to internal interfaces for changes made in list
brokers v2.4.
2017-06-08 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 3.7 released.
* Misc: Better log messages in case of D-Bus method call failures.
* Misc: Improvements of introspection while debugging locking
problems.
2017-06-02 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 3.6 released.
* Misc: Migration to new D-Bus configuration management code.
* Misc: Avoid bug warnings.
2017-04-20 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 3.5 released.
* Playback: Play icon is shown after resuming from pause. Regression
was introduced in v3.4.
* Playback: Attempting to skip before first playable item during
playback does not confuse the player anymore.
* Stability: Fix crash during fast skipping.
2017-04-11 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 3.4 released.
* Playback: Support fast forward, fast reverse and seeking. Fast
winding modes are reported to the SPI slave so that they can be
displayed.
* Playback: The play view is also left now after playing a list whose
last file is not playable, or which contains no playable files at
all.
* Playback: Handle list items with no associated URL correctly (by not
attempting to play them).
* Skipping: A few minor fixes for fast sequences of skip requests.
* Skipping: Fix skipping over text files in both directions.
2017-03-29 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 3.3 released.
* Skipping: More fixes for fast sequences of skip requests.
* Stability: Fix occasional hangs and crashes caused by internal
communication failures. Requires dcpd v3.2 for full effect as there
was also a bug on the other side.
* Misc: Slightly faster startup.
2017-03-21 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 4.0 released.
* Audio routing: Register with TAPSwitch as audio source(s).
* Audio routing: The player selects the audio source before starting
to play. It won't play anything before source selection has
succeeded.
* Audio routing: Audio source selection by external means switches to
the associated view, if any.
* Roon: Connect to playback D-Bus interface exported by TARoon and
react to now-playing signals. This makes TARoon available as a
non-selectable audio source just like the Smartphone App source.
* Roon: Forward playback commands to TARoon using the same mechanisms
as for the StrBo streamplayer. This enables controlling play, pause,
and stop for Roon.
* TA Control/Roon: Player permissions apply. There are only static
permissions whereas Roon requires dynamic permissions, but it's a
start.
2017-03-06 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 3.2 released.
* Stability: Fix spurious crash.
2017-02-28 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 3.1 released.
* Playback: Fixed problem with toggling between play and pause modes.
* Playback: Fixed skipping backwards over problematic streams.
* Skipping: Fast sequences of skip requests work reliably and do not
kill the directory traversal.
* Skipping: Rewind threshold has been increased from 2 to 5 seconds.
This is because skipping backwards can be slow, especially on UPnP
lists, so even if skipping was clearly intended by the user, the
skip back command may be processed only after more than 2 seconds
into the track. Five seconds still feel natural and practical, so
here we go.
* Stability: Fixed crash due to dangling file item pointer while
skipping quickly over long stretches of a list.
2017-02-16 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 3.0 released: Changes of D-Bus interfaces were necessary
which break compatibility with older version, hence the change of
the major version.
* Cover art: Integrate with TACAMan. This primarily means taking
stream keys from streamplayer and listbrokers, and passing them to
streamplayer when queuing a stream. All the heavy lifting is done by
TACAMan.
2017-01-19 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 2.9 released.
* Qobuz: Support gapless playback.
* Skipping: Jumping back and forth between tracks works reliably, also
across directory boundaries.
* Playback: Bit rate of streams can be restricted. In case there are
alternative streams to play for the same track or radio station, the
best stream which fits the configured maximum bit rate is selected.
* Playback: Pictures, text files, and other non-playable audio files
are ignored and do not interrupt the currently playing list.
* Playback: Failing streams are retried a few times in case they stop
playing unintendedly.
* Playback: The number of prefetched of streams depends on context
now. In case of Internet radio, no prefetching is done. In case of
TIDAL and Qobuz, only a single stream is prefetched. In other cases,
up to 5 streams are prefetched.
* UI: Improved handling of stream meta data. There should be no more
empty entries.
* UI: Fixed various problems that appeared if the user skipped through
streams quickly.
* Configuration: There is a configuration file for drcpd now. It can
be read out and manipulated using some new D-Bus interfaces for
generic configuration management.
* Debugging: Add some useful logs at higher verbosity levels.
* Compatibility: Requires streamplayer 2.0 to work, older versions are
not supported.
* Compatibility: Requires listbrokers 1.29 to work, older versions are
not supported.
2016-12-06 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 2.8 released.
* Playback: Pushing play in the smartphone app to resume a paused
stream works again as expected.
2016-11-25 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 2.7 released.
* Debugging: Allow setting verbosity level over D-Bus.
2016-11-17 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 2.6 released.
* Misc: Send title and URL to dcpd so that it is always up-to-date
with correct and consistent meta data. This worked already in v2.1,
but stopped working in v2.2 as a result of major changes applied
between the two versions.
2016-11-03 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 2.5 released.
* User interface: Jump back from play view to browse view after
playing the last track of a list.
* User interface: Avoid meta data display troubles in conjunction with
the smartphone app.
* User interface: Fixed crash when trying to work with an empty list.
* User interface: Fixed hanging system on startup in case of network
problems.
2016-10-24 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 2.4 released.
* User interface: Selecting a track while another one is playing works
again as expected.
* User interface: Show fallback title for those Internet radios that
do not send any meta data.
2016-09-21 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 2.3 released.
* User interface: Fix showing root list at startup. This version
should not end up showing empty root lists anymore after startup
when the lists shouldn't be empty.
* User interface: Fix reloading of lists after loss of network
connection.
* User interface: Busy state updates are more reliable. This avoids
endless display of busy symbol.
* Playback: Skipping backwards through Airable radio and podcast lists
works. It didn't work before because we tried to rewind to start
before attempting to skip.
* Stability: Fix several lock-ups and crashes of the user interface.
2016-07-29 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 2.2 released.
* Playback: The player component has been completely redesigned. It is
follows an MVC-like architecture now. This version, however, is a
poorly tested one. Any kind of problems may still occur in this
version.
* Stability: Fix rare race-condition in asynchronous list handling
code.
2016-07-21 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 2.1 released.
* User interface: Meta data updates are functional again.
* Stability: Avoid crash on various occasions.
* Airable: Logout fixed.
* Misc: Remove many now unneeded log messages to reduce overall CPU
consumption.
2016-07-12 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 2.0 released.
* Groundwork: Many D-Bus methods are invoked asynchronously now,
leading to vast improvement on perceived system response. Due to
project time constraints, not all parts have been reworked yet and
remain synchronous, but the foundation for moving more code from
synchronous to asynchronous messaging has been set.
A lot of code had to be touched to get this done, so this version
may actually be less stable than previous versions.
* D-Bus: Method and signal handlers are decoupled from the D-Bus
context by an event queue. The intended effects of the D-Bus
handlers, especially those parts that can block or are
time-consuming, are processed in a different context so that D-Bus
communication is never blocked for long or unpredictable times.
* Misc: Better tracking of busy state.
* Misc: Avoid some memory leaks.
2016-05-19 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 1.21 released.
* Airable: Log out using new D-Bus method for logging out from
external services, react on login/logout communicated via new D-Bus
signals.
2016-05-04 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 1.20 released.
* Airable: Handle logout buttons in Airable.
* DCP: Increase dcpd timeout to avoid lost messages between dcpd and
drcpd in really busy situations.
* Misc: Adapt to latest changes in Streamplayer D-Bus interfaces.
Requires streamplayer 1.8 because of incompatible changes.
2016-04-25 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 1.19 released.
* Playback: Continuing a paused stream does not lose the stream
information anymore.
2016-04-21 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 1.18 released.
* User interface: Searching in lists outside of Airable domain is
possible. As long as the lists are sorted, hitting the search button
in UPnP or USB view opens a search dialog. The entered string is
searched within the currently displayed list, and the selection
moves to the entry whose prefix matches best.
* User interface: Search button within Airable directory jumps
directly to the search form of the currently browsed domain.
* User interface: Moving quickly through long lists by holding the up
or down key is actually useful now. It was way too slow in previous
versions.
* User interface: Lists wrap around, jumping to the end of a list is
easy and fast now.
* Stability: Avoid hanging process in various occasions. Some more
deadlocks fixed.
2016-04-14 Robert Tiemann <r.tiemann@ta-hifi.de>
* Version 1.17 released.
* User interface: Broken TIDAL lists are being worked around. The
lists do not disappear anymore, but instead the extra empty lines
sent by TIDAL are displayed as unplayable "----" lines.
* User interface: Search box can be reopened as expected after it has
been closed due to timeout or stop command.
* Stability: Avoid hanging process in various occasions. There were
several deadlocks in the audio player module.