syntax = "proto3"; package music.v1alpha1; import "metadata/v1alpha1/track.proto"; message AddTrackRequest { metadata.v1alpha1.Track track = 1; } message AddTrackResponse {} message AddTracksRequest { repeated metadata.v1alpha1.Track tracks = 1; } message AddTracksResponse {} message LoadTracksRequest { repeated metadata.v1alpha1.Track tracks = 1; int32 start_index = 2; } message LoadTracksResponse {} message ClearTracklistRequest {} message ClearTracklistResponse {} message FilterTracklistRequest {} message FilterTracklistResponse {} message GetRandomResponse {} message GetRepeatResponse {} message GetSingleResponse {} message GetNextTrackResponse { metadata.v1alpha1.Track track = 1; } message GetPreviousTrackResponse { metadata.v1alpha1.Track track = 1; } message RemoveTrackAtRequest { uint32 position = 1; } message RemoveTrackAtResponse {} message SetRepeatRequest {} message SetRepeatResponse {} message ShuffleResponse {} message GetTracklistTracksResponse { repeated metadata.v1alpha1.Track next_tracks = 1; repeated metadata.v1alpha1.Track previous_tracks = 2; } message GetRandomRequest {} message GetRepeatRequest {} message GetSingleRequest {} message GetNextTrackRequest {} message GetPreviousTrackRequest {} message ShuffleRequest {} message GetTracklistTracksRequest {} message PlayNextRequest { metadata.v1alpha1.Track track = 1; } message PlayNextResponse {} message PlayTrackAtRequest { uint32 index = 1; } message PlayTrackAtResponse {} service TracklistService { rpc AddTrack(AddTrackRequest) returns (AddTrackResponse) {} rpc AddTracks(AddTracksRequest) returns (AddTracksResponse) {} rpc LoadTracks(LoadTracksRequest) returns (LoadTracksResponse) {} rpc ClearTracklist(ClearTracklistRequest) returns (ClearTracklistResponse) {} rpc FilterTracklist(FilterTracklistRequest) returns (FilterTracklistResponse) {} rpc GetRandom(GetRandomRequest) returns (GetRandomResponse) {} rpc GetRepeat(GetRepeatRequest) returns (GetRepeatResponse) {} rpc GetSingle(GetSingleRequest) returns (GetSingleResponse) {} rpc GetNextTrack(GetNextTrackRequest) returns (GetNextTrackResponse) {} rpc GetPreviousTrack(GetPreviousTrackRequest) returns (GetPreviousTrackResponse) {} rpc RemoveTrackAt(RemoveTrackAtRequest) returns (RemoveTrackAtResponse) {} rpc Shuffle(ShuffleRequest) returns (ShuffleResponse) {} rpc SetRepeat(SetRepeatRequest) returns (SetRepeatResponse) {} rpc GetTracklistTracks(GetTracklistTracksRequest) returns (GetTracklistTracksResponse) {} rpc PlayNext(PlayNextRequest) returns (PlayNextResponse) {} rpc PlayTrackAt(PlayTrackAtRequest) returns (PlayTrackAtResponse) {} }