83 lines
1.8 KiB
Protocol Buffer
83 lines
1.8 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
import 'google/protobuf/empty.proto';
|
|
import 'library.proto';
|
|
|
|
package player;
|
|
|
|
service Player {
|
|
rpc PlayTrack(TrackRequest) returns (PlayTrackResponse);
|
|
rpc ResumeTrack(google.protobuf.Empty) returns (PauseState);
|
|
rpc PauseTrack(google.protobuf.Empty) returns (PauseState);
|
|
rpc TogglePause(google.protobuf.Empty) returns (PauseState);
|
|
rpc GetStatus(google.protobuf.Empty) returns (stream PlayerStatus);
|
|
rpc SeekPosition(SeekPositionRequest) returns (SeekPositionResponse);
|
|
rpc SetVolume(SetVolumeRequest) returns (SetVolumeResponse);
|
|
rpc PlayTrackNext(TrackRequest) returns (Queue);
|
|
rpc AddTrackToQueue(TrackRequest) returns (Queue);
|
|
rpc AddTracksToQueue(TracksRequest) returns (Queue);
|
|
rpc PlayPlaylist(PlayPlaylistRequest) returns (PlayerStatus);
|
|
rpc SwapQueueIndices(SwapQueueIndicesRequest) returns (Queue);
|
|
rpc SkipTrack(google.protobuf.Empty) returns (PlayerStatus);
|
|
rpc SkipToQueueIndex(SkipToQueueIndexRequest) returns (PlayerStatus);
|
|
}
|
|
|
|
message TrackRequest {
|
|
string hash = 1;
|
|
}
|
|
|
|
message PlayTrackResponse {
|
|
library.Track track = 1;
|
|
uint64 position = 2;
|
|
}
|
|
|
|
message PlayerStatus {
|
|
optional library.Track currently_playing = 1;
|
|
bool is_paused = 2;
|
|
float volume = 3;
|
|
uint64 progress = 4;
|
|
repeated library.Track queue = 5;
|
|
}
|
|
|
|
message Queue {
|
|
repeated library.Track tracks = 1;
|
|
}
|
|
|
|
message PauseState {
|
|
bool is_paused = 1;
|
|
}
|
|
|
|
message SeekPositionRequest {
|
|
uint64 position = 1;
|
|
}
|
|
|
|
message SeekPositionResponse {
|
|
uint64 position = 1;
|
|
}
|
|
|
|
message SetVolumeRequest {
|
|
float volume = 1;
|
|
}
|
|
|
|
message SetVolumeResponse {
|
|
float volume = 1;
|
|
}
|
|
|
|
message SkipToQueueIndexRequest {
|
|
uint32 index = 1;
|
|
}
|
|
|
|
message SwapQueueIndicesRequest {
|
|
uint32 a = 1;
|
|
uint32 b = 2;
|
|
}
|
|
|
|
message TracksRequest {
|
|
repeated string tracks = 1;
|
|
}
|
|
|
|
message PlayPlaylistRequest {
|
|
uint32 id = 1;
|
|
optional uint32 starting_rank = 2;
|
|
}
|