Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit be370eb6 authored by Étienne Ruffieux (xWF)'s avatar Étienne Ruffieux (xWF) Committed by Gerrit Code Review
Browse files

Merge "Handle error response for GetTotalNumberOfItems" into main

parents 4d1bd41d 63df5cec
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -725,6 +725,7 @@ void Device::AddressedPlayerNotificationResponse(uint8_t label, bool interim,
  if (curr_browsed_player_id_ == -1) {
    curr_browsed_player_id_ = curr_player;
  }
  curr_addressed_player_id_ = curr_player;

  auto response = RegisterNotificationResponseBuilder::MakeAddressedPlayerBuilder(
          interim, curr_player, 0x0000);
@@ -937,6 +938,8 @@ void Device::HandleSetAddressedPlayer(uint8_t label, std::shared_ptr<SetAddresse
    return;
  }

  curr_addressed_player_id_ = curr_player;

  auto response = SetAddressedPlayerResponseBuilder::MakeBuilder(Status::NO_ERROR);
  send_message(label, false, std::move(response));
}
@@ -1126,6 +1129,13 @@ void Device::GetTotalNumberOfItemsMediaPlayersResponse(uint8_t label, uint16_t /
void Device::GetTotalNumberOfItemsVFSResponse(uint8_t label, std::vector<ListItem> list) {
  log::verbose("num_items={}", list.size());

  if (curr_browsed_player_id_ == -1) {
    auto response = GetTotalNumberOfItemsResponseBuilder::MakeBuilder(Status::NO_AVAILABLE_PLAYERS,
                                                                      0x0000, 0);
    send_message(label, true, std::move(response));
    return;
  }

  auto builder =
          GetTotalNumberOfItemsResponseBuilder::MakeBuilder(Status::NO_ERROR, 0x0000, list.size());
  send_message(label, true, std::move(builder));
@@ -1135,6 +1145,13 @@ void Device::GetTotalNumberOfItemsNowPlayingResponse(uint8_t label, std::string
                                                     std::vector<SongInfo> list) {
  log::verbose("num_items={}", list.size());

  if (curr_addressed_player_id_ == -1) {
    auto response = GetTotalNumberOfItemsResponseBuilder::MakeBuilder(Status::NO_AVAILABLE_PLAYERS,
                                                                      0x0000, 0);
    send_message(label, true, std::move(response));
    return;
  }

  auto builder =
          GetTotalNumberOfItemsResponseBuilder::MakeBuilder(Status::NO_ERROR, 0x0000, list.size());
  send_message(label, true, std::move(builder));
+1 −0
Original line number Diff line number Diff line
@@ -341,6 +341,7 @@ private:
  bool has_bip_client_;

  int curr_browsed_player_id_ = -1;
  int curr_addressed_player_id_ = -1;

  std::stack<std::string> current_path_;

+3 −3
Original line number Diff line number Diff line
@@ -744,7 +744,7 @@ TEST_F(AvrcpDeviceTest, getTotalNumberOfItemsVFSTest) {
  EXPECT_CALL(interface, GetFolderItems(_, "", _)).Times(1).WillOnce(InvokeCb<2>(vfs_list));

  auto expected_response =
          GetTotalNumberOfItemsResponseBuilder::MakeBuilder(Status::NO_ERROR, 0, vfs_list.size());
          GetTotalNumberOfItemsResponseBuilder::MakeBuilder(Status::NO_AVAILABLE_PLAYERS, 0, 0);
  EXPECT_CALL(response_cb, Call(1, true, matchPacket(std::move(expected_response)))).Times(1);

  SendBrowseMessage(1, TestBrowsePacket::Make(get_total_number_of_items_request_vfs));
@@ -763,8 +763,8 @@ TEST_F(AvrcpDeviceTest, getTotalNumberOfItemsNowPlayingTest) {
  EXPECT_CALL(interface, GetNowPlayingList(_))
          .WillRepeatedly(InvokeCb<0>("test_id1", now_playing_list));

  auto expected_response = GetTotalNumberOfItemsResponseBuilder::MakeBuilder(
          Status::NO_ERROR, 0, now_playing_list.size());
  auto expected_response =
          GetTotalNumberOfItemsResponseBuilder::MakeBuilder(Status::NO_AVAILABLE_PLAYERS, 0, 0);
  EXPECT_CALL(response_cb, Call(1, true, matchPacket(std::move(expected_response)))).Times(1);

  SendBrowseMessage(1, TestBrowsePacket::Make(get_total_number_of_items_request_now_playing));