docs: List<Message> getFullTrackList(final CdjStatus.TrackSourceSlot slot, final Client client, final int sortOrder)
              throws IOException, InterruptedException, TimeoutException {
          // Send the metadata menu request
          if (client.tryLockingForMenuOperations(MENU_TIMEOUT, TimeUnit.SECONDS)) {
              try {
                  Message response = client.menuRequest(Message.KnownType.TRACK_MENU_REQ, Message.MenuIdentifier.MAIN_MENU, slot,
                          new NumberField(sortOrder));
                  final long count = response.getMenuResultsCount();
                  if (count == Message.NO_MENU_RESULTS_AVAILABLE || count == 0) {
                      return Collections.emptyList();
                  }
  
                  // Gather all the metadata menu items
                  return client.renderMenuItems(Message.MenuIdentifier.MAIN_MENU, slot, CdjStatus.TrackType.REKORDBOX, response);
              }
              finally {
                  client.unlockForMenuOperations();
              }
          } else {
              throw new TimeoutException("Unable to lock the player for menu operations");
          }
      }