@@ -559,6 +559,14 @@ void A2DPSink::avrcp_controller_packet_handler(uint8_t packet_type, uint16_t cha
559
559
break ;
560
560
561
561
case AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED:
562
+ _title[0 ] = 0 ;
563
+ _artist[0 ] = 0 ;
564
+ _album[0 ] = 0 ;
565
+ _genre[0 ] = 0 ;
566
+ avrcp_controller_get_now_playing_info (avrcp_connection->avrcp_cid );
567
+ if (_trackChangedCB) {
568
+ _trackChangedCB (_trackChangedData);
569
+ }
562
570
DEBUGV (" AVRCP Controller: Track changed\n " );
563
571
break ;
564
572
@@ -585,27 +593,35 @@ void A2DPSink::avrcp_controller_packet_handler(uint8_t packet_type, uint16_t cha
585
593
case AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO:
586
594
if (avrcp_subevent_now_playing_title_info_get_value_len (packet) > 0 ) {
587
595
memcpy (avrcp_subevent_value, avrcp_subevent_now_playing_title_info_get_value (packet), avrcp_subevent_now_playing_title_info_get_value_len (packet));
596
+ strncpy (_title, (char *)avrcp_subevent_value, sizeof (_title));
597
+ _title[sizeof (_title) - 1 ] = 0 ;
588
598
DEBUGV (" AVRCP Controller: Title %s\n " , avrcp_subevent_value);
589
599
}
590
600
break ;
591
601
592
602
case AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO:
593
603
if (avrcp_subevent_now_playing_artist_info_get_value_len (packet) > 0 ) {
594
604
memcpy (avrcp_subevent_value, avrcp_subevent_now_playing_artist_info_get_value (packet), avrcp_subevent_now_playing_artist_info_get_value_len (packet));
605
+ strncpy (_artist, (char *)avrcp_subevent_value, sizeof (_artist));
606
+ _artist[sizeof (_artist) - 1 ] = 0 ;
595
607
DEBUGV (" AVRCP Controller: Artist %s\n " , avrcp_subevent_value);
596
608
}
597
609
break ;
598
610
599
611
case AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO:
600
612
if (avrcp_subevent_now_playing_album_info_get_value_len (packet) > 0 ) {
601
613
memcpy (avrcp_subevent_value, avrcp_subevent_now_playing_album_info_get_value (packet), avrcp_subevent_now_playing_album_info_get_value_len (packet));
614
+ strncpy (_album, (char *)avrcp_subevent_value, sizeof (_album));
615
+ _album[sizeof (_album) - 1 ] = 0 ;
602
616
DEBUGV (" AVRCP Controller: Album %s\n " , avrcp_subevent_value);
603
617
}
604
618
break ;
605
619
606
620
case AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO:
607
621
if (avrcp_subevent_now_playing_genre_info_get_value_len (packet) > 0 ) {
608
622
memcpy (avrcp_subevent_value, avrcp_subevent_now_playing_genre_info_get_value (packet), avrcp_subevent_now_playing_genre_info_get_value_len (packet));
623
+ strncpy (_genre, (char *)avrcp_subevent_value, sizeof (_genre));
624
+ _genre[sizeof (_genre) - 1 ] = 0 ;
609
625
DEBUGV (" AVRCP Controller: Genre %s\n " , avrcp_subevent_value);
610
626
}
611
627
break ;
0 commit comments