179 lines
3.4 KiB
Protocol Buffer
179 lines
3.4 KiB
Protocol Buffer
import "common.proto";
|
|
|
|
package Remote;
|
|
|
|
message AudioCollectionRequest
|
|
{
|
|
|
|
message BatchParameter
|
|
{
|
|
required uint32 offset = 1; // First element requested
|
|
required uint32 size = 2; // Number of elements requested. Server may not honor this size if too big
|
|
}
|
|
|
|
message GetRevision
|
|
{
|
|
|
|
}
|
|
|
|
message GetGenreList
|
|
{
|
|
required BatchParameter batch_parameter = 1;
|
|
}
|
|
|
|
message GetArtistList
|
|
{
|
|
required BatchParameter batch_parameter = 1;
|
|
// Search filters
|
|
repeated uint64 genre_id = 2; // Artist that has at least a track of the genre
|
|
}
|
|
|
|
message GetReleaseList
|
|
{
|
|
required BatchParameter batch_parameter = 1;
|
|
// Search filters
|
|
repeated uint64 artist_id = 2; // Release that contains at least a track of one of these artists
|
|
repeated uint64 genre_id = 3; // Release that has at least a track of the genre
|
|
}
|
|
|
|
message GetTrackList
|
|
{
|
|
required BatchParameter batch_parameter = 1;
|
|
// Search filters
|
|
repeated uint64 artist_id = 2; // Track that belongs to these artists
|
|
repeated uint64 release_id = 3; // Track that is part of these releases
|
|
repeated uint64 genre_id = 4; // Track that has at least a track of the genre
|
|
}
|
|
|
|
message GetCoverArt
|
|
{
|
|
enum Type
|
|
{
|
|
TypeGetCoverArtRelease = 1;
|
|
TypeGetCoverArtTrack = 2;
|
|
}
|
|
|
|
required Type type = 1;
|
|
|
|
optional uint64 release_id = 2; // Release that owns the cover art
|
|
optional uint64 track_id = 3; // Track that owns the cover art
|
|
|
|
required uint32 size = 4; // Scale image to size*size pixels. Set 0 to get the biggest image
|
|
}
|
|
|
|
enum Type
|
|
{
|
|
TypeGetRevision = 1;
|
|
TypeGetGenreList = 2;
|
|
TypeGetArtistList = 3;
|
|
TypeGetReleaseList = 4;
|
|
TypeGetTrackList = 5;
|
|
TypeGetCoverArt = 6;
|
|
}
|
|
|
|
required Type type = 1;
|
|
|
|
optional GetRevision get_revision = 2;
|
|
optional GetGenreList get_genres = 3;
|
|
optional GetArtistList get_artists = 4;
|
|
optional GetReleaseList get_releases = 5;
|
|
optional GetTrackList get_tracks = 6;
|
|
optional GetCoverArt get_cover_art = 7;
|
|
}
|
|
|
|
|
|
message AudioCollectionResponse
|
|
{
|
|
|
|
message Revision
|
|
{
|
|
required string rev = 1; // Unique identifier of the database revision
|
|
}
|
|
|
|
message GenreList
|
|
{
|
|
repeated Genre genres = 2;
|
|
}
|
|
|
|
message ArtistList
|
|
{
|
|
repeated Artist artists = 2;
|
|
}
|
|
|
|
message ReleaseList
|
|
{
|
|
repeated Release releases = 2;
|
|
}
|
|
|
|
message TrackList
|
|
{
|
|
repeated Track tracks = 2;
|
|
}
|
|
|
|
message CoverArt
|
|
{
|
|
optional string mime_type = 1;
|
|
required bytes data = 2;
|
|
}
|
|
|
|
message Genre
|
|
{
|
|
required uint64 id = 1; // Genre Id
|
|
|
|
required string name = 2;
|
|
}
|
|
|
|
message Artist
|
|
{
|
|
required uint64 id = 1; // Artist Id
|
|
|
|
required string name = 2;
|
|
}
|
|
|
|
message Release
|
|
{
|
|
required uint64 id = 1; // Release id
|
|
|
|
required string name = 2;
|
|
}
|
|
|
|
message Track
|
|
{
|
|
required uint64 id = 1; // Track id
|
|
|
|
required uint64 artist_id = 2;
|
|
required uint64 release_id = 3;
|
|
repeated uint64 genre_id = 4;
|
|
|
|
optional uint32 disc_number = 5;
|
|
optional uint32 track_number = 6;
|
|
required string name = 7;
|
|
required uint32 duration_secs = 8;
|
|
optional string release_date = 9;
|
|
optional string original_release_date = 10;
|
|
}
|
|
|
|
enum Type {
|
|
TypeRevision = 1;
|
|
TypeGenreList = 2;
|
|
TypeArtistList = 3;
|
|
TypeReleaseList = 4;
|
|
TypeTrackList = 5;
|
|
TypeCoverArt = 6;
|
|
}
|
|
|
|
|
|
required Type type = 1;
|
|
|
|
optional Revision revision = 2;
|
|
optional GenreList genre_list = 3;
|
|
optional ArtistList artist_list = 4;
|
|
optional ReleaseList release_list = 5;
|
|
optional TrackList track_list = 6;
|
|
repeated CoverArt cover_art = 7;
|
|
}
|
|
|
|
|
|
|
|
|