2024-07-01 17:39:42 +02:00
|
|
|
syntax = "proto2";
|
2018-03-31 16:24:28 +02:00
|
|
|
|
2021-02-20 17:06:55 +01:00
|
|
|
package spb.tagreader;
|
2018-02-27 18:06:05 +01:00
|
|
|
|
|
|
|
message SongMetadata {
|
|
|
|
|
2018-09-08 12:38:02 +02:00
|
|
|
enum FileType {
|
2018-02-27 18:06:05 +01:00
|
|
|
UNKNOWN = 0;
|
2018-05-01 13:34:32 +02:00
|
|
|
WAV = 1;
|
2018-02-27 18:06:05 +01:00
|
|
|
FLAC = 2;
|
2018-05-01 13:34:32 +02:00
|
|
|
WAVPACK = 3;
|
|
|
|
OGGFLAC = 4;
|
|
|
|
OGGVORBIS = 5;
|
|
|
|
OGGOPUS = 6;
|
2018-02-27 18:06:05 +01:00
|
|
|
OGGSPEEX = 7;
|
2018-05-01 13:34:32 +02:00
|
|
|
MPEG = 8;
|
|
|
|
MP4 = 9;
|
|
|
|
ASF = 10;
|
|
|
|
AIFF = 11;
|
|
|
|
MPC = 12;
|
|
|
|
TRUEAUDIO = 13;
|
2018-09-02 01:40:14 +02:00
|
|
|
DSF = 14;
|
|
|
|
DSDIFF = 15;
|
2018-10-23 20:21:01 +02:00
|
|
|
PCM = 16;
|
2019-01-06 00:32:58 +01:00
|
|
|
APE = 17;
|
2021-09-26 16:23:02 +02:00
|
|
|
MOD = 18;
|
|
|
|
S3M = 19;
|
2021-10-12 21:43:46 +02:00
|
|
|
XM = 20;
|
|
|
|
IT = 21;
|
2022-08-01 09:41:12 +02:00
|
|
|
SPC = 22;
|
|
|
|
VGM = 23;
|
2018-05-01 13:34:32 +02:00
|
|
|
CDDA = 90;
|
|
|
|
STREAM = 91;
|
2018-02-27 18:06:05 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
optional bool valid = 1;
|
2018-09-06 20:04:29 +02:00
|
|
|
|
2018-02-27 18:06:05 +01:00
|
|
|
optional string title = 2;
|
|
|
|
optional string album = 3;
|
|
|
|
optional string artist = 4;
|
|
|
|
optional string albumartist = 5;
|
|
|
|
optional int32 track = 6;
|
|
|
|
optional int32 disc = 7;
|
|
|
|
optional int32 year = 8;
|
|
|
|
optional int32 originalyear = 9;
|
|
|
|
optional string genre = 10;
|
|
|
|
optional bool compilation = 11;
|
|
|
|
optional string composer = 12;
|
|
|
|
optional string performer = 13;
|
|
|
|
optional string grouping = 14;
|
|
|
|
optional string comment = 15;
|
2018-09-06 20:04:29 +02:00
|
|
|
optional string lyrics = 16;
|
|
|
|
|
|
|
|
optional uint64 length_nanosec = 17;
|
|
|
|
|
|
|
|
optional int32 bitrate = 18;
|
|
|
|
optional int32 samplerate = 19;
|
|
|
|
optional int32 bitdepth = 20;
|
2018-02-27 18:06:05 +01:00
|
|
|
|
2018-09-06 20:04:29 +02:00
|
|
|
optional string url = 21;
|
|
|
|
optional string basefilename = 22;
|
2018-09-08 12:38:02 +02:00
|
|
|
optional FileType filetype = 23;
|
2021-10-30 02:21:29 +02:00
|
|
|
optional int64 filesize = 24;
|
2020-08-13 21:09:06 +02:00
|
|
|
optional int64 mtime = 25;
|
|
|
|
optional int64 ctime = 26;
|
2018-02-27 18:06:05 +01:00
|
|
|
|
2021-11-09 19:34:20 +01:00
|
|
|
optional uint32 playcount = 27;
|
|
|
|
optional uint32 skipcount = 28;
|
2021-04-25 21:16:44 +02:00
|
|
|
optional int64 lastplayed = 29;
|
|
|
|
optional int64 lastseen = 30;
|
2018-02-27 18:06:05 +01:00
|
|
|
|
2023-05-14 11:34:55 +02:00
|
|
|
optional bool art_embedded = 31;
|
2021-10-16 23:33:03 +02:00
|
|
|
|
2021-10-30 18:53:14 +02:00
|
|
|
optional float rating = 32;
|
2021-10-16 23:33:03 +02:00
|
|
|
|
2023-03-24 22:48:22 +01:00
|
|
|
optional string acoustid_id = 33;
|
|
|
|
optional string acoustid_fingerprint = 34;
|
|
|
|
|
|
|
|
optional string musicbrainz_album_artist_id = 35; // MusicBrainz Release Artist ID (MUSICBRAINZ_ALBUMARTISTID)
|
|
|
|
optional string musicbrainz_artist_id = 36; // MusicBrainz Artist ID (MUSICBRAINZ_ARTISTID)
|
|
|
|
optional string musicbrainz_original_artist_id = 37; // MusicBrainz Original Artist ID (MUSICBRAINZ_ORIGINALARTISTID)
|
|
|
|
optional string musicbrainz_album_id = 38; // MusicBrainz Release ID (MUSICBRAINZ_ALBUMID)
|
|
|
|
optional string musicbrainz_original_album_id = 39; // MusicBrainz Original Release ID (MUSICBRAINZ_ORIGINALALBUMID)
|
|
|
|
optional string musicbrainz_recording_id = 40; // MusicBrainz Recording ID (MUSICBRAINZ_TRACKID)
|
|
|
|
optional string musicbrainz_track_id = 41; // MusicBrainz Track ID (MUSICBRAINZ_RELEASETRACKID)
|
|
|
|
optional string musicbrainz_disc_id = 42; // MusicBrainz Disc ID (MUSICBRAINZ_DISCID)
|
|
|
|
optional string musicbrainz_release_group_id = 43; // MusicBrainz Release Group ID (MUSICBRAINZ_RELEASEGROUPID)
|
|
|
|
optional string musicbrainz_work_id = 44; // MusicBrainz Work ID (MUSICBRAINZ_WORKID)
|
2023-03-19 21:50:54 +01:00
|
|
|
|
|
|
|
optional bool suspicious_tags = 50;
|
2018-02-27 18:06:05 +01:00
|
|
|
|
|
|
|
}
|
|
|
|
|
2023-03-18 20:03:07 +01:00
|
|
|
message IsMediaFileRequest {
|
2018-02-27 18:06:05 +01:00
|
|
|
optional string filename = 1;
|
|
|
|
}
|
|
|
|
|
2023-03-18 20:03:07 +01:00
|
|
|
message IsMediaFileResponse {
|
|
|
|
optional bool success = 1;
|
2018-02-27 18:06:05 +01:00
|
|
|
}
|
|
|
|
|
2023-03-18 20:03:07 +01:00
|
|
|
message ReadFileRequest {
|
2018-02-27 18:06:05 +01:00
|
|
|
optional string filename = 1;
|
|
|
|
}
|
|
|
|
|
2023-03-18 20:03:07 +01:00
|
|
|
message ReadFileResponse {
|
2024-07-01 02:06:39 +02:00
|
|
|
optional bool success = 1;
|
|
|
|
optional SongMetadata metadata = 2;
|
|
|
|
optional string error = 3;
|
2018-02-27 18:06:05 +01:00
|
|
|
}
|
|
|
|
|
2024-07-01 02:06:39 +02:00
|
|
|
message WriteFileRequest {
|
2018-02-27 18:06:05 +01:00
|
|
|
optional string filename = 1;
|
2023-03-18 20:03:07 +01:00
|
|
|
optional bool save_tags = 2;
|
|
|
|
optional bool save_playcount = 3;
|
|
|
|
optional bool save_rating = 4;
|
|
|
|
optional bool save_cover = 5;
|
|
|
|
optional SongMetadata metadata = 6;
|
|
|
|
optional string cover_filename = 7;
|
|
|
|
optional bytes cover_data = 8;
|
2023-05-14 11:34:55 +02:00
|
|
|
optional string cover_mime_type = 9;
|
2018-02-27 18:06:05 +01:00
|
|
|
}
|
|
|
|
|
2024-07-01 02:06:39 +02:00
|
|
|
message WriteFileResponse {
|
2018-02-27 18:06:05 +01:00
|
|
|
optional bool success = 1;
|
2023-05-14 11:34:55 +02:00
|
|
|
optional string error = 2;
|
2018-02-27 18:06:05 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
message LoadEmbeddedArtRequest {
|
|
|
|
optional string filename = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message LoadEmbeddedArtResponse {
|
2024-07-01 02:06:39 +02:00
|
|
|
optional bool success = 1;
|
|
|
|
optional bytes data = 2;
|
|
|
|
optional string error = 3;
|
2018-02-27 18:06:05 +01:00
|
|
|
}
|
|
|
|
|
2021-02-16 22:50:35 +01:00
|
|
|
message SaveEmbeddedArtRequest {
|
|
|
|
optional string filename = 1;
|
2023-03-18 20:03:07 +01:00
|
|
|
optional string cover_filename = 2;
|
|
|
|
optional bytes cover_data = 3;
|
2023-05-14 11:34:55 +02:00
|
|
|
optional string cover_mime_type = 4;
|
2021-02-16 22:50:35 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
message SaveEmbeddedArtResponse {
|
|
|
|
optional bool success = 1;
|
2023-05-14 11:34:55 +02:00
|
|
|
optional string error = 2;
|
2021-02-16 22:50:35 +01:00
|
|
|
}
|
|
|
|
|
2021-10-24 16:08:17 +02:00
|
|
|
message SaveSongPlaycountToFileRequest {
|
|
|
|
optional string filename = 1;
|
2024-07-01 02:06:39 +02:00
|
|
|
optional uint32 playcount = 2;
|
2021-10-24 16:08:17 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
message SaveSongPlaycountToFileResponse {
|
|
|
|
optional bool success = 1;
|
2023-05-14 11:34:55 +02:00
|
|
|
optional string error = 2;
|
2021-10-24 16:08:17 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
message SaveSongRatingToFileRequest {
|
|
|
|
optional string filename = 1;
|
2024-07-01 02:06:39 +02:00
|
|
|
optional float rating = 2;
|
2021-10-24 16:08:17 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
message SaveSongRatingToFileResponse {
|
|
|
|
optional bool success = 1;
|
2023-05-14 11:34:55 +02:00
|
|
|
optional string error = 2;
|
2021-10-24 16:08:17 +02:00
|
|
|
}
|
|
|
|
|
2018-02-27 18:06:05 +01:00
|
|
|
message Message {
|
2021-02-20 16:16:17 +01:00
|
|
|
optional int32 id = 1;
|
2018-02-27 18:06:05 +01:00
|
|
|
|
|
|
|
optional ReadFileRequest read_file_request = 2;
|
|
|
|
optional ReadFileResponse read_file_response = 3;
|
|
|
|
|
2024-07-01 02:06:39 +02:00
|
|
|
optional WriteFileRequest write_file_request = 4;
|
|
|
|
optional WriteFileResponse write_file_response = 5;
|
2018-02-27 18:06:05 +01:00
|
|
|
|
|
|
|
optional IsMediaFileRequest is_media_file_request = 6;
|
|
|
|
optional IsMediaFileResponse is_media_file_response = 7;
|
|
|
|
|
|
|
|
optional LoadEmbeddedArtRequest load_embedded_art_request = 8;
|
|
|
|
optional LoadEmbeddedArtResponse load_embedded_art_response = 9;
|
|
|
|
|
2021-02-16 22:50:35 +01:00
|
|
|
optional SaveEmbeddedArtRequest save_embedded_art_request = 10;
|
|
|
|
optional SaveEmbeddedArtResponse save_embedded_art_response = 11;
|
|
|
|
|
2021-10-24 16:08:17 +02:00
|
|
|
optional SaveSongPlaycountToFileRequest save_song_playcount_to_file_request = 12;
|
|
|
|
optional SaveSongPlaycountToFileResponse save_song_playcount_to_file_response = 13;
|
|
|
|
|
|
|
|
optional SaveSongRatingToFileRequest save_song_rating_to_file_request = 14;
|
|
|
|
optional SaveSongRatingToFileResponse save_song_rating_to_file_response = 15;
|
|
|
|
|
2018-02-27 18:06:05 +01:00
|
|
|
}
|