pleezer 0.13.0

Headless Deezer Connect player
Documentation
syntax = "proto3";

package pleezer.playback.queue.proto;

message CurrentIndex {
  string id = 1;
  uint32 index = 2;
  uint64 timestamp = 3;
}

message List {
  string id = 1;
  repeated Context contexts = 2;
  repeated Track tracks = 3;
  repeated uint32 tracks_order = 4 [packed=true];
  bool shuffled = 5;
  uint64 timestamp = 6;
}

message Context {
  Container container = 1;
  Log log = 2;
}

message Container {
  string context_id = 1;
  ContainerType typ = 2;
  optional Mix mix = 3;
  optional string smart_tracklist_method = 4;
  optional TopTracks toptracks = 5;
}

enum ContainerType {
  CONTAINER_TYPE_DEFAULT = 0;
  CONTAINER_TYPE_ALBUM = 1;
  CONTAINER_TYPE_LIVE = 3;
  CONTAINER_TYPE_MIX = 4;
  CONTAINER_TYPE_PERSONAL = 5;
  CONTAINER_TYPE_PLAYLIST = 6;
  CONTAINER_TYPE_PODCAST = 7;
  CONTAINER_TYPE_RECOMMENDED = 8;
  CONTAINER_TYPE_SHUFFLE_MY_MUSIC = 9;
  CONTAINER_TYPE_SMART_TRACKLIST = 10;
  CONTAINER_TYPE_TOP_TRACKS = 11;
  CONTAINER_TYPE_UNRECOGNIZED = -1;
}

message Mix {
  MixType typ = 1;
}

enum MixType {
  MIX_TYPE_DEFAULT = 0;
  MIX_TYPE_ALBUM = 1;
  MIX_TYPE_ARTIST = 2;
  MIX_TYPE_CHARTS = 3;
  MIX_TYPE_FAMILY = 4;
  MIX_TYPE_GENRE = 5;
  MIX_TYPE_HISTORY = 6;
  MIX_TYPE_PLAYLIST = 7;
  MIX_TYPE_SEARCH = 8;
  MIX_TYPE_SONG = 9;
  MIX_TYPE_USER = 10;
  MIX_TYPE_OFFLINE = 11;
  MIX_TYPE_UNRECOGNIZED = -1;
}

message TopTracks {
  TopTracksType typ = 1;
}

enum TopTracksType {
  TOP_TRACKS_TYPE_DEFAULT = 0;
  TOP_TRACKS_TYPE_ARTIST = 1;
  TOP_TRACKS_TYPE_UNRECOGNIZED = -1;
}

message Track {
  string id = 1;
  uint32 context = 2;
  TrackType typ = 3;
}

enum TrackType {
  TRACK_TYPE_SONG = 0;
  TRACK_TYPE_CHAPTER = 1;
  TRACK_TYPE_EPISODE = 2;
  TRACK_TYPE_LIVE = 3;
}

message Log {
  string context_id = 1;
  string listening_context = 2;
}