librespot/protocol/proto/playlist4changes.proto
2015-06-23 15:38:29 +01:00

80 lines
1.9 KiB
Protocol Buffer

import "playlist4content.proto";
import "playlist4issues.proto";
import "playlist4meta.proto";
import "playlist4ops.proto";
message ChangeInfo {
optional string user = 1;
optional int32 timestamp = 2;
optional bool admin = 3;
optional bool undo = 4;
optional bool redo = 5;
optional bool merge = 6;
optional bool compressed = 7;
optional bool migration = 8;
}
message Delta {
optional bytes base_version = 1;
repeated Op ops = 2;
optional ChangeInfo info = 4;
}
message Merge {
optional bytes base_version = 1;
optional bytes merge_version = 2;
optional ChangeInfo info = 4;
}
message ChangeSet {
enum Kind {
KIND_UNKNOWN = 0;
DELTA = 2;
MERGE = 3;
};
required Kind kind = 1;
optional Delta delta = 2;
optional Merge merge = 3;
}
message RevisionTaggedChangeSet {
required bytes revision = 1;
required ChangeSet change_set = 2;
}
message Diff {
required bytes from_revision = 1;
repeated Op ops = 2;
required bytes to_revision = 3;
}
message ListDump {
optional bytes latestRevision = 1;
optional int32 length = 2;
optional ListAttributes attributes = 3;
optional ListChecksum checksum = 4;
optional ListItems contents = 5;
repeated Delta pendingDeltas = 7;
}
message ListChanges {
optional bytes baseRevision = 1;
repeated Delta deltas = 2;
optional bool wantResultingRevisions = 3;
optional bool wantSyncResult = 4;
optional ListDump dump = 5;
repeated int32 nonces = 6;
}
message SelectedListContent {
optional bytes revision = 1;
optional int32 length = 2;
optional ListAttributes attributes = 3;
optional ListChecksum checksum = 4;
optional ListItems contents = 5;
optional Diff diff = 6;
optional Diff syncResult = 7;
repeated bytes resultingRevisions = 8;
optional bool multipleHeads = 9;
optional bool upToDate = 10;
repeated ClientResolveAction resolveAction = 12;
repeated ClientIssue issues = 13;
repeated int32 nonces = 14;
}