1syntax = "proto2"; 2 3import "playlist4meta.proto"; 4import "playlist4content.proto"; 5 6message Add { 7 optional int32 fromIndex = 0x1; 8 repeated Item items = 0x2; 9 optional ListChecksum list_checksum = 0x3; 10 optional bool addLast = 0x4; 11 optional bool addFirst = 0x5; 12} 13 14message Rem { 15 optional int32 fromIndex = 0x1; 16 optional int32 length = 0x2; 17 repeated Item items = 0x3; 18 optional ListChecksum list_checksum = 0x4; 19 optional ListChecksum items_checksum = 0x5; 20 optional ListChecksum uris_checksum = 0x6; 21 optional bool itemsAsKey = 0x7; 22} 23 24message Mov { 25 optional int32 fromIndex = 0x1; 26 optional int32 length = 0x2; 27 optional int32 toIndex = 0x3; 28 optional ListChecksum list_checksum = 0x4; 29 optional ListChecksum items_checksum = 0x5; 30 optional ListChecksum uris_checksum = 0x6; 31} 32 33message ItemAttributesPartialState { 34 optional ItemAttributes values = 0x1; 35 repeated ItemAttributeKind no_value = 0x2; 36 37 enum ItemAttributeKind { 38 ITEM_UNKNOWN = 0x0; 39 ITEM_ADDED_BY = 0x1; 40 ITEM_TIMESTAMP = 0x2; 41 ITEM_MESSAGE = 0x3; 42 ITEM_SEEN = 0x4; 43 ITEM_DOWNLOAD_COUNT = 0x5; 44 ITEM_DOWNLOAD_FORMAT = 0x6; 45 ITEM_SEVENDIGITAL_ID = 0x7; 46 ITEM_SEVENDIGITAL_LEFT = 0x8; 47 ITEM_SEEN_AT = 0x9; 48 ITEM_PUBLIC = 0xa; 49 } 50} 51 52message ListAttributesPartialState { 53 optional ListAttributes values = 0x1; 54 repeated ListAttributeKind no_value = 0x2; 55 56 enum ListAttributeKind { 57 LIST_UNKNOWN = 0x0; 58 LIST_NAME = 0x1; 59 LIST_DESCRIPTION = 0x2; 60 LIST_PICTURE = 0x3; 61 LIST_COLLABORATIVE = 0x4; 62 LIST_PL3_VERSION = 0x5; 63 LIST_DELETED_BY_OWNER = 0x6; 64 LIST_RESTRICTED_COLLABORATIVE = 0x7; 65 } 66} 67 68message UpdateItemAttributes { 69 optional int32 index = 0x1; 70 optional ItemAttributesPartialState new_attributes = 0x2; 71 optional ItemAttributesPartialState old_attributes = 0x3; 72 optional ListChecksum list_checksum = 0x4; 73 optional ListChecksum old_attributes_checksum = 0x5; 74} 75 76message UpdateListAttributes { 77 optional ListAttributesPartialState new_attributes = 0x1; 78 optional ListAttributesPartialState old_attributes = 0x2; 79 optional ListChecksum list_checksum = 0x3; 80 optional ListChecksum old_attributes_checksum = 0x4; 81} 82 83message Op { 84 optional Kind kind = 0x1; 85 enum Kind { 86 KIND_UNKNOWN = 0x0; 87 ADD = 0x2; 88 REM = 0x3; 89 MOV = 0x4; 90 UPDATE_ITEM_ATTRIBUTES = 0x5; 91 UPDATE_LIST_ATTRIBUTES = 0x6; 92 } 93 optional Add add = 0x2; 94 optional Rem rem = 0x3; 95 optional Mov mov = 0x4; 96 optional UpdateItemAttributes update_item_attributes = 0x5; 97 optional UpdateListAttributes update_list_attributes = 0x6; 98} 99 100message OpList { 101 repeated Op ops = 0x1; 102} 103 104