From 365694d863fb95184ecbb15b9f88b3231369f6c6 Mon Sep 17 00:00:00 2001 From: ejurgensen Date: Sun, 28 Sep 2025 16:47:58 +0200 Subject: [PATCH] [spotify] librespot-c update (protobuf automake + metadata proto update) New metadata probably necessary to support lossless --- src/inputs/librespot-c/Makefile.am | 77 +- src/inputs/librespot-c/configure.ac | 4 +- src/inputs/librespot-c/src/connection.c | 38 +- .../librespot-c/src/librespot-c-internal.h | 2 +- .../src/proto/authentication.pb-c.c | 2 +- .../src/proto/authentication.pb-c.h | 74 +- .../librespot-c/src/proto/keyexchange.pb-c.c | 2 +- .../librespot-c/src/proto/keyexchange.pb-c.h | 118 +- .../librespot-c/src/proto/mercury.pb-c.c | 2 +- .../librespot-c/src/proto/mercury.pb-c.h | 34 +- .../librespot-c/src/proto/metadata.pb-c.c | 4244 +++++++++-------- .../librespot-c/src/proto/metadata.pb-c.h | 1601 ++++--- .../librespot-c/src/proto/metadata.proto | 530 +- 13 files changed, 3629 insertions(+), 3099 deletions(-) diff --git a/src/inputs/librespot-c/Makefile.am b/src/inputs/librespot-c/Makefile.am index 3362b294..deca5bdb 100644 --- a/src/inputs/librespot-c/Makefile.am +++ b/src/inputs/librespot-c/Makefile.am @@ -3,44 +3,63 @@ SUBDIRS = tests noinst_LIBRARIES = librespot-c.a SHANNON_SRC = \ - src/shannon/ShannonFast.c src/shannon/Shannon.h src/shannon/ShannonInternal.h + src/shannon/ShannonFast.c \ + src/shannon/Shannon.h \ + src/shannon/ShannonInternal.h + +PROTO_FILES = \ + src/proto/keyexchange.proto \ + src/proto/authentication.proto \ + src/proto/mercury.proto \ + src/proto/metadata.proto \ + src/proto/connectivity.proto \ + src/proto/clienttoken.proto \ + src/proto/login5_user_info.proto \ + src/proto/login5.proto \ + src/proto/login5_identifiers.proto \ + src/proto/login5_credentials.proto \ + src/proto/login5_client_info.proto \ + src/proto/login5_challenges_hashcash.proto \ + src/proto/login5_challenges_code.proto \ + src/proto/google_duration.proto \ + src/proto/storage_resolve.proto \ + src/proto/extended_metadata.proto \ + src/proto/extension_kind.proto \ + src/proto/entity_extension_data.proto \ + src/proto/google_any.proto PROTO_SRC = \ - src/proto/keyexchange.pb-c.c src/proto/keyexchange.pb-c.h \ - src/proto/authentication.pb-c.c src/proto/authentication.pb-c.h \ - src/proto/mercury.pb-c.c src/proto/mercury.pb-c.h \ - src/proto/metadata.pb-c.c src/proto/metadata.pb-c.h - -HTTP_PROTO_SRC = \ - src/proto/connectivity.pb-c.c src/proto/connectivity.pb-c.h \ - src/proto/clienttoken.pb-c.c src/proto/clienttoken.pb-c.h \ - src/proto/login5_user_info.pb-c.h src/proto/login5_user_info.pb-c.c \ - src/proto/login5.pb-c.h src/proto/login5.pb-c.c \ - src/proto/login5_identifiers.pb-c.h src/proto/login5_identifiers.pb-c.c \ - src/proto/login5_credentials.pb-c.h src/proto/login5_credentials.pb-c.c \ - src/proto/login5_client_info.pb-c.h src/proto/login5_client_info.pb-c.c \ - src/proto/login5_challenges_hashcash.pb-c.h src/proto/login5_challenges_hashcash.pb-c.c \ - src/proto/login5_challenges_code.pb-c.h src/proto/login5_challenges_code.pb-c.c \ - src/proto/google_duration.pb-c.h src/proto/google_duration.pb-c.c \ - src/proto/storage_resolve.pb-c.h src/proto/storage_resolve.pb-c.c \ - src/proto/extended_metadata.pb-c.h src/proto/extended_metadata.pb-c.c \ - src/proto/extension_kind.pb-c.h src/proto/extension_kind.pb-c.c \ - src/proto/entity_extension_data.pb-c.h src/proto/entity_extension_data.pb-c.c \ - src/proto/google_any.pb-c.h src/proto/google_any.pb-c.c - + $(PROTO_FILES:.proto=.pb-c.c) $(PROTO_FILES:.proto=.pb-c.h) CORE_SRC = \ - src/librespot-c.c src/connection.c src/channel.c src/crypto.c src/commands.c \ + src/librespot-c.c \ + src/connection.c \ + src/channel.c \ + src/crypto.c \ + src/commands.c \ src/http.c +BUILT_SOURCES = \ + $(PROTO_SRC) + librespot_c_a_SOURCES = \ $(CORE_SRC) \ $(SHANNON_SRC) \ - $(PROTO_SRC) \ - $(HTTP_PROTO_SRC) + $(PROTO_SRC) noinst_HEADERS = \ - librespot-c.h src/librespot-c-internal.h src/connection.h \ - src/channel.h src/crypto.h src/commands.h src/http.h + librespot-c.h \ + src/librespot-c-internal.h \ + src/connection.h \ + src/channel.h \ + src/crypto.h \ + src/commands.h \ + src/http.h -EXTRA_DIST = README.md LICENSE +EXTRA_DIST = \ + README.md \ + LICENSE \ + $(PROTO_FILES) + +%.pb-c.c %.pb-c.h: %.proto + $(AM_V_GEN)$(PROTOC) --proto_path=src/proto --c_out=src/proto $< diff --git a/src/inputs/librespot-c/configure.ac b/src/inputs/librespot-c/configure.ac index 800be145..edad984c 100644 --- a/src/inputs/librespot-c/configure.ac +++ b/src/inputs/librespot-c/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([librespot-c], [0.6]) +AC_INIT([librespot-c], [0.7]) AC_CONFIG_AUX_DIR([.]) AM_INIT_AUTOMAKE([foreign subdir-objects]) AM_SILENT_RULES([yes]) @@ -10,6 +10,8 @@ AC_PROG_CC AM_PROG_AR AC_PROG_RANLIB +AC_PATH_PROG([PROTOC], [protoc-c]) + AM_CPPFLAGS="-Wall" AC_SUBST([AM_CPPFLAGS]) diff --git a/src/inputs/librespot-c/src/connection.c b/src/inputs/librespot-c/src/connection.c index c22121f8..84c5e030 100644 --- a/src/inputs/librespot-c/src/connection.c +++ b/src/inputs/librespot-c/src/connection.c @@ -169,11 +169,11 @@ system_info_from_uname(SystemInfo *system_info) // Returns true if format of a is preferred over b (and is valid). According to // librespot comment most podcasts are 96 kbit. static bool -format_is_preferred(AudioFile *a, AudioFile *b, enum sp_bitrates bitrate_preferred) +format_is_preferred(Spotify__Metadata__AudioFile *a, Spotify__Metadata__AudioFile *b, enum sp_bitrates bitrate_preferred) { - if (a->format != AUDIO_FILE__FORMAT__OGG_VORBIS_96 && - a->format != AUDIO_FILE__FORMAT__OGG_VORBIS_160 && - a->format != AUDIO_FILE__FORMAT__OGG_VORBIS_320) + if (a->format != SPOTIFY__METADATA__AUDIO_FILE__FORMAT__OGG_VORBIS_96 && + a->format != SPOTIFY__METADATA__AUDIO_FILE__FORMAT__OGG_VORBIS_160 && + a->format != SPOTIFY__METADATA__AUDIO_FILE__FORMAT__OGG_VORBIS_320) return false; if (!b) @@ -184,9 +184,9 @@ format_is_preferred(AudioFile *a, AudioFile *b, enum sp_bitrates bitrate_preferr case SP_BITRATE_96: return (a->format < b->format); // Prefer lowest case SP_BITRATE_160: - if (b->format == AUDIO_FILE__FORMAT__OGG_VORBIS_160) + if (b->format == SPOTIFY__METADATA__AUDIO_FILE__FORMAT__OGG_VORBIS_160) return false; - else if (a->format == AUDIO_FILE__FORMAT__OGG_VORBIS_160) + else if (a->format == SPOTIFY__METADATA__AUDIO_FILE__FORMAT__OGG_VORBIS_160) return true; else return (a->format < b->format); // Prefer lowest @@ -200,10 +200,10 @@ format_is_preferred(AudioFile *a, AudioFile *b, enum sp_bitrates bitrate_preferr } int -file_select(uint8_t *out, size_t out_len, Track *track, enum sp_bitrates bitrate_preferred) +file_select(uint8_t *out, size_t out_len, Spotify__Metadata__Track *track, enum sp_bitrates bitrate_preferred) { - AudioFile *selected = NULL; - AudioFile *file; + Spotify__Metadata__AudioFile *selected = NULL; + Spotify__Metadata__AudioFile *file; int i; for (i = 0; i < track->n_file; i++) @@ -461,7 +461,7 @@ mercury_free(struct sp_mercury *mercury, int content_only) free(mercury->parts[i].data); if (mercury->parts[i].track) - track__free_unpacked(mercury->parts[i].track, NULL); + spotify__metadata__track__free_unpacked(mercury->parts[i].track, NULL); } if (content_only) @@ -546,7 +546,7 @@ mercury_parse(struct sp_mercury *mercury, uint8_t *payload, size_t payload_len) memcpy(mercury->parts[i].data, ptr, mercury->parts[i].len); ptr += mercury->parts[i].len; // 5: length += mercury->parts[i].len - mercury->parts[i].track = track__unpack(NULL, mercury->parts[i].len, mercury->parts[i].data); + mercury->parts[i].track = spotify__metadata__track__unpack(NULL, mercury->parts[i].len, mercury->parts[i].data); } header__free_unpacked(header, NULL); @@ -1056,14 +1056,14 @@ handle_metadata_get(struct sp_message *msg, struct sp_session *session) { struct http_response *hres = &msg->payload.hres; struct sp_channel *channel = session->now_streaming_channel; - Track *response = NULL; + Spotify__Metadata__Track *response = NULL; int ret; if (hres->code != HTTP_OK) goto fallback; // Also works for Episode response - response = track__unpack(NULL, hres->body_len, hres->body); + response = spotify__metadata__track__unpack(NULL, hres->body_len, hres->body); if (!response) goto fallback; @@ -1071,13 +1071,13 @@ handle_metadata_get(struct sp_message *msg, struct sp_session *session) if (ret < 0) goto fallback; - track__free_unpacked(response, NULL); + spotify__metadata__track__free_unpacked(response, NULL); return SP_OK_DONE; fallback: sp_cb.logmsg("Couldn't find file id in metadata response, will request extended metadata\n"); - track__free_unpacked(response, NULL); + spotify__metadata__track__free_unpacked(response, NULL); return SP_OK_DONE; } @@ -1093,7 +1093,7 @@ handle_extended_metadata_get(struct sp_message *msg, struct sp_session *session) struct sp_channel *channel = session->now_streaming_channel; Spotify__Extendedmetadata__BatchedExtensionResponse *response = NULL; Spotify__Extendedmetadata__EntityExtensionData *entity_extension_data = NULL; - Track *track = NULL; + Spotify__Metadata__Track *track = NULL; int i, j; int ret; @@ -1128,7 +1128,7 @@ handle_extended_metadata_get(struct sp_message *msg, struct sp_session *session) // .Episode. If we get something else we will fail later anyway. // This also works for episodes - track = track__unpack(NULL, entity_extension_data->extension_data->value.len, entity_extension_data->extension_data->value.data); + track = spotify__metadata__track__unpack(NULL, entity_extension_data->extension_data->value.len, entity_extension_data->extension_data->value.data); if (!track) RETURN_ERROR(SP_ERR_INVALID, "Could not parse track data in extended metadata response"); @@ -1137,12 +1137,12 @@ handle_extended_metadata_get(struct sp_message *msg, struct sp_session *session) RETURN_ERROR(SP_ERR_INVALID, "Could not find track data in extended metadata response"); spotify__extendedmetadata__batched_extension_response__free_unpacked(response, NULL); - track__free_unpacked(track, NULL); + spotify__metadata__track__free_unpacked(track, NULL); return SP_OK_DONE; error: spotify__extendedmetadata__batched_extension_response__free_unpacked(response, NULL); - track__free_unpacked(track, NULL); + spotify__metadata__track__free_unpacked(track, NULL); return ret; } diff --git a/src/inputs/librespot-c/src/librespot-c-internal.h b/src/inputs/librespot-c/src/librespot-c-internal.h index b2c3e37e..3f893242 100644 --- a/src/inputs/librespot-c/src/librespot-c-internal.h +++ b/src/inputs/librespot-c/src/librespot-c-internal.h @@ -296,7 +296,7 @@ struct sp_mercury uint8_t *data; size_t len; - Track *track; + Spotify__Metadata__Track *track; } parts[SP_MERCURY_MAX_PARTS]; }; diff --git a/src/inputs/librespot-c/src/proto/authentication.pb-c.c b/src/inputs/librespot-c/src/proto/authentication.pb-c.c index 080a1d0d..72264fa3 100644 --- a/src/inputs/librespot-c/src/proto/authentication.pb-c.c +++ b/src/inputs/librespot-c/src/proto/authentication.pb-c.c @@ -1,5 +1,5 @@ /* Generated by the protocol buffer compiler. DO NOT EDIT! */ -/* Generated from: proto/authentication.proto */ +/* Generated from: authentication.proto */ /* Do not generate deprecated warnings for self */ #ifndef PROTOBUF_C__NO_DEPRECATED diff --git a/src/inputs/librespot-c/src/proto/authentication.pb-c.h b/src/inputs/librespot-c/src/proto/authentication.pb-c.h index 463ad5cb..1790290c 100644 --- a/src/inputs/librespot-c/src/proto/authentication.pb-c.h +++ b/src/inputs/librespot-c/src/proto/authentication.pb-c.h @@ -1,8 +1,8 @@ /* Generated by the protocol buffer compiler. DO NOT EDIT! */ -/* Generated from: proto/authentication.proto */ +/* Generated from: authentication.proto */ -#ifndef PROTOBUF_C_proto_2fauthentication_2eproto__INCLUDED -#define PROTOBUF_C_proto_2fauthentication_2eproto__INCLUDED +#ifndef PROTOBUF_C_authentication_2eproto__INCLUDED +#define PROTOBUF_C_authentication_2eproto__INCLUDED #include @@ -10,27 +10,27 @@ PROTOBUF_C__BEGIN_DECLS #if PROTOBUF_C_VERSION_NUMBER < 1000000 # error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. -#elif 1003003 < PROTOBUF_C_MIN_COMPILER_VERSION +#elif 1004001 < PROTOBUF_C_MIN_COMPILER_VERSION # error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. #endif -typedef struct _ClientResponseEncrypted ClientResponseEncrypted; -typedef struct _LoginCredentials LoginCredentials; -typedef struct _FingerprintResponseUnion FingerprintResponseUnion; -typedef struct _FingerprintGrainResponse FingerprintGrainResponse; -typedef struct _FingerprintHmacRipemdResponse FingerprintHmacRipemdResponse; -typedef struct _PeerTicketUnion PeerTicketUnion; -typedef struct _PeerTicketPublicKey PeerTicketPublicKey; -typedef struct _PeerTicketOld PeerTicketOld; -typedef struct _SystemInfo SystemInfo; -typedef struct _LibspotifyAppKey LibspotifyAppKey; -typedef struct _ClientInfo ClientInfo; -typedef struct _ClientInfoFacebook ClientInfoFacebook; -typedef struct _APWelcome APWelcome; -typedef struct _AccountInfo AccountInfo; -typedef struct _AccountInfoSpotify AccountInfoSpotify; -typedef struct _AccountInfoFacebook AccountInfoFacebook; +typedef struct ClientResponseEncrypted ClientResponseEncrypted; +typedef struct LoginCredentials LoginCredentials; +typedef struct FingerprintResponseUnion FingerprintResponseUnion; +typedef struct FingerprintGrainResponse FingerprintGrainResponse; +typedef struct FingerprintHmacRipemdResponse FingerprintHmacRipemdResponse; +typedef struct PeerTicketUnion PeerTicketUnion; +typedef struct PeerTicketPublicKey PeerTicketPublicKey; +typedef struct PeerTicketOld PeerTicketOld; +typedef struct SystemInfo SystemInfo; +typedef struct LibspotifyAppKey LibspotifyAppKey; +typedef struct ClientInfo ClientInfo; +typedef struct ClientInfoFacebook ClientInfoFacebook; +typedef struct APWelcome APWelcome; +typedef struct AccountInfo AccountInfo; +typedef struct AccountInfoSpotify AccountInfoSpotify; +typedef struct AccountInfoFacebook AccountInfoFacebook; /* --- enums --- */ @@ -102,7 +102,7 @@ typedef enum _AccountType { /* --- messages --- */ -struct _ClientResponseEncrypted +struct ClientResponseEncrypted { ProtobufCMessage base; LoginCredentials *login_credentials; @@ -121,7 +121,7 @@ struct _ClientResponseEncrypted , NULL, 0, ACCOUNT_CREATION__ACCOUNT_CREATION_ALWAYS_PROMPT, NULL, NULL, NULL, NULL, NULL, NULL, NULL } -struct _LoginCredentials +struct LoginCredentials { ProtobufCMessage base; char *username; @@ -134,7 +134,7 @@ struct _LoginCredentials , NULL, AUTHENTICATION_TYPE__AUTHENTICATION_USER_PASS, 0, {0,NULL} } -struct _FingerprintResponseUnion +struct FingerprintResponseUnion { ProtobufCMessage base; FingerprintGrainResponse *grain; @@ -145,7 +145,7 @@ struct _FingerprintResponseUnion , NULL, NULL } -struct _FingerprintGrainResponse +struct FingerprintGrainResponse { ProtobufCMessage base; ProtobufCBinaryData encrypted_key; @@ -155,7 +155,7 @@ struct _FingerprintGrainResponse , {0,NULL} } -struct _FingerprintHmacRipemdResponse +struct FingerprintHmacRipemdResponse { ProtobufCMessage base; ProtobufCBinaryData hmac; @@ -165,7 +165,7 @@ struct _FingerprintHmacRipemdResponse , {0,NULL} } -struct _PeerTicketUnion +struct PeerTicketUnion { ProtobufCMessage base; PeerTicketPublicKey *public_key; @@ -176,7 +176,7 @@ struct _PeerTicketUnion , NULL, NULL } -struct _PeerTicketPublicKey +struct PeerTicketPublicKey { ProtobufCMessage base; ProtobufCBinaryData public_key; @@ -186,7 +186,7 @@ struct _PeerTicketPublicKey , {0,NULL} } -struct _PeerTicketOld +struct PeerTicketOld { ProtobufCMessage base; ProtobufCBinaryData peer_ticket; @@ -197,7 +197,7 @@ struct _PeerTicketOld , {0,NULL}, {0,NULL} } -struct _SystemInfo +struct SystemInfo { ProtobufCMessage base; CpuFamily cpu_family; @@ -222,7 +222,7 @@ struct _SystemInfo , CPU_FAMILY__CPU_UNKNOWN, 0, 0, 0, 0, 0, BRAND__BRAND_UNBRANDED, 0, 0, OS__OS_UNKNOWN, 0, 0, 0, 0, NULL, NULL } -struct _LibspotifyAppKey +struct LibspotifyAppKey { ProtobufCMessage base; uint32_t version; @@ -236,7 +236,7 @@ struct _LibspotifyAppKey , 0, {0,NULL}, {0,NULL}, NULL, {0,NULL} } -struct _ClientInfo +struct ClientInfo { ProtobufCMessage base; protobuf_c_boolean has_limited; @@ -249,7 +249,7 @@ struct _ClientInfo , 0, 0, NULL, NULL } -struct _ClientInfoFacebook +struct ClientInfoFacebook { ProtobufCMessage base; char *machine_id; @@ -259,7 +259,7 @@ struct _ClientInfoFacebook , NULL } -struct _APWelcome +struct APWelcome { ProtobufCMessage base; char *canonical_username; @@ -277,7 +277,7 @@ struct _APWelcome , NULL, ACCOUNT_TYPE__Spotify, ACCOUNT_TYPE__Spotify, AUTHENTICATION_TYPE__AUTHENTICATION_USER_PASS, {0,NULL}, 0, {0,NULL}, NULL, NULL } -struct _AccountInfo +struct AccountInfo { ProtobufCMessage base; AccountInfoSpotify *spotify; @@ -288,7 +288,7 @@ struct _AccountInfo , NULL, NULL } -struct _AccountInfoSpotify +struct AccountInfoSpotify { ProtobufCMessage base; }; @@ -297,7 +297,7 @@ struct _AccountInfoSpotify } -struct _AccountInfoFacebook +struct AccountInfoFacebook { ProtobufCMessage base; char *access_token; @@ -694,4 +694,4 @@ extern const ProtobufCMessageDescriptor account_info_facebook__descriptor; PROTOBUF_C__END_DECLS -#endif /* PROTOBUF_C_proto_2fauthentication_2eproto__INCLUDED */ +#endif /* PROTOBUF_C_authentication_2eproto__INCLUDED */ diff --git a/src/inputs/librespot-c/src/proto/keyexchange.pb-c.c b/src/inputs/librespot-c/src/proto/keyexchange.pb-c.c index ebb365d8..34d13cfd 100644 --- a/src/inputs/librespot-c/src/proto/keyexchange.pb-c.c +++ b/src/inputs/librespot-c/src/proto/keyexchange.pb-c.c @@ -1,5 +1,5 @@ /* Generated by the protocol buffer compiler. DO NOT EDIT! */ -/* Generated from: proto/keyexchange.proto */ +/* Generated from: keyexchange.proto */ /* Do not generate deprecated warnings for self */ #ifndef PROTOBUF_C__NO_DEPRECATED diff --git a/src/inputs/librespot-c/src/proto/keyexchange.pb-c.h b/src/inputs/librespot-c/src/proto/keyexchange.pb-c.h index 45a22ed6..944e1853 100644 --- a/src/inputs/librespot-c/src/proto/keyexchange.pb-c.h +++ b/src/inputs/librespot-c/src/proto/keyexchange.pb-c.h @@ -1,8 +1,8 @@ /* Generated by the protocol buffer compiler. DO NOT EDIT! */ -/* Generated from: proto/keyexchange.proto */ +/* Generated from: keyexchange.proto */ -#ifndef PROTOBUF_C_proto_2fkeyexchange_2eproto__INCLUDED -#define PROTOBUF_C_proto_2fkeyexchange_2eproto__INCLUDED +#ifndef PROTOBUF_C_keyexchange_2eproto__INCLUDED +#define PROTOBUF_C_keyexchange_2eproto__INCLUDED #include @@ -10,38 +10,38 @@ PROTOBUF_C__BEGIN_DECLS #if PROTOBUF_C_VERSION_NUMBER < 1000000 # error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. -#elif 1003003 < PROTOBUF_C_MIN_COMPILER_VERSION +#elif 1004001 < PROTOBUF_C_MIN_COMPILER_VERSION # error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. #endif -typedef struct _ClientHello ClientHello; -typedef struct _BuildInfo BuildInfo; -typedef struct _LoginCryptoHelloUnion LoginCryptoHelloUnion; -typedef struct _LoginCryptoDiffieHellmanHello LoginCryptoDiffieHellmanHello; -typedef struct _FeatureSet FeatureSet; -typedef struct _APResponseMessage APResponseMessage; -typedef struct _APChallenge APChallenge; -typedef struct _LoginCryptoChallengeUnion LoginCryptoChallengeUnion; -typedef struct _LoginCryptoDiffieHellmanChallenge LoginCryptoDiffieHellmanChallenge; -typedef struct _FingerprintChallengeUnion FingerprintChallengeUnion; -typedef struct _FingerprintGrainChallenge FingerprintGrainChallenge; -typedef struct _FingerprintHmacRipemdChallenge FingerprintHmacRipemdChallenge; -typedef struct _PoWChallengeUnion PoWChallengeUnion; -typedef struct _PoWHashCashChallenge PoWHashCashChallenge; -typedef struct _CryptoChallengeUnion CryptoChallengeUnion; -typedef struct _CryptoShannonChallenge CryptoShannonChallenge; -typedef struct _CryptoRc4Sha1HmacChallenge CryptoRc4Sha1HmacChallenge; -typedef struct _UpgradeRequiredMessage UpgradeRequiredMessage; -typedef struct _APLoginFailed APLoginFailed; -typedef struct _ClientResponsePlaintext ClientResponsePlaintext; -typedef struct _LoginCryptoResponseUnion LoginCryptoResponseUnion; -typedef struct _LoginCryptoDiffieHellmanResponse LoginCryptoDiffieHellmanResponse; -typedef struct _PoWResponseUnion PoWResponseUnion; -typedef struct _PoWHashCashResponse PoWHashCashResponse; -typedef struct _CryptoResponseUnion CryptoResponseUnion; -typedef struct _CryptoShannonResponse CryptoShannonResponse; -typedef struct _CryptoRc4Sha1HmacResponse CryptoRc4Sha1HmacResponse; +typedef struct ClientHello ClientHello; +typedef struct BuildInfo BuildInfo; +typedef struct LoginCryptoHelloUnion LoginCryptoHelloUnion; +typedef struct LoginCryptoDiffieHellmanHello LoginCryptoDiffieHellmanHello; +typedef struct FeatureSet FeatureSet; +typedef struct APResponseMessage APResponseMessage; +typedef struct APChallenge APChallenge; +typedef struct LoginCryptoChallengeUnion LoginCryptoChallengeUnion; +typedef struct LoginCryptoDiffieHellmanChallenge LoginCryptoDiffieHellmanChallenge; +typedef struct FingerprintChallengeUnion FingerprintChallengeUnion; +typedef struct FingerprintGrainChallenge FingerprintGrainChallenge; +typedef struct FingerprintHmacRipemdChallenge FingerprintHmacRipemdChallenge; +typedef struct PoWChallengeUnion PoWChallengeUnion; +typedef struct PoWHashCashChallenge PoWHashCashChallenge; +typedef struct CryptoChallengeUnion CryptoChallengeUnion; +typedef struct CryptoShannonChallenge CryptoShannonChallenge; +typedef struct CryptoRc4Sha1HmacChallenge CryptoRc4Sha1HmacChallenge; +typedef struct UpgradeRequiredMessage UpgradeRequiredMessage; +typedef struct APLoginFailed APLoginFailed; +typedef struct ClientResponsePlaintext ClientResponsePlaintext; +typedef struct LoginCryptoResponseUnion LoginCryptoResponseUnion; +typedef struct LoginCryptoDiffieHellmanResponse LoginCryptoDiffieHellmanResponse; +typedef struct PoWResponseUnion PoWResponseUnion; +typedef struct PoWHashCashResponse PoWHashCashResponse; +typedef struct CryptoResponseUnion CryptoResponseUnion; +typedef struct CryptoShannonResponse CryptoShannonResponse; +typedef struct CryptoRc4Sha1HmacResponse CryptoRc4Sha1HmacResponse; /* --- enums --- */ @@ -117,7 +117,7 @@ typedef enum _ErrorCode { /* --- messages --- */ -struct _ClientHello +struct ClientHello { ProtobufCMessage base; BuildInfo *build_info; @@ -138,7 +138,7 @@ struct _ClientHello , NULL, 0,NULL, 0,NULL, 0,NULL, NULL, {0,NULL}, 0, {0,NULL}, NULL } -struct _BuildInfo +struct BuildInfo { ProtobufCMessage base; Product product; @@ -152,7 +152,7 @@ struct _BuildInfo , PRODUCT__PRODUCT_CLIENT, 0,NULL, PLATFORM__PLATFORM_WIN32_X86, 0 } -struct _LoginCryptoHelloUnion +struct LoginCryptoHelloUnion { ProtobufCMessage base; LoginCryptoDiffieHellmanHello *diffie_hellman; @@ -162,7 +162,7 @@ struct _LoginCryptoHelloUnion , NULL } -struct _LoginCryptoDiffieHellmanHello +struct LoginCryptoDiffieHellmanHello { ProtobufCMessage base; ProtobufCBinaryData gc; @@ -173,7 +173,7 @@ struct _LoginCryptoDiffieHellmanHello , {0,NULL}, 0 } -struct _FeatureSet +struct FeatureSet { ProtobufCMessage base; protobuf_c_boolean has_autoupdate2; @@ -186,7 +186,7 @@ struct _FeatureSet , 0, 0, 0, 0 } -struct _APResponseMessage +struct APResponseMessage { ProtobufCMessage base; APChallenge *challenge; @@ -198,7 +198,7 @@ struct _APResponseMessage , NULL, NULL, NULL } -struct _APChallenge +struct APChallenge { ProtobufCMessage base; LoginCryptoChallengeUnion *login_crypto_challenge; @@ -214,7 +214,7 @@ struct _APChallenge , NULL, NULL, NULL, NULL, {0,NULL}, 0, {0,NULL} } -struct _LoginCryptoChallengeUnion +struct LoginCryptoChallengeUnion { ProtobufCMessage base; LoginCryptoDiffieHellmanChallenge *diffie_hellman; @@ -224,7 +224,7 @@ struct _LoginCryptoChallengeUnion , NULL } -struct _LoginCryptoDiffieHellmanChallenge +struct LoginCryptoDiffieHellmanChallenge { ProtobufCMessage base; ProtobufCBinaryData gs; @@ -236,7 +236,7 @@ struct _LoginCryptoDiffieHellmanChallenge , {0,NULL}, 0, {0,NULL} } -struct _FingerprintChallengeUnion +struct FingerprintChallengeUnion { ProtobufCMessage base; FingerprintGrainChallenge *grain; @@ -247,7 +247,7 @@ struct _FingerprintChallengeUnion , NULL, NULL } -struct _FingerprintGrainChallenge +struct FingerprintGrainChallenge { ProtobufCMessage base; ProtobufCBinaryData kek; @@ -257,7 +257,7 @@ struct _FingerprintGrainChallenge , {0,NULL} } -struct _FingerprintHmacRipemdChallenge +struct FingerprintHmacRipemdChallenge { ProtobufCMessage base; ProtobufCBinaryData challenge; @@ -267,7 +267,7 @@ struct _FingerprintHmacRipemdChallenge , {0,NULL} } -struct _PoWChallengeUnion +struct PoWChallengeUnion { ProtobufCMessage base; PoWHashCashChallenge *hash_cash; @@ -277,7 +277,7 @@ struct _PoWChallengeUnion , NULL } -struct _PoWHashCashChallenge +struct PoWHashCashChallenge { ProtobufCMessage base; protobuf_c_boolean has_prefix; @@ -292,7 +292,7 @@ struct _PoWHashCashChallenge , 0, {0,NULL}, 0, 0, 0, 0 } -struct _CryptoChallengeUnion +struct CryptoChallengeUnion { ProtobufCMessage base; CryptoShannonChallenge *shannon; @@ -303,7 +303,7 @@ struct _CryptoChallengeUnion , NULL, NULL } -struct _CryptoShannonChallenge +struct CryptoShannonChallenge { ProtobufCMessage base; }; @@ -312,7 +312,7 @@ struct _CryptoShannonChallenge } -struct _CryptoRc4Sha1HmacChallenge +struct CryptoRc4Sha1HmacChallenge { ProtobufCMessage base; }; @@ -321,7 +321,7 @@ struct _CryptoRc4Sha1HmacChallenge } -struct _UpgradeRequiredMessage +struct UpgradeRequiredMessage { ProtobufCMessage base; ProtobufCBinaryData upgrade_signed_part; @@ -333,7 +333,7 @@ struct _UpgradeRequiredMessage , {0,NULL}, {0,NULL}, NULL } -struct _APLoginFailed +struct APLoginFailed { ProtobufCMessage base; ErrorCode error_code; @@ -348,7 +348,7 @@ struct _APLoginFailed , ERROR_CODE__ProtocolError, 0, 0, 0, 0, NULL } -struct _ClientResponsePlaintext +struct ClientResponsePlaintext { ProtobufCMessage base; LoginCryptoResponseUnion *login_crypto_response; @@ -360,7 +360,7 @@ struct _ClientResponsePlaintext , NULL, NULL, NULL } -struct _LoginCryptoResponseUnion +struct LoginCryptoResponseUnion { ProtobufCMessage base; LoginCryptoDiffieHellmanResponse *diffie_hellman; @@ -370,7 +370,7 @@ struct _LoginCryptoResponseUnion , NULL } -struct _LoginCryptoDiffieHellmanResponse +struct LoginCryptoDiffieHellmanResponse { ProtobufCMessage base; ProtobufCBinaryData hmac; @@ -380,7 +380,7 @@ struct _LoginCryptoDiffieHellmanResponse , {0,NULL} } -struct _PoWResponseUnion +struct PoWResponseUnion { ProtobufCMessage base; PoWHashCashResponse *hash_cash; @@ -390,7 +390,7 @@ struct _PoWResponseUnion , NULL } -struct _PoWHashCashResponse +struct PoWHashCashResponse { ProtobufCMessage base; ProtobufCBinaryData hash_suffix; @@ -400,7 +400,7 @@ struct _PoWHashCashResponse , {0,NULL} } -struct _CryptoResponseUnion +struct CryptoResponseUnion { ProtobufCMessage base; CryptoShannonResponse *shannon; @@ -411,7 +411,7 @@ struct _CryptoResponseUnion , NULL, NULL } -struct _CryptoShannonResponse +struct CryptoShannonResponse { ProtobufCMessage base; protobuf_c_boolean has_dummy; @@ -422,7 +422,7 @@ struct _CryptoShannonResponse , 0, 0 } -struct _CryptoRc4Sha1HmacResponse +struct CryptoRc4Sha1HmacResponse { ProtobufCMessage base; protobuf_c_boolean has_dummy; @@ -1073,4 +1073,4 @@ extern const ProtobufCMessageDescriptor crypto_rc4_sha1_hmac_response__descripto PROTOBUF_C__END_DECLS -#endif /* PROTOBUF_C_proto_2fkeyexchange_2eproto__INCLUDED */ +#endif /* PROTOBUF_C_keyexchange_2eproto__INCLUDED */ diff --git a/src/inputs/librespot-c/src/proto/mercury.pb-c.c b/src/inputs/librespot-c/src/proto/mercury.pb-c.c index b22a8274..a15985ab 100644 --- a/src/inputs/librespot-c/src/proto/mercury.pb-c.c +++ b/src/inputs/librespot-c/src/proto/mercury.pb-c.c @@ -1,5 +1,5 @@ /* Generated by the protocol buffer compiler. DO NOT EDIT! */ -/* Generated from: proto/mercury.proto */ +/* Generated from: mercury.proto */ /* Do not generate deprecated warnings for self */ #ifndef PROTOBUF_C__NO_DEPRECATED diff --git a/src/inputs/librespot-c/src/proto/mercury.pb-c.h b/src/inputs/librespot-c/src/proto/mercury.pb-c.h index e0fb8621..d049124f 100644 --- a/src/inputs/librespot-c/src/proto/mercury.pb-c.h +++ b/src/inputs/librespot-c/src/proto/mercury.pb-c.h @@ -1,8 +1,8 @@ /* Generated by the protocol buffer compiler. DO NOT EDIT! */ -/* Generated from: proto/mercury.proto */ +/* Generated from: mercury.proto */ -#ifndef PROTOBUF_C_proto_2fmercury_2eproto__INCLUDED -#define PROTOBUF_C_proto_2fmercury_2eproto__INCLUDED +#ifndef PROTOBUF_C_mercury_2eproto__INCLUDED +#define PROTOBUF_C_mercury_2eproto__INCLUDED #include @@ -10,17 +10,17 @@ PROTOBUF_C__BEGIN_DECLS #if PROTOBUF_C_VERSION_NUMBER < 1000000 # error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. -#elif 1003003 < PROTOBUF_C_MIN_COMPILER_VERSION +#elif 1004001 < PROTOBUF_C_MIN_COMPILER_VERSION # error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. #endif -typedef struct _MercuryMultiGetRequest MercuryMultiGetRequest; -typedef struct _MercuryMultiGetReply MercuryMultiGetReply; -typedef struct _MercuryRequest MercuryRequest; -typedef struct _MercuryReply MercuryReply; -typedef struct _Header Header; -typedef struct _UserField UserField; +typedef struct MercuryMultiGetRequest MercuryMultiGetRequest; +typedef struct MercuryMultiGetReply MercuryMultiGetReply; +typedef struct MercuryRequest MercuryRequest; +typedef struct MercuryReply MercuryReply; +typedef struct Header Header; +typedef struct UserField UserField; /* --- enums --- */ @@ -34,7 +34,7 @@ typedef enum _MercuryReply__CachePolicy { /* --- messages --- */ -struct _MercuryMultiGetRequest +struct MercuryMultiGetRequest { ProtobufCMessage base; size_t n_request; @@ -45,7 +45,7 @@ struct _MercuryMultiGetRequest , 0,NULL } -struct _MercuryMultiGetReply +struct MercuryMultiGetReply { ProtobufCMessage base; size_t n_reply; @@ -56,7 +56,7 @@ struct _MercuryMultiGetReply , 0,NULL } -struct _MercuryRequest +struct MercuryRequest { ProtobufCMessage base; char *uri; @@ -71,7 +71,7 @@ struct _MercuryRequest , NULL, NULL, 0, {0,NULL}, 0, {0,NULL} } -struct _MercuryReply +struct MercuryReply { ProtobufCMessage base; protobuf_c_boolean has_status_code; @@ -92,7 +92,7 @@ struct _MercuryReply , 0, 0, NULL, 0, MERCURY_REPLY__CACHE_POLICY__CACHE_NO, 0, 0, 0, {0,NULL}, NULL, 0, {0,NULL} } -struct _Header +struct Header { ProtobufCMessage base; char *uri; @@ -108,7 +108,7 @@ struct _Header , NULL, NULL, NULL, 0, 0, 0,NULL } -struct _UserField +struct UserField { ProtobufCMessage base; char *key; @@ -271,4 +271,4 @@ extern const ProtobufCMessageDescriptor user_field__descriptor; PROTOBUF_C__END_DECLS -#endif /* PROTOBUF_C_proto_2fmercury_2eproto__INCLUDED */ +#endif /* PROTOBUF_C_mercury_2eproto__INCLUDED */ diff --git a/src/inputs/librespot-c/src/proto/metadata.pb-c.c b/src/inputs/librespot-c/src/proto/metadata.pb-c.c index d2b26880..d0e8d912 100644 --- a/src/inputs/librespot-c/src/proto/metadata.pb-c.c +++ b/src/inputs/librespot-c/src/proto/metadata.pb-c.c @@ -1,5 +1,5 @@ /* Generated by the protocol buffer compiler. DO NOT EDIT! */ -/* Generated from: proto/metadata.proto */ +/* Generated from: metadata.proto */ /* Do not generate deprecated warnings for self */ #ifndef PROTOBUF_C__NO_DEPRECATED @@ -7,1120 +7,1050 @@ #endif #include "metadata.pb-c.h" -void top_tracks__init - (TopTracks *message) +void spotify__metadata__artist__init + (Spotify__Metadata__Artist *message) { - static const TopTracks init_value = TOP_TRACKS__INIT; + static const Spotify__Metadata__Artist init_value = SPOTIFY__METADATA__ARTIST__INIT; *message = init_value; } -size_t top_tracks__get_packed_size - (const TopTracks *message) +size_t spotify__metadata__artist__get_packed_size + (const Spotify__Metadata__Artist *message) { - assert(message->base.descriptor == &top_tracks__descriptor); + assert(message->base.descriptor == &spotify__metadata__artist__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t top_tracks__pack - (const TopTracks *message, +size_t spotify__metadata__artist__pack + (const Spotify__Metadata__Artist *message, uint8_t *out) { - assert(message->base.descriptor == &top_tracks__descriptor); + assert(message->base.descriptor == &spotify__metadata__artist__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t top_tracks__pack_to_buffer - (const TopTracks *message, +size_t spotify__metadata__artist__pack_to_buffer + (const Spotify__Metadata__Artist *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &top_tracks__descriptor); + assert(message->base.descriptor == &spotify__metadata__artist__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -TopTracks * - top_tracks__unpack +Spotify__Metadata__Artist * + spotify__metadata__artist__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (TopTracks *) - protobuf_c_message_unpack (&top_tracks__descriptor, + return (Spotify__Metadata__Artist *) + protobuf_c_message_unpack (&spotify__metadata__artist__descriptor, allocator, len, data); } -void top_tracks__free_unpacked - (TopTracks *message, +void spotify__metadata__artist__free_unpacked + (Spotify__Metadata__Artist *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &top_tracks__descriptor); + assert(message->base.descriptor == &spotify__metadata__artist__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void activity_period__init - (ActivityPeriod *message) +void spotify__metadata__album__init + (Spotify__Metadata__Album *message) { - static const ActivityPeriod init_value = ACTIVITY_PERIOD__INIT; + static const Spotify__Metadata__Album init_value = SPOTIFY__METADATA__ALBUM__INIT; *message = init_value; } -size_t activity_period__get_packed_size - (const ActivityPeriod *message) +size_t spotify__metadata__album__get_packed_size + (const Spotify__Metadata__Album *message) { - assert(message->base.descriptor == &activity_period__descriptor); + assert(message->base.descriptor == &spotify__metadata__album__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t activity_period__pack - (const ActivityPeriod *message, +size_t spotify__metadata__album__pack + (const Spotify__Metadata__Album *message, uint8_t *out) { - assert(message->base.descriptor == &activity_period__descriptor); + assert(message->base.descriptor == &spotify__metadata__album__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t activity_period__pack_to_buffer - (const ActivityPeriod *message, +size_t spotify__metadata__album__pack_to_buffer + (const Spotify__Metadata__Album *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &activity_period__descriptor); + assert(message->base.descriptor == &spotify__metadata__album__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -ActivityPeriod * - activity_period__unpack +Spotify__Metadata__Album * + spotify__metadata__album__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (ActivityPeriod *) - protobuf_c_message_unpack (&activity_period__descriptor, + return (Spotify__Metadata__Album *) + protobuf_c_message_unpack (&spotify__metadata__album__descriptor, allocator, len, data); } -void activity_period__free_unpacked - (ActivityPeriod *message, +void spotify__metadata__album__free_unpacked + (Spotify__Metadata__Album *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &activity_period__descriptor); + assert(message->base.descriptor == &spotify__metadata__album__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void artist__init - (Artist *message) +void spotify__metadata__track__init + (Spotify__Metadata__Track *message) { - static const Artist init_value = ARTIST__INIT; + static const Spotify__Metadata__Track init_value = SPOTIFY__METADATA__TRACK__INIT; *message = init_value; } -size_t artist__get_packed_size - (const Artist *message) +size_t spotify__metadata__track__get_packed_size + (const Spotify__Metadata__Track *message) { - assert(message->base.descriptor == &artist__descriptor); + assert(message->base.descriptor == &spotify__metadata__track__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t artist__pack - (const Artist *message, +size_t spotify__metadata__track__pack + (const Spotify__Metadata__Track *message, uint8_t *out) { - assert(message->base.descriptor == &artist__descriptor); + assert(message->base.descriptor == &spotify__metadata__track__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t artist__pack_to_buffer - (const Artist *message, +size_t spotify__metadata__track__pack_to_buffer + (const Spotify__Metadata__Track *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &artist__descriptor); + assert(message->base.descriptor == &spotify__metadata__track__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -Artist * - artist__unpack +Spotify__Metadata__Track * + spotify__metadata__track__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (Artist *) - protobuf_c_message_unpack (&artist__descriptor, + return (Spotify__Metadata__Track *) + protobuf_c_message_unpack (&spotify__metadata__track__descriptor, allocator, len, data); } -void artist__free_unpacked - (Artist *message, +void spotify__metadata__track__free_unpacked + (Spotify__Metadata__Track *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &artist__descriptor); + assert(message->base.descriptor == &spotify__metadata__track__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void album_group__init - (AlbumGroup *message) +void spotify__metadata__artist_with_role__init + (Spotify__Metadata__ArtistWithRole *message) { - static const AlbumGroup init_value = ALBUM_GROUP__INIT; + static const Spotify__Metadata__ArtistWithRole init_value = SPOTIFY__METADATA__ARTIST_WITH_ROLE__INIT; *message = init_value; } -size_t album_group__get_packed_size - (const AlbumGroup *message) +size_t spotify__metadata__artist_with_role__get_packed_size + (const Spotify__Metadata__ArtistWithRole *message) { - assert(message->base.descriptor == &album_group__descriptor); + assert(message->base.descriptor == &spotify__metadata__artist_with_role__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t album_group__pack - (const AlbumGroup *message, +size_t spotify__metadata__artist_with_role__pack + (const Spotify__Metadata__ArtistWithRole *message, uint8_t *out) { - assert(message->base.descriptor == &album_group__descriptor); + assert(message->base.descriptor == &spotify__metadata__artist_with_role__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t album_group__pack_to_buffer - (const AlbumGroup *message, +size_t spotify__metadata__artist_with_role__pack_to_buffer + (const Spotify__Metadata__ArtistWithRole *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &album_group__descriptor); + assert(message->base.descriptor == &spotify__metadata__artist_with_role__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -AlbumGroup * - album_group__unpack +Spotify__Metadata__ArtistWithRole * + spotify__metadata__artist_with_role__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (AlbumGroup *) - protobuf_c_message_unpack (&album_group__descriptor, + return (Spotify__Metadata__ArtistWithRole *) + protobuf_c_message_unpack (&spotify__metadata__artist_with_role__descriptor, allocator, len, data); } -void album_group__free_unpacked - (AlbumGroup *message, +void spotify__metadata__artist_with_role__free_unpacked + (Spotify__Metadata__ArtistWithRole *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &album_group__descriptor); + assert(message->base.descriptor == &spotify__metadata__artist_with_role__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void date__init - (Date *message) +void spotify__metadata__show__init + (Spotify__Metadata__Show *message) { - static const Date init_value = DATE__INIT; + static const Spotify__Metadata__Show init_value = SPOTIFY__METADATA__SHOW__INIT; *message = init_value; } -size_t date__get_packed_size - (const Date *message) +size_t spotify__metadata__show__get_packed_size + (const Spotify__Metadata__Show *message) { - assert(message->base.descriptor == &date__descriptor); + assert(message->base.descriptor == &spotify__metadata__show__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t date__pack - (const Date *message, +size_t spotify__metadata__show__pack + (const Spotify__Metadata__Show *message, uint8_t *out) { - assert(message->base.descriptor == &date__descriptor); + assert(message->base.descriptor == &spotify__metadata__show__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t date__pack_to_buffer - (const Date *message, +size_t spotify__metadata__show__pack_to_buffer + (const Spotify__Metadata__Show *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &date__descriptor); + assert(message->base.descriptor == &spotify__metadata__show__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -Date * - date__unpack +Spotify__Metadata__Show * + spotify__metadata__show__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (Date *) - protobuf_c_message_unpack (&date__descriptor, + return (Spotify__Metadata__Show *) + protobuf_c_message_unpack (&spotify__metadata__show__descriptor, allocator, len, data); } -void date__free_unpacked - (Date *message, +void spotify__metadata__show__free_unpacked + (Spotify__Metadata__Show *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &date__descriptor); + assert(message->base.descriptor == &spotify__metadata__show__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void album__init - (Album *message) +void spotify__metadata__episode__init + (Spotify__Metadata__Episode *message) { - static const Album init_value = ALBUM__INIT; + static const Spotify__Metadata__Episode init_value = SPOTIFY__METADATA__EPISODE__INIT; *message = init_value; } -size_t album__get_packed_size - (const Album *message) +size_t spotify__metadata__episode__get_packed_size + (const Spotify__Metadata__Episode *message) { - assert(message->base.descriptor == &album__descriptor); + assert(message->base.descriptor == &spotify__metadata__episode__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t album__pack - (const Album *message, +size_t spotify__metadata__episode__pack + (const Spotify__Metadata__Episode *message, uint8_t *out) { - assert(message->base.descriptor == &album__descriptor); + assert(message->base.descriptor == &spotify__metadata__episode__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t album__pack_to_buffer - (const Album *message, +size_t spotify__metadata__episode__pack_to_buffer + (const Spotify__Metadata__Episode *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &album__descriptor); + assert(message->base.descriptor == &spotify__metadata__episode__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -Album * - album__unpack +Spotify__Metadata__Episode * + spotify__metadata__episode__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (Album *) - protobuf_c_message_unpack (&album__descriptor, + return (Spotify__Metadata__Episode *) + protobuf_c_message_unpack (&spotify__metadata__episode__descriptor, allocator, len, data); } -void album__free_unpacked - (Album *message, +void spotify__metadata__episode__free_unpacked + (Spotify__Metadata__Episode *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &album__descriptor); + assert(message->base.descriptor == &spotify__metadata__episode__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void track__init - (Track *message) +void spotify__metadata__licensor__init + (Spotify__Metadata__Licensor *message) { - static const Track init_value = TRACK__INIT; + static const Spotify__Metadata__Licensor init_value = SPOTIFY__METADATA__LICENSOR__INIT; *message = init_value; } -size_t track__get_packed_size - (const Track *message) +size_t spotify__metadata__licensor__get_packed_size + (const Spotify__Metadata__Licensor *message) { - assert(message->base.descriptor == &track__descriptor); + assert(message->base.descriptor == &spotify__metadata__licensor__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t track__pack - (const Track *message, +size_t spotify__metadata__licensor__pack + (const Spotify__Metadata__Licensor *message, uint8_t *out) { - assert(message->base.descriptor == &track__descriptor); + assert(message->base.descriptor == &spotify__metadata__licensor__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t track__pack_to_buffer - (const Track *message, +size_t spotify__metadata__licensor__pack_to_buffer + (const Spotify__Metadata__Licensor *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &track__descriptor); + assert(message->base.descriptor == &spotify__metadata__licensor__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -Track * - track__unpack +Spotify__Metadata__Licensor * + spotify__metadata__licensor__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (Track *) - protobuf_c_message_unpack (&track__descriptor, + return (Spotify__Metadata__Licensor *) + protobuf_c_message_unpack (&spotify__metadata__licensor__descriptor, allocator, len, data); } -void track__free_unpacked - (Track *message, +void spotify__metadata__licensor__free_unpacked + (Spotify__Metadata__Licensor *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &track__descriptor); + assert(message->base.descriptor == &spotify__metadata__licensor__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void image__init - (Image *message) +void spotify__metadata__top_tracks__init + (Spotify__Metadata__TopTracks *message) { - static const Image init_value = IMAGE__INIT; + static const Spotify__Metadata__TopTracks init_value = SPOTIFY__METADATA__TOP_TRACKS__INIT; *message = init_value; } -size_t image__get_packed_size - (const Image *message) +size_t spotify__metadata__top_tracks__get_packed_size + (const Spotify__Metadata__TopTracks *message) { - assert(message->base.descriptor == &image__descriptor); + assert(message->base.descriptor == &spotify__metadata__top_tracks__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t image__pack - (const Image *message, +size_t spotify__metadata__top_tracks__pack + (const Spotify__Metadata__TopTracks *message, uint8_t *out) { - assert(message->base.descriptor == &image__descriptor); + assert(message->base.descriptor == &spotify__metadata__top_tracks__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t image__pack_to_buffer - (const Image *message, +size_t spotify__metadata__top_tracks__pack_to_buffer + (const Spotify__Metadata__TopTracks *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &image__descriptor); + assert(message->base.descriptor == &spotify__metadata__top_tracks__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -Image * - image__unpack +Spotify__Metadata__TopTracks * + spotify__metadata__top_tracks__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (Image *) - protobuf_c_message_unpack (&image__descriptor, + return (Spotify__Metadata__TopTracks *) + protobuf_c_message_unpack (&spotify__metadata__top_tracks__descriptor, allocator, len, data); } -void image__free_unpacked - (Image *message, +void spotify__metadata__top_tracks__free_unpacked + (Spotify__Metadata__TopTracks *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &image__descriptor); + assert(message->base.descriptor == &spotify__metadata__top_tracks__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void image_group__init - (ImageGroup *message) +void spotify__metadata__activity_period__init + (Spotify__Metadata__ActivityPeriod *message) { - static const ImageGroup init_value = IMAGE_GROUP__INIT; + static const Spotify__Metadata__ActivityPeriod init_value = SPOTIFY__METADATA__ACTIVITY_PERIOD__INIT; *message = init_value; } -size_t image_group__get_packed_size - (const ImageGroup *message) +size_t spotify__metadata__activity_period__get_packed_size + (const Spotify__Metadata__ActivityPeriod *message) { - assert(message->base.descriptor == &image_group__descriptor); + assert(message->base.descriptor == &spotify__metadata__activity_period__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t image_group__pack - (const ImageGroup *message, +size_t spotify__metadata__activity_period__pack + (const Spotify__Metadata__ActivityPeriod *message, uint8_t *out) { - assert(message->base.descriptor == &image_group__descriptor); + assert(message->base.descriptor == &spotify__metadata__activity_period__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t image_group__pack_to_buffer - (const ImageGroup *message, +size_t spotify__metadata__activity_period__pack_to_buffer + (const Spotify__Metadata__ActivityPeriod *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &image_group__descriptor); + assert(message->base.descriptor == &spotify__metadata__activity_period__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -ImageGroup * - image_group__unpack +Spotify__Metadata__ActivityPeriod * + spotify__metadata__activity_period__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (ImageGroup *) - protobuf_c_message_unpack (&image_group__descriptor, + return (Spotify__Metadata__ActivityPeriod *) + protobuf_c_message_unpack (&spotify__metadata__activity_period__descriptor, allocator, len, data); } -void image_group__free_unpacked - (ImageGroup *message, +void spotify__metadata__activity_period__free_unpacked + (Spotify__Metadata__ActivityPeriod *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &image_group__descriptor); + assert(message->base.descriptor == &spotify__metadata__activity_period__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void biography__init - (Biography *message) +void spotify__metadata__album_group__init + (Spotify__Metadata__AlbumGroup *message) { - static const Biography init_value = BIOGRAPHY__INIT; + static const Spotify__Metadata__AlbumGroup init_value = SPOTIFY__METADATA__ALBUM_GROUP__INIT; *message = init_value; } -size_t biography__get_packed_size - (const Biography *message) +size_t spotify__metadata__album_group__get_packed_size + (const Spotify__Metadata__AlbumGroup *message) { - assert(message->base.descriptor == &biography__descriptor); + assert(message->base.descriptor == &spotify__metadata__album_group__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t biography__pack - (const Biography *message, +size_t spotify__metadata__album_group__pack + (const Spotify__Metadata__AlbumGroup *message, uint8_t *out) { - assert(message->base.descriptor == &biography__descriptor); + assert(message->base.descriptor == &spotify__metadata__album_group__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t biography__pack_to_buffer - (const Biography *message, +size_t spotify__metadata__album_group__pack_to_buffer + (const Spotify__Metadata__AlbumGroup *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &biography__descriptor); + assert(message->base.descriptor == &spotify__metadata__album_group__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -Biography * - biography__unpack +Spotify__Metadata__AlbumGroup * + spotify__metadata__album_group__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (Biography *) - protobuf_c_message_unpack (&biography__descriptor, + return (Spotify__Metadata__AlbumGroup *) + protobuf_c_message_unpack (&spotify__metadata__album_group__descriptor, allocator, len, data); } -void biography__free_unpacked - (Biography *message, +void spotify__metadata__album_group__free_unpacked + (Spotify__Metadata__AlbumGroup *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &biography__descriptor); + assert(message->base.descriptor == &spotify__metadata__album_group__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void disc__init - (Disc *message) +void spotify__metadata__date__init + (Spotify__Metadata__Date *message) { - static const Disc init_value = DISC__INIT; + static const Spotify__Metadata__Date init_value = SPOTIFY__METADATA__DATE__INIT; *message = init_value; } -size_t disc__get_packed_size - (const Disc *message) +size_t spotify__metadata__date__get_packed_size + (const Spotify__Metadata__Date *message) { - assert(message->base.descriptor == &disc__descriptor); + assert(message->base.descriptor == &spotify__metadata__date__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t disc__pack - (const Disc *message, +size_t spotify__metadata__date__pack + (const Spotify__Metadata__Date *message, uint8_t *out) { - assert(message->base.descriptor == &disc__descriptor); + assert(message->base.descriptor == &spotify__metadata__date__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t disc__pack_to_buffer - (const Disc *message, +size_t spotify__metadata__date__pack_to_buffer + (const Spotify__Metadata__Date *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &disc__descriptor); + assert(message->base.descriptor == &spotify__metadata__date__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -Disc * - disc__unpack +Spotify__Metadata__Date * + spotify__metadata__date__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (Disc *) - protobuf_c_message_unpack (&disc__descriptor, + return (Spotify__Metadata__Date *) + protobuf_c_message_unpack (&spotify__metadata__date__descriptor, allocator, len, data); } -void disc__free_unpacked - (Disc *message, +void spotify__metadata__date__free_unpacked + (Spotify__Metadata__Date *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &disc__descriptor); + assert(message->base.descriptor == &spotify__metadata__date__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void copyright__init - (Copyright *message) +void spotify__metadata__image__init + (Spotify__Metadata__Image *message) { - static const Copyright init_value = COPYRIGHT__INIT; + static const Spotify__Metadata__Image init_value = SPOTIFY__METADATA__IMAGE__INIT; *message = init_value; } -size_t copyright__get_packed_size - (const Copyright *message) +size_t spotify__metadata__image__get_packed_size + (const Spotify__Metadata__Image *message) { - assert(message->base.descriptor == ©right__descriptor); + assert(message->base.descriptor == &spotify__metadata__image__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t copyright__pack - (const Copyright *message, +size_t spotify__metadata__image__pack + (const Spotify__Metadata__Image *message, uint8_t *out) { - assert(message->base.descriptor == ©right__descriptor); + assert(message->base.descriptor == &spotify__metadata__image__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t copyright__pack_to_buffer - (const Copyright *message, +size_t spotify__metadata__image__pack_to_buffer + (const Spotify__Metadata__Image *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == ©right__descriptor); + assert(message->base.descriptor == &spotify__metadata__image__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -Copyright * - copyright__unpack +Spotify__Metadata__Image * + spotify__metadata__image__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (Copyright *) - protobuf_c_message_unpack (©right__descriptor, + return (Spotify__Metadata__Image *) + protobuf_c_message_unpack (&spotify__metadata__image__descriptor, allocator, len, data); } -void copyright__free_unpacked - (Copyright *message, +void spotify__metadata__image__free_unpacked + (Spotify__Metadata__Image *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == ©right__descriptor); + assert(message->base.descriptor == &spotify__metadata__image__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void restriction__init - (Restriction *message) +void spotify__metadata__image_group__init + (Spotify__Metadata__ImageGroup *message) { - static const Restriction init_value = RESTRICTION__INIT; + static const Spotify__Metadata__ImageGroup init_value = SPOTIFY__METADATA__IMAGE_GROUP__INIT; *message = init_value; } -size_t restriction__get_packed_size - (const Restriction *message) +size_t spotify__metadata__image_group__get_packed_size + (const Spotify__Metadata__ImageGroup *message) { - assert(message->base.descriptor == &restriction__descriptor); + assert(message->base.descriptor == &spotify__metadata__image_group__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t restriction__pack - (const Restriction *message, +size_t spotify__metadata__image_group__pack + (const Spotify__Metadata__ImageGroup *message, uint8_t *out) { - assert(message->base.descriptor == &restriction__descriptor); + assert(message->base.descriptor == &spotify__metadata__image_group__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t restriction__pack_to_buffer - (const Restriction *message, +size_t spotify__metadata__image_group__pack_to_buffer + (const Spotify__Metadata__ImageGroup *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &restriction__descriptor); + assert(message->base.descriptor == &spotify__metadata__image_group__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -Restriction * - restriction__unpack +Spotify__Metadata__ImageGroup * + spotify__metadata__image_group__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (Restriction *) - protobuf_c_message_unpack (&restriction__descriptor, + return (Spotify__Metadata__ImageGroup *) + protobuf_c_message_unpack (&spotify__metadata__image_group__descriptor, allocator, len, data); } -void restriction__free_unpacked - (Restriction *message, +void spotify__metadata__image_group__free_unpacked + (Spotify__Metadata__ImageGroup *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &restriction__descriptor); + assert(message->base.descriptor == &spotify__metadata__image_group__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void availability__init - (Availability *message) +void spotify__metadata__biography__init + (Spotify__Metadata__Biography *message) { - static const Availability init_value = AVAILABILITY__INIT; + static const Spotify__Metadata__Biography init_value = SPOTIFY__METADATA__BIOGRAPHY__INIT; *message = init_value; } -size_t availability__get_packed_size - (const Availability *message) +size_t spotify__metadata__biography__get_packed_size + (const Spotify__Metadata__Biography *message) { - assert(message->base.descriptor == &availability__descriptor); + assert(message->base.descriptor == &spotify__metadata__biography__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t availability__pack - (const Availability *message, +size_t spotify__metadata__biography__pack + (const Spotify__Metadata__Biography *message, uint8_t *out) { - assert(message->base.descriptor == &availability__descriptor); + assert(message->base.descriptor == &spotify__metadata__biography__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t availability__pack_to_buffer - (const Availability *message, +size_t spotify__metadata__biography__pack_to_buffer + (const Spotify__Metadata__Biography *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &availability__descriptor); + assert(message->base.descriptor == &spotify__metadata__biography__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -Availability * - availability__unpack +Spotify__Metadata__Biography * + spotify__metadata__biography__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (Availability *) - protobuf_c_message_unpack (&availability__descriptor, + return (Spotify__Metadata__Biography *) + protobuf_c_message_unpack (&spotify__metadata__biography__descriptor, allocator, len, data); } -void availability__free_unpacked - (Availability *message, +void spotify__metadata__biography__free_unpacked + (Spotify__Metadata__Biography *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &availability__descriptor); + assert(message->base.descriptor == &spotify__metadata__biography__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void sale_period__init - (SalePeriod *message) +void spotify__metadata__disc__init + (Spotify__Metadata__Disc *message) { - static const SalePeriod init_value = SALE_PERIOD__INIT; + static const Spotify__Metadata__Disc init_value = SPOTIFY__METADATA__DISC__INIT; *message = init_value; } -size_t sale_period__get_packed_size - (const SalePeriod *message) +size_t spotify__metadata__disc__get_packed_size + (const Spotify__Metadata__Disc *message) { - assert(message->base.descriptor == &sale_period__descriptor); + assert(message->base.descriptor == &spotify__metadata__disc__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t sale_period__pack - (const SalePeriod *message, +size_t spotify__metadata__disc__pack + (const Spotify__Metadata__Disc *message, uint8_t *out) { - assert(message->base.descriptor == &sale_period__descriptor); + assert(message->base.descriptor == &spotify__metadata__disc__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t sale_period__pack_to_buffer - (const SalePeriod *message, +size_t spotify__metadata__disc__pack_to_buffer + (const Spotify__Metadata__Disc *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &sale_period__descriptor); + assert(message->base.descriptor == &spotify__metadata__disc__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -SalePeriod * - sale_period__unpack +Spotify__Metadata__Disc * + spotify__metadata__disc__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (SalePeriod *) - protobuf_c_message_unpack (&sale_period__descriptor, + return (Spotify__Metadata__Disc *) + protobuf_c_message_unpack (&spotify__metadata__disc__descriptor, allocator, len, data); } -void sale_period__free_unpacked - (SalePeriod *message, +void spotify__metadata__disc__free_unpacked + (Spotify__Metadata__Disc *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &sale_period__descriptor); + assert(message->base.descriptor == &spotify__metadata__disc__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void external_id__init - (ExternalId *message) +void spotify__metadata__copyright__init + (Spotify__Metadata__Copyright *message) { - static const ExternalId init_value = EXTERNAL_ID__INIT; + static const Spotify__Metadata__Copyright init_value = SPOTIFY__METADATA__COPYRIGHT__INIT; *message = init_value; } -size_t external_id__get_packed_size - (const ExternalId *message) +size_t spotify__metadata__copyright__get_packed_size + (const Spotify__Metadata__Copyright *message) { - assert(message->base.descriptor == &external_id__descriptor); + assert(message->base.descriptor == &spotify__metadata__copyright__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t external_id__pack - (const ExternalId *message, +size_t spotify__metadata__copyright__pack + (const Spotify__Metadata__Copyright *message, uint8_t *out) { - assert(message->base.descriptor == &external_id__descriptor); + assert(message->base.descriptor == &spotify__metadata__copyright__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t external_id__pack_to_buffer - (const ExternalId *message, +size_t spotify__metadata__copyright__pack_to_buffer + (const Spotify__Metadata__Copyright *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &external_id__descriptor); + assert(message->base.descriptor == &spotify__metadata__copyright__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -ExternalId * - external_id__unpack +Spotify__Metadata__Copyright * + spotify__metadata__copyright__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (ExternalId *) - protobuf_c_message_unpack (&external_id__descriptor, + return (Spotify__Metadata__Copyright *) + protobuf_c_message_unpack (&spotify__metadata__copyright__descriptor, allocator, len, data); } -void external_id__free_unpacked - (ExternalId *message, +void spotify__metadata__copyright__free_unpacked + (Spotify__Metadata__Copyright *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &external_id__descriptor); + assert(message->base.descriptor == &spotify__metadata__copyright__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void audio_file__init - (AudioFile *message) +void spotify__metadata__restriction__init + (Spotify__Metadata__Restriction *message) { - static const AudioFile init_value = AUDIO_FILE__INIT; + static const Spotify__Metadata__Restriction init_value = SPOTIFY__METADATA__RESTRICTION__INIT; *message = init_value; } -size_t audio_file__get_packed_size - (const AudioFile *message) +size_t spotify__metadata__restriction__get_packed_size + (const Spotify__Metadata__Restriction *message) { - assert(message->base.descriptor == &audio_file__descriptor); + assert(message->base.descriptor == &spotify__metadata__restriction__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t audio_file__pack - (const AudioFile *message, +size_t spotify__metadata__restriction__pack + (const Spotify__Metadata__Restriction *message, uint8_t *out) { - assert(message->base.descriptor == &audio_file__descriptor); + assert(message->base.descriptor == &spotify__metadata__restriction__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t audio_file__pack_to_buffer - (const AudioFile *message, +size_t spotify__metadata__restriction__pack_to_buffer + (const Spotify__Metadata__Restriction *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &audio_file__descriptor); + assert(message->base.descriptor == &spotify__metadata__restriction__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -AudioFile * - audio_file__unpack +Spotify__Metadata__Restriction * + spotify__metadata__restriction__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (AudioFile *) - protobuf_c_message_unpack (&audio_file__descriptor, + return (Spotify__Metadata__Restriction *) + protobuf_c_message_unpack (&spotify__metadata__restriction__descriptor, allocator, len, data); } -void audio_file__free_unpacked - (AudioFile *message, +void spotify__metadata__restriction__free_unpacked + (Spotify__Metadata__Restriction *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &audio_file__descriptor); + assert(message->base.descriptor == &spotify__metadata__restriction__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void video_file__init - (VideoFile *message) +void spotify__metadata__availability__init + (Spotify__Metadata__Availability *message) { - static const VideoFile init_value = VIDEO_FILE__INIT; + static const Spotify__Metadata__Availability init_value = SPOTIFY__METADATA__AVAILABILITY__INIT; *message = init_value; } -size_t video_file__get_packed_size - (const VideoFile *message) +size_t spotify__metadata__availability__get_packed_size + (const Spotify__Metadata__Availability *message) { - assert(message->base.descriptor == &video_file__descriptor); + assert(message->base.descriptor == &spotify__metadata__availability__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t video_file__pack - (const VideoFile *message, +size_t spotify__metadata__availability__pack + (const Spotify__Metadata__Availability *message, uint8_t *out) { - assert(message->base.descriptor == &video_file__descriptor); + assert(message->base.descriptor == &spotify__metadata__availability__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t video_file__pack_to_buffer - (const VideoFile *message, +size_t spotify__metadata__availability__pack_to_buffer + (const Spotify__Metadata__Availability *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &video_file__descriptor); + assert(message->base.descriptor == &spotify__metadata__availability__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -VideoFile * - video_file__unpack +Spotify__Metadata__Availability * + spotify__metadata__availability__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (VideoFile *) - protobuf_c_message_unpack (&video_file__descriptor, + return (Spotify__Metadata__Availability *) + protobuf_c_message_unpack (&spotify__metadata__availability__descriptor, allocator, len, data); } -void video_file__free_unpacked - (VideoFile *message, +void spotify__metadata__availability__free_unpacked + (Spotify__Metadata__Availability *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &video_file__descriptor); + assert(message->base.descriptor == &spotify__metadata__availability__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void show__init - (Show *message) +void spotify__metadata__sale_period__init + (Spotify__Metadata__SalePeriod *message) { - static const Show init_value = SHOW__INIT; + static const Spotify__Metadata__SalePeriod init_value = SPOTIFY__METADATA__SALE_PERIOD__INIT; *message = init_value; } -size_t show__get_packed_size - (const Show *message) +size_t spotify__metadata__sale_period__get_packed_size + (const Spotify__Metadata__SalePeriod *message) { - assert(message->base.descriptor == &show__descriptor); + assert(message->base.descriptor == &spotify__metadata__sale_period__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t show__pack - (const Show *message, +size_t spotify__metadata__sale_period__pack + (const Spotify__Metadata__SalePeriod *message, uint8_t *out) { - assert(message->base.descriptor == &show__descriptor); + assert(message->base.descriptor == &spotify__metadata__sale_period__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t show__pack_to_buffer - (const Show *message, +size_t spotify__metadata__sale_period__pack_to_buffer + (const Spotify__Metadata__SalePeriod *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &show__descriptor); + assert(message->base.descriptor == &spotify__metadata__sale_period__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -Show * - show__unpack +Spotify__Metadata__SalePeriod * + spotify__metadata__sale_period__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (Show *) - protobuf_c_message_unpack (&show__descriptor, + return (Spotify__Metadata__SalePeriod *) + protobuf_c_message_unpack (&spotify__metadata__sale_period__descriptor, allocator, len, data); } -void show__free_unpacked - (Show *message, +void spotify__metadata__sale_period__free_unpacked + (Spotify__Metadata__SalePeriod *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &show__descriptor); + assert(message->base.descriptor == &spotify__metadata__sale_period__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void episode__init - (Episode *message) +void spotify__metadata__external_id__init + (Spotify__Metadata__ExternalId *message) { - static const Episode init_value = EPISODE__INIT; + static const Spotify__Metadata__ExternalId init_value = SPOTIFY__METADATA__EXTERNAL_ID__INIT; *message = init_value; } -size_t episode__get_packed_size - (const Episode *message) +size_t spotify__metadata__external_id__get_packed_size + (const Spotify__Metadata__ExternalId *message) { - assert(message->base.descriptor == &episode__descriptor); + assert(message->base.descriptor == &spotify__metadata__external_id__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t episode__pack - (const Episode *message, +size_t spotify__metadata__external_id__pack + (const Spotify__Metadata__ExternalId *message, uint8_t *out) { - assert(message->base.descriptor == &episode__descriptor); + assert(message->base.descriptor == &spotify__metadata__external_id__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t episode__pack_to_buffer - (const Episode *message, +size_t spotify__metadata__external_id__pack_to_buffer + (const Spotify__Metadata__ExternalId *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &episode__descriptor); + assert(message->base.descriptor == &spotify__metadata__external_id__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -Episode * - episode__unpack +Spotify__Metadata__ExternalId * + spotify__metadata__external_id__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (Episode *) - protobuf_c_message_unpack (&episode__descriptor, + return (Spotify__Metadata__ExternalId *) + protobuf_c_message_unpack (&spotify__metadata__external_id__descriptor, allocator, len, data); } -void episode__free_unpacked - (Episode *message, +void spotify__metadata__external_id__free_unpacked + (Spotify__Metadata__ExternalId *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &episode__descriptor); + assert(message->base.descriptor == &spotify__metadata__external_id__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void category__init - (Category *message) +void spotify__metadata__audio_file__init + (Spotify__Metadata__AudioFile *message) { - static const Category init_value = CATEGORY__INIT; + static const Spotify__Metadata__AudioFile init_value = SPOTIFY__METADATA__AUDIO_FILE__INIT; *message = init_value; } -size_t category__get_packed_size - (const Category *message) +size_t spotify__metadata__audio_file__get_packed_size + (const Spotify__Metadata__AudioFile *message) { - assert(message->base.descriptor == &category__descriptor); + assert(message->base.descriptor == &spotify__metadata__audio_file__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t category__pack - (const Category *message, +size_t spotify__metadata__audio_file__pack + (const Spotify__Metadata__AudioFile *message, uint8_t *out) { - assert(message->base.descriptor == &category__descriptor); + assert(message->base.descriptor == &spotify__metadata__audio_file__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t category__pack_to_buffer - (const Category *message, +size_t spotify__metadata__audio_file__pack_to_buffer + (const Spotify__Metadata__AudioFile *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &category__descriptor); + assert(message->base.descriptor == &spotify__metadata__audio_file__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -Category * - category__unpack +Spotify__Metadata__AudioFile * + spotify__metadata__audio_file__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (Category *) - protobuf_c_message_unpack (&category__descriptor, + return (Spotify__Metadata__AudioFile *) + protobuf_c_message_unpack (&spotify__metadata__audio_file__descriptor, allocator, len, data); } -void category__free_unpacked - (Category *message, +void spotify__metadata__audio_file__free_unpacked + (Spotify__Metadata__AudioFile *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &category__descriptor); + assert(message->base.descriptor == &spotify__metadata__audio_file__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void original_audio__init - (OriginalAudio *message) +void spotify__metadata__video_file__init + (Spotify__Metadata__VideoFile *message) { - static const OriginalAudio init_value = ORIGINAL_AUDIO__INIT; + static const Spotify__Metadata__VideoFile init_value = SPOTIFY__METADATA__VIDEO_FILE__INIT; *message = init_value; } -size_t original_audio__get_packed_size - (const OriginalAudio *message) +size_t spotify__metadata__video_file__get_packed_size + (const Spotify__Metadata__VideoFile *message) { - assert(message->base.descriptor == &original_audio__descriptor); + assert(message->base.descriptor == &spotify__metadata__video_file__descriptor); return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); } -size_t original_audio__pack - (const OriginalAudio *message, +size_t spotify__metadata__video_file__pack + (const Spotify__Metadata__VideoFile *message, uint8_t *out) { - assert(message->base.descriptor == &original_audio__descriptor); + assert(message->base.descriptor == &spotify__metadata__video_file__descriptor); return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); } -size_t original_audio__pack_to_buffer - (const OriginalAudio *message, +size_t spotify__metadata__video_file__pack_to_buffer + (const Spotify__Metadata__VideoFile *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &original_audio__descriptor); + assert(message->base.descriptor == &spotify__metadata__video_file__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } -OriginalAudio * - original_audio__unpack +Spotify__Metadata__VideoFile * + spotify__metadata__video_file__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (OriginalAudio *) - protobuf_c_message_unpack (&original_audio__descriptor, + return (Spotify__Metadata__VideoFile *) + protobuf_c_message_unpack (&spotify__metadata__video_file__descriptor, allocator, len, data); } -void original_audio__free_unpacked - (OriginalAudio *message, +void spotify__metadata__video_file__free_unpacked + (Spotify__Metadata__VideoFile *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &original_audio__descriptor); + assert(message->base.descriptor == &spotify__metadata__video_file__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -static const ProtobufCFieldDescriptor top_tracks__field_descriptors[2] = +void spotify__metadata__content_rating__init + (Spotify__Metadata__ContentRating *message) { - { - "country", - 1, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(TopTracks, country), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "track", - 2, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(TopTracks, n_track), - offsetof(TopTracks, track), - &track__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned top_tracks__field_indices_by_name[] = { - 0, /* field[0] = country */ - 1, /* field[1] = track */ -}; -static const ProtobufCIntRange top_tracks__number_ranges[1 + 1] = + static const Spotify__Metadata__ContentRating init_value = SPOTIFY__METADATA__CONTENT_RATING__INIT; + *message = init_value; +} +size_t spotify__metadata__content_rating__get_packed_size + (const Spotify__Metadata__ContentRating *message) { - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor top_tracks__descriptor = + assert(message->base.descriptor == &spotify__metadata__content_rating__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t spotify__metadata__content_rating__pack + (const Spotify__Metadata__ContentRating *message, + uint8_t *out) { - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "TopTracks", - "TopTracks", - "TopTracks", - "", - sizeof(TopTracks), - 2, - top_tracks__field_descriptors, - top_tracks__field_indices_by_name, - 1, top_tracks__number_ranges, - (ProtobufCMessageInit) top_tracks__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor activity_period__field_descriptors[3] = + assert(message->base.descriptor == &spotify__metadata__content_rating__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t spotify__metadata__content_rating__pack_to_buffer + (const Spotify__Metadata__ContentRating *message, + ProtobufCBuffer *buffer) { - { - "start_year", - 1, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_SINT32, - offsetof(ActivityPeriod, has_start_year), - offsetof(ActivityPeriod, start_year), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "end_year", - 2, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_SINT32, - offsetof(ActivityPeriod, has_end_year), - offsetof(ActivityPeriod, end_year), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "decade", - 3, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_SINT32, - offsetof(ActivityPeriod, has_decade), - offsetof(ActivityPeriod, decade), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned activity_period__field_indices_by_name[] = { - 2, /* field[2] = decade */ - 1, /* field[1] = end_year */ - 0, /* field[0] = start_year */ -}; -static const ProtobufCIntRange activity_period__number_ranges[1 + 1] = + assert(message->base.descriptor == &spotify__metadata__content_rating__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +Spotify__Metadata__ContentRating * + spotify__metadata__content_rating__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) { - { 1, 0 }, - { 0, 3 } -}; -const ProtobufCMessageDescriptor activity_period__descriptor = + return (Spotify__Metadata__ContentRating *) + protobuf_c_message_unpack (&spotify__metadata__content_rating__descriptor, + allocator, len, data); +} +void spotify__metadata__content_rating__free_unpacked + (Spotify__Metadata__ContentRating *message, + ProtobufCAllocator *allocator) { - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "ActivityPeriod", - "ActivityPeriod", - "ActivityPeriod", - "", - sizeof(ActivityPeriod), - 3, - activity_period__field_descriptors, - activity_period__field_indices_by_name, - 1, activity_period__number_ranges, - (ProtobufCMessageInit) activity_period__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor artist__field_descriptors[17] = + if(!message) + return; + assert(message->base.descriptor == &spotify__metadata__content_rating__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +static const ProtobufCFieldDescriptor spotify__metadata__artist__field_descriptors[19] = { { "gid", 1, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_BYTES, - offsetof(Artist, has_gid), - offsetof(Artist, gid), + offsetof(Spotify__Metadata__Artist, has_gid), + offsetof(Spotify__Metadata__Artist, gid), NULL, NULL, 0, /* flags */ @@ -1132,7 +1062,7 @@ static const ProtobufCFieldDescriptor artist__field_descriptors[17] = PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Artist, name), + offsetof(Spotify__Metadata__Artist, name), NULL, NULL, 0, /* flags */ @@ -1143,8 +1073,8 @@ static const ProtobufCFieldDescriptor artist__field_descriptors[17] = 3, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_SINT32, - offsetof(Artist, has_popularity), - offsetof(Artist, popularity), + offsetof(Spotify__Metadata__Artist, has_popularity), + offsetof(Spotify__Metadata__Artist, popularity), NULL, NULL, 0, /* flags */ @@ -1155,9 +1085,9 @@ static const ProtobufCFieldDescriptor artist__field_descriptors[17] = 4, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Artist, n_top_track), - offsetof(Artist, top_track), - &top_tracks__descriptor, + offsetof(Spotify__Metadata__Artist, n_top_track), + offsetof(Spotify__Metadata__Artist, top_track), + &spotify__metadata__top_tracks__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1167,9 +1097,9 @@ static const ProtobufCFieldDescriptor artist__field_descriptors[17] = 5, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Artist, n_album_group), - offsetof(Artist, album_group), - &album_group__descriptor, + offsetof(Spotify__Metadata__Artist, n_album_group), + offsetof(Spotify__Metadata__Artist, album_group), + &spotify__metadata__album_group__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1179,9 +1109,9 @@ static const ProtobufCFieldDescriptor artist__field_descriptors[17] = 6, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Artist, n_single_group), - offsetof(Artist, single_group), - &album_group__descriptor, + offsetof(Spotify__Metadata__Artist, n_single_group), + offsetof(Spotify__Metadata__Artist, single_group), + &spotify__metadata__album_group__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1191,9 +1121,9 @@ static const ProtobufCFieldDescriptor artist__field_descriptors[17] = 7, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Artist, n_compilation_group), - offsetof(Artist, compilation_group), - &album_group__descriptor, + offsetof(Spotify__Metadata__Artist, n_compilation_group), + offsetof(Spotify__Metadata__Artist, compilation_group), + &spotify__metadata__album_group__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1203,9 +1133,9 @@ static const ProtobufCFieldDescriptor artist__field_descriptors[17] = 8, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Artist, n_appears_on_group), - offsetof(Artist, appears_on_group), - &album_group__descriptor, + offsetof(Spotify__Metadata__Artist, n_appears_on_group), + offsetof(Spotify__Metadata__Artist, appears_on_group), + &spotify__metadata__album_group__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1215,8 +1145,8 @@ static const ProtobufCFieldDescriptor artist__field_descriptors[17] = 9, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_STRING, - offsetof(Artist, n_genre), - offsetof(Artist, genre), + offsetof(Spotify__Metadata__Artist, n_genre), + offsetof(Spotify__Metadata__Artist, genre), NULL, NULL, 0, /* flags */ @@ -1227,9 +1157,9 @@ static const ProtobufCFieldDescriptor artist__field_descriptors[17] = 10, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Artist, n_external_id), - offsetof(Artist, external_id), - &external_id__descriptor, + offsetof(Spotify__Metadata__Artist, n_external_id), + offsetof(Spotify__Metadata__Artist, external_id), + &spotify__metadata__external_id__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1239,9 +1169,9 @@ static const ProtobufCFieldDescriptor artist__field_descriptors[17] = 11, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Artist, n_portrait), - offsetof(Artist, portrait), - &image__descriptor, + offsetof(Spotify__Metadata__Artist, n_portrait), + offsetof(Spotify__Metadata__Artist, portrait), + &spotify__metadata__image__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1251,9 +1181,9 @@ static const ProtobufCFieldDescriptor artist__field_descriptors[17] = 12, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Artist, n_biography), - offsetof(Artist, biography), - &biography__descriptor, + offsetof(Spotify__Metadata__Artist, n_biography), + offsetof(Spotify__Metadata__Artist, biography), + &spotify__metadata__biography__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1263,9 +1193,9 @@ static const ProtobufCFieldDescriptor artist__field_descriptors[17] = 13, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Artist, n_activity_period), - offsetof(Artist, activity_period), - &activity_period__descriptor, + offsetof(Spotify__Metadata__Artist, n_activity_period), + offsetof(Spotify__Metadata__Artist, activity_period), + &spotify__metadata__activity_period__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1275,9 +1205,9 @@ static const ProtobufCFieldDescriptor artist__field_descriptors[17] = 14, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Artist, n_restriction), - offsetof(Artist, restriction), - &restriction__descriptor, + offsetof(Spotify__Metadata__Artist, n_restriction), + offsetof(Spotify__Metadata__Artist, restriction), + &spotify__metadata__restriction__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1287,9 +1217,9 @@ static const ProtobufCFieldDescriptor artist__field_descriptors[17] = 15, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Artist, n_related), - offsetof(Artist, related), - &artist__descriptor, + offsetof(Spotify__Metadata__Artist, n_related), + offsetof(Spotify__Metadata__Artist, related), + &spotify__metadata__artist__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1299,8 +1229,8 @@ static const ProtobufCFieldDescriptor artist__field_descriptors[17] = 16, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_BOOL, - offsetof(Artist, has_is_portrait_album_cover), - offsetof(Artist, is_portrait_album_cover), + offsetof(Spotify__Metadata__Artist, has_is_portrait_album_cover), + offsetof(Spotify__Metadata__Artist, is_portrait_album_cover), NULL, NULL, 0, /* flags */ @@ -1312,17 +1242,42 @@ static const ProtobufCFieldDescriptor artist__field_descriptors[17] = PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_MESSAGE, 0, /* quantifier_offset */ - offsetof(Artist, portrait_group), - &image_group__descriptor, + offsetof(Spotify__Metadata__Artist, portrait_group), + &spotify__metadata__image_group__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sale_period", + 18, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Spotify__Metadata__Artist, n_sale_period), + offsetof(Spotify__Metadata__Artist, sale_period), + &spotify__metadata__sale_period__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "availability", + 20, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Spotify__Metadata__Artist, n_availability), + offsetof(Spotify__Metadata__Artist, availability), + &spotify__metadata__availability__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; -static const unsigned artist__field_indices_by_name[] = { +static const unsigned spotify__metadata__artist__field_indices_by_name[] = { 12, /* field[12] = activity_period */ 4, /* field[4] = album_group */ 7, /* field[7] = appears_on_group */ + 18, /* field[18] = availability */ 11, /* field[11] = biography */ 6, /* field[6] = compilation_group */ 9, /* field[9] = external_id */ @@ -1335,198 +1290,76 @@ static const unsigned artist__field_indices_by_name[] = { 16, /* field[16] = portrait_group */ 14, /* field[14] = related */ 13, /* field[13] = restriction */ + 17, /* field[17] = sale_period */ 5, /* field[5] = single_group */ 3, /* field[3] = top_track */ }; -static const ProtobufCIntRange artist__number_ranges[1 + 1] = +static const ProtobufCIntRange spotify__metadata__artist__number_ranges[2 + 1] = { { 1, 0 }, - { 0, 17 } + { 20, 18 }, + { 0, 19 } }; -const ProtobufCMessageDescriptor artist__descriptor = +const ProtobufCMessageDescriptor spotify__metadata__artist__descriptor = { PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "spotify.metadata.Artist", "Artist", - "Artist", - "Artist", - "", - sizeof(Artist), - 17, - artist__field_descriptors, - artist__field_indices_by_name, - 1, artist__number_ranges, - (ProtobufCMessageInit) artist__init, + "Spotify__Metadata__Artist", + "spotify.metadata", + sizeof(Spotify__Metadata__Artist), + 19, + spotify__metadata__artist__field_descriptors, + spotify__metadata__artist__field_indices_by_name, + 2, spotify__metadata__artist__number_ranges, + (ProtobufCMessageInit) spotify__metadata__artist__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor album_group__field_descriptors[1] = +static const ProtobufCEnumValue spotify__metadata__album__type__enum_values_by_number[6] = { - { - "album", - 1, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(AlbumGroup, n_album), - offsetof(AlbumGroup, album), - &album__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, + { "ALBUM", "SPOTIFY__METADATA__ALBUM__TYPE__ALBUM", 1 }, + { "SINGLE", "SPOTIFY__METADATA__ALBUM__TYPE__SINGLE", 2 }, + { "COMPILATION", "SPOTIFY__METADATA__ALBUM__TYPE__COMPILATION", 3 }, + { "EP", "SPOTIFY__METADATA__ALBUM__TYPE__EP", 4 }, + { "AUDIOBOOK", "SPOTIFY__METADATA__ALBUM__TYPE__AUDIOBOOK", 5 }, + { "PODCAST", "SPOTIFY__METADATA__ALBUM__TYPE__PODCAST", 6 }, }; -static const unsigned album_group__field_indices_by_name[] = { - 0, /* field[0] = album */ +static const ProtobufCIntRange spotify__metadata__album__type__value_ranges[] = { +{1, 0},{0, 6} }; -static const ProtobufCIntRange album_group__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor album_group__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "AlbumGroup", - "AlbumGroup", - "AlbumGroup", - "", - sizeof(AlbumGroup), - 1, - album_group__field_descriptors, - album_group__field_indices_by_name, - 1, album_group__number_ranges, - (ProtobufCMessageInit) album_group__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor date__field_descriptors[5] = -{ - { - "year", - 1, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_SINT32, - offsetof(Date, has_year), - offsetof(Date, year), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "month", - 2, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_SINT32, - offsetof(Date, has_month), - offsetof(Date, month), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "day", - 3, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_SINT32, - offsetof(Date, has_day), - offsetof(Date, day), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "hour", - 4, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_SINT32, - offsetof(Date, has_hour), - offsetof(Date, hour), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "minute", - 5, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_SINT32, - offsetof(Date, has_minute), - offsetof(Date, minute), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned date__field_indices_by_name[] = { - 2, /* field[2] = day */ - 3, /* field[3] = hour */ - 4, /* field[4] = minute */ - 1, /* field[1] = month */ - 0, /* field[0] = year */ -}; -static const ProtobufCIntRange date__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 5 } -}; -const ProtobufCMessageDescriptor date__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Date", - "Date", - "Date", - "", - sizeof(Date), - 5, - date__field_descriptors, - date__field_indices_by_name, - 1, date__number_ranges, - (ProtobufCMessageInit) date__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCEnumValue album__type__enum_values_by_number[4] = -{ - { "ALBUM", "ALBUM__TYPE__ALBUM", 1 }, - { "SINGLE", "ALBUM__TYPE__SINGLE", 2 }, - { "COMPILATION", "ALBUM__TYPE__COMPILATION", 3 }, - { "EP", "ALBUM__TYPE__EP", 4 }, -}; -static const ProtobufCIntRange album__type__value_ranges[] = { -{1, 0},{0, 4} -}; -static const ProtobufCEnumValueIndex album__type__enum_values_by_name[4] = +static const ProtobufCEnumValueIndex spotify__metadata__album__type__enum_values_by_name[6] = { { "ALBUM", 0 }, + { "AUDIOBOOK", 4 }, { "COMPILATION", 2 }, { "EP", 3 }, + { "PODCAST", 5 }, { "SINGLE", 1 }, }; -const ProtobufCEnumDescriptor album__type__descriptor = +const ProtobufCEnumDescriptor spotify__metadata__album__type__descriptor = { PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "Album.Type", + "spotify.metadata.Album.Type", "Type", - "Album__Type", - "", - 4, - album__type__enum_values_by_number, - 4, - album__type__enum_values_by_name, + "Spotify__Metadata__Album__Type", + "spotify.metadata", + 6, + spotify__metadata__album__type__enum_values_by_number, + 6, + spotify__metadata__album__type__enum_values_by_name, 1, - album__type__value_ranges, + spotify__metadata__album__type__value_ranges, NULL,NULL,NULL,NULL /* reserved[1234] */ }; -static const ProtobufCFieldDescriptor album__field_descriptors[17] = +static const ProtobufCFieldDescriptor spotify__metadata__album__field_descriptors[21] = { { "gid", 1, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_BYTES, - offsetof(Album, has_gid), - offsetof(Album, gid), + offsetof(Spotify__Metadata__Album, has_gid), + offsetof(Spotify__Metadata__Album, gid), NULL, NULL, 0, /* flags */ @@ -1538,7 +1371,7 @@ static const ProtobufCFieldDescriptor album__field_descriptors[17] = PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Album, name), + offsetof(Spotify__Metadata__Album, name), NULL, NULL, 0, /* flags */ @@ -1549,21 +1382,21 @@ static const ProtobufCFieldDescriptor album__field_descriptors[17] = 3, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Album, n_artist), - offsetof(Album, artist), - &artist__descriptor, + offsetof(Spotify__Metadata__Album, n_artist), + offsetof(Spotify__Metadata__Album, artist), + &spotify__metadata__artist__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { - "typ", + "type", 4, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_ENUM, - offsetof(Album, has_typ), - offsetof(Album, typ), - &album__type__descriptor, + offsetof(Spotify__Metadata__Album, has_type), + offsetof(Spotify__Metadata__Album, type), + &spotify__metadata__album__type__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1574,7 +1407,7 @@ static const ProtobufCFieldDescriptor album__field_descriptors[17] = PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Album, label), + offsetof(Spotify__Metadata__Album, label), NULL, NULL, 0, /* flags */ @@ -1586,8 +1419,8 @@ static const ProtobufCFieldDescriptor album__field_descriptors[17] = PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_MESSAGE, 0, /* quantifier_offset */ - offsetof(Album, date), - &date__descriptor, + offsetof(Spotify__Metadata__Album, date), + &spotify__metadata__date__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1597,8 +1430,8 @@ static const ProtobufCFieldDescriptor album__field_descriptors[17] = 7, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_SINT32, - offsetof(Album, has_popularity), - offsetof(Album, popularity), + offsetof(Spotify__Metadata__Album, has_popularity), + offsetof(Spotify__Metadata__Album, popularity), NULL, NULL, 0, /* flags */ @@ -1609,8 +1442,8 @@ static const ProtobufCFieldDescriptor album__field_descriptors[17] = 8, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_STRING, - offsetof(Album, n_genre), - offsetof(Album, genre), + offsetof(Spotify__Metadata__Album, n_genre), + offsetof(Spotify__Metadata__Album, genre), NULL, NULL, 0, /* flags */ @@ -1621,9 +1454,9 @@ static const ProtobufCFieldDescriptor album__field_descriptors[17] = 9, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Album, n_cover), - offsetof(Album, cover), - &image__descriptor, + offsetof(Spotify__Metadata__Album, n_cover), + offsetof(Spotify__Metadata__Album, cover), + &spotify__metadata__image__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1633,9 +1466,9 @@ static const ProtobufCFieldDescriptor album__field_descriptors[17] = 10, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Album, n_external_id), - offsetof(Album, external_id), - &external_id__descriptor, + offsetof(Spotify__Metadata__Album, n_external_id), + offsetof(Spotify__Metadata__Album, external_id), + &spotify__metadata__external_id__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1645,9 +1478,9 @@ static const ProtobufCFieldDescriptor album__field_descriptors[17] = 11, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Album, n_disc), - offsetof(Album, disc), - &disc__descriptor, + offsetof(Spotify__Metadata__Album, n_disc), + offsetof(Spotify__Metadata__Album, disc), + &spotify__metadata__disc__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1657,8 +1490,8 @@ static const ProtobufCFieldDescriptor album__field_descriptors[17] = 12, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_STRING, - offsetof(Album, n_review), - offsetof(Album, review), + offsetof(Spotify__Metadata__Album, n_review), + offsetof(Spotify__Metadata__Album, review), NULL, NULL, 0, /* flags */ @@ -1669,9 +1502,9 @@ static const ProtobufCFieldDescriptor album__field_descriptors[17] = 13, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Album, n_copyright), - offsetof(Album, copyright), - ©right__descriptor, + offsetof(Spotify__Metadata__Album, n_copyright), + offsetof(Spotify__Metadata__Album, copyright), + &spotify__metadata__copyright__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1681,9 +1514,9 @@ static const ProtobufCFieldDescriptor album__field_descriptors[17] = 14, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Album, n_restriction), - offsetof(Album, restriction), - &restriction__descriptor, + offsetof(Spotify__Metadata__Album, n_restriction), + offsetof(Spotify__Metadata__Album, restriction), + &spotify__metadata__restriction__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1693,9 +1526,9 @@ static const ProtobufCFieldDescriptor album__field_descriptors[17] = 15, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Album, n_related), - offsetof(Album, related), - &album__descriptor, + offsetof(Spotify__Metadata__Album, n_related), + offsetof(Spotify__Metadata__Album, related), + &spotify__metadata__album__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1705,9 +1538,9 @@ static const ProtobufCFieldDescriptor album__field_descriptors[17] = 16, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Album, n_sale_period), - offsetof(Album, sale_period), - &sale_period__descriptor, + offsetof(Spotify__Metadata__Album, n_sale_period), + offsetof(Spotify__Metadata__Album, sale_period), + &spotify__metadata__sale_period__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1718,15 +1551,64 @@ static const ProtobufCFieldDescriptor album__field_descriptors[17] = PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_MESSAGE, 0, /* quantifier_offset */ - offsetof(Album, cover_group), - &image_group__descriptor, + offsetof(Spotify__Metadata__Album, cover_group), + &spotify__metadata__image_group__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "original_title", + 18, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Spotify__Metadata__Album, original_title), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "version_title", + 19, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Spotify__Metadata__Album, version_title), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "type_str", + 20, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Spotify__Metadata__Album, type_str), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "availability", + 23, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Spotify__Metadata__Album, n_availability), + offsetof(Spotify__Metadata__Album, availability), + &spotify__metadata__availability__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; -static const unsigned album__field_indices_by_name[] = { +static const unsigned spotify__metadata__album__field_indices_by_name[] = { 2, /* field[2] = artist */ + 20, /* field[20] = availability */ 12, /* field[12] = copyright */ 8, /* field[8] = cover */ 16, /* field[16] = cover_group */ @@ -1737,42 +1619,46 @@ static const unsigned album__field_indices_by_name[] = { 0, /* field[0] = gid */ 4, /* field[4] = label */ 1, /* field[1] = name */ + 17, /* field[17] = original_title */ 6, /* field[6] = popularity */ 14, /* field[14] = related */ 13, /* field[13] = restriction */ 11, /* field[11] = review */ 15, /* field[15] = sale_period */ - 3, /* field[3] = typ */ + 3, /* field[3] = type */ + 19, /* field[19] = type_str */ + 18, /* field[18] = version_title */ }; -static const ProtobufCIntRange album__number_ranges[1 + 1] = +static const ProtobufCIntRange spotify__metadata__album__number_ranges[2 + 1] = { { 1, 0 }, - { 0, 17 } + { 23, 20 }, + { 0, 21 } }; -const ProtobufCMessageDescriptor album__descriptor = +const ProtobufCMessageDescriptor spotify__metadata__album__descriptor = { PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "spotify.metadata.Album", "Album", - "Album", - "Album", - "", - sizeof(Album), - 17, - album__field_descriptors, - album__field_indices_by_name, - 1, album__number_ranges, - (ProtobufCMessageInit) album__init, + "Spotify__Metadata__Album", + "spotify.metadata", + sizeof(Spotify__Metadata__Album), + 21, + spotify__metadata__album__field_descriptors, + spotify__metadata__album__field_indices_by_name, + 2, spotify__metadata__album__number_ranges, + (ProtobufCMessageInit) spotify__metadata__album__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor track__field_descriptors[15] = +static const ProtobufCFieldDescriptor spotify__metadata__track__field_descriptors[25] = { { "gid", 1, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_BYTES, - offsetof(Track, has_gid), - offsetof(Track, gid), + offsetof(Spotify__Metadata__Track, has_gid), + offsetof(Spotify__Metadata__Track, gid), NULL, NULL, 0, /* flags */ @@ -1784,7 +1670,7 @@ static const ProtobufCFieldDescriptor track__field_descriptors[15] = PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Track, name), + offsetof(Spotify__Metadata__Track, name), NULL, NULL, 0, /* flags */ @@ -1796,8 +1682,8 @@ static const ProtobufCFieldDescriptor track__field_descriptors[15] = PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_MESSAGE, 0, /* quantifier_offset */ - offsetof(Track, album), - &album__descriptor, + offsetof(Spotify__Metadata__Track, album), + &spotify__metadata__album__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1807,9 +1693,9 @@ static const ProtobufCFieldDescriptor track__field_descriptors[15] = 4, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Track, n_artist), - offsetof(Track, artist), - &artist__descriptor, + offsetof(Spotify__Metadata__Track, n_artist), + offsetof(Spotify__Metadata__Track, artist), + &spotify__metadata__artist__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1819,8 +1705,8 @@ static const ProtobufCFieldDescriptor track__field_descriptors[15] = 5, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_SINT32, - offsetof(Track, has_number), - offsetof(Track, number), + offsetof(Spotify__Metadata__Track, has_number), + offsetof(Spotify__Metadata__Track, number), NULL, NULL, 0, /* flags */ @@ -1831,8 +1717,8 @@ static const ProtobufCFieldDescriptor track__field_descriptors[15] = 6, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_SINT32, - offsetof(Track, has_disc_number), - offsetof(Track, disc_number), + offsetof(Spotify__Metadata__Track, has_disc_number), + offsetof(Spotify__Metadata__Track, disc_number), NULL, NULL, 0, /* flags */ @@ -1843,8 +1729,8 @@ static const ProtobufCFieldDescriptor track__field_descriptors[15] = 7, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_SINT32, - offsetof(Track, has_duration), - offsetof(Track, duration), + offsetof(Spotify__Metadata__Track, has_duration), + offsetof(Spotify__Metadata__Track, duration), NULL, NULL, 0, /* flags */ @@ -1855,8 +1741,8 @@ static const ProtobufCFieldDescriptor track__field_descriptors[15] = 8, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_SINT32, - offsetof(Track, has_popularity), - offsetof(Track, popularity), + offsetof(Spotify__Metadata__Track, has_popularity), + offsetof(Spotify__Metadata__Track, popularity), NULL, NULL, 0, /* flags */ @@ -1867,8 +1753,8 @@ static const ProtobufCFieldDescriptor track__field_descriptors[15] = 9, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_BOOL, - offsetof(Track, has_explicit_), - offsetof(Track, explicit_), + offsetof(Spotify__Metadata__Track, has_explicit_), + offsetof(Spotify__Metadata__Track, explicit_), NULL, NULL, 0, /* flags */ @@ -1879,9 +1765,9 @@ static const ProtobufCFieldDescriptor track__field_descriptors[15] = 10, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Track, n_external_id), - offsetof(Track, external_id), - &external_id__descriptor, + offsetof(Spotify__Metadata__Track, n_external_id), + offsetof(Spotify__Metadata__Track, external_id), + &spotify__metadata__external_id__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1891,9 +1777,9 @@ static const ProtobufCFieldDescriptor track__field_descriptors[15] = 11, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Track, n_restriction), - offsetof(Track, restriction), - &restriction__descriptor, + offsetof(Spotify__Metadata__Track, n_restriction), + offsetof(Spotify__Metadata__Track, restriction), + &spotify__metadata__restriction__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1903,9 +1789,9 @@ static const ProtobufCFieldDescriptor track__field_descriptors[15] = 12, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Track, n_file), - offsetof(Track, file), - &audio_file__descriptor, + offsetof(Spotify__Metadata__Track, n_file), + offsetof(Spotify__Metadata__Track, file), + &spotify__metadata__audio_file__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1915,9 +1801,9 @@ static const ProtobufCFieldDescriptor track__field_descriptors[15] = 13, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Track, n_alternative), - offsetof(Track, alternative), - &track__descriptor, + offsetof(Spotify__Metadata__Track, n_alternative), + offsetof(Spotify__Metadata__Track, alternative), + &spotify__metadata__track__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1927,9 +1813,9 @@ static const ProtobufCFieldDescriptor track__field_descriptors[15] = 14, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Track, n_sale_period), - offsetof(Track, sale_period), - &sale_period__descriptor, + offsetof(Spotify__Metadata__Track, n_sale_period), + offsetof(Spotify__Metadata__Track, sale_period), + &spotify__metadata__sale_period__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1939,961 +1825,358 @@ static const ProtobufCFieldDescriptor track__field_descriptors[15] = 15, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Track, n_preview), - offsetof(Track, preview), - &audio_file__descriptor, + offsetof(Spotify__Metadata__Track, n_preview), + offsetof(Spotify__Metadata__Track, preview), + &spotify__metadata__audio_file__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "tags", + 16, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_STRING, + offsetof(Spotify__Metadata__Track, n_tags), + offsetof(Spotify__Metadata__Track, tags), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "earliest_live_timestamp", + 17, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_INT64, + offsetof(Spotify__Metadata__Track, has_earliest_live_timestamp), + offsetof(Spotify__Metadata__Track, earliest_live_timestamp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "has_lyrics", + 18, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_BOOL, + offsetof(Spotify__Metadata__Track, has_has_lyrics), + offsetof(Spotify__Metadata__Track, has_lyrics), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "availability", + 19, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Spotify__Metadata__Track, n_availability), + offsetof(Spotify__Metadata__Track, availability), + &spotify__metadata__availability__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "licensor", + 21, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(Spotify__Metadata__Track, licensor), + &spotify__metadata__licensor__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "language_of_performance", + 22, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_STRING, + offsetof(Spotify__Metadata__Track, n_language_of_performance), + offsetof(Spotify__Metadata__Track, language_of_performance), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "content_rating", + 25, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Spotify__Metadata__Track, n_content_rating), + offsetof(Spotify__Metadata__Track, content_rating), + &spotify__metadata__content_rating__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "original_title", + 27, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Spotify__Metadata__Track, original_title), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "version_title", + 28, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Spotify__Metadata__Track, version_title), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "artist_with_role", + 32, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Spotify__Metadata__Track, n_artist_with_role), + offsetof(Spotify__Metadata__Track, artist_with_role), + &spotify__metadata__artist_with_role__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; -static const unsigned track__field_indices_by_name[] = { +static const unsigned spotify__metadata__track__field_indices_by_name[] = { 2, /* field[2] = album */ 12, /* field[12] = alternative */ 3, /* field[3] = artist */ + 24, /* field[24] = artist_with_role */ + 18, /* field[18] = availability */ + 21, /* field[21] = content_rating */ 5, /* field[5] = disc_number */ 6, /* field[6] = duration */ + 16, /* field[16] = earliest_live_timestamp */ 8, /* field[8] = explicit */ 9, /* field[9] = external_id */ 11, /* field[11] = file */ 0, /* field[0] = gid */ + 17, /* field[17] = has_lyrics */ + 20, /* field[20] = language_of_performance */ + 19, /* field[19] = licensor */ 1, /* field[1] = name */ 4, /* field[4] = number */ + 22, /* field[22] = original_title */ 7, /* field[7] = popularity */ 14, /* field[14] = preview */ 10, /* field[10] = restriction */ 13, /* field[13] = sale_period */ + 15, /* field[15] = tags */ + 23, /* field[23] = version_title */ }; -static const ProtobufCIntRange track__number_ranges[1 + 1] = +static const ProtobufCIntRange spotify__metadata__track__number_ranges[5 + 1] = { { 1, 0 }, - { 0, 15 } + { 21, 19 }, + { 25, 21 }, + { 27, 22 }, + { 32, 24 }, + { 0, 25 } }; -const ProtobufCMessageDescriptor track__descriptor = +const ProtobufCMessageDescriptor spotify__metadata__track__descriptor = { PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "spotify.metadata.Track", "Track", - "Track", - "Track", - "", - sizeof(Track), - 15, - track__field_descriptors, - track__field_indices_by_name, - 1, track__number_ranges, - (ProtobufCMessageInit) track__init, + "Spotify__Metadata__Track", + "spotify.metadata", + sizeof(Spotify__Metadata__Track), + 25, + spotify__metadata__track__field_descriptors, + spotify__metadata__track__field_indices_by_name, + 5, spotify__metadata__track__number_ranges, + (ProtobufCMessageInit) spotify__metadata__track__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCEnumValue image__size__enum_values_by_number[4] = +static const ProtobufCEnumValue spotify__metadata__artist_with_role__artist_role__enum_values_by_number[8] = { - { "DEFAULT", "IMAGE__SIZE__DEFAULT", 0 }, - { "SMALL", "IMAGE__SIZE__SMALL", 1 }, - { "LARGE", "IMAGE__SIZE__LARGE", 2 }, - { "XLARGE", "IMAGE__SIZE__XLARGE", 3 }, + { "ARTIST_ROLE_UNKNOWN", "SPOTIFY__METADATA__ARTIST_WITH_ROLE__ARTIST_ROLE__ARTIST_ROLE_UNKNOWN", 0 }, + { "ARTIST_ROLE_MAIN_ARTIST", "SPOTIFY__METADATA__ARTIST_WITH_ROLE__ARTIST_ROLE__ARTIST_ROLE_MAIN_ARTIST", 1 }, + { "ARTIST_ROLE_FEATURED_ARTIST", "SPOTIFY__METADATA__ARTIST_WITH_ROLE__ARTIST_ROLE__ARTIST_ROLE_FEATURED_ARTIST", 2 }, + { "ARTIST_ROLE_REMIXER", "SPOTIFY__METADATA__ARTIST_WITH_ROLE__ARTIST_ROLE__ARTIST_ROLE_REMIXER", 3 }, + { "ARTIST_ROLE_ACTOR", "SPOTIFY__METADATA__ARTIST_WITH_ROLE__ARTIST_ROLE__ARTIST_ROLE_ACTOR", 4 }, + { "ARTIST_ROLE_COMPOSER", "SPOTIFY__METADATA__ARTIST_WITH_ROLE__ARTIST_ROLE__ARTIST_ROLE_COMPOSER", 5 }, + { "ARTIST_ROLE_CONDUCTOR", "SPOTIFY__METADATA__ARTIST_WITH_ROLE__ARTIST_ROLE__ARTIST_ROLE_CONDUCTOR", 6 }, + { "ARTIST_ROLE_ORCHESTRA", "SPOTIFY__METADATA__ARTIST_WITH_ROLE__ARTIST_ROLE__ARTIST_ROLE_ORCHESTRA", 7 }, }; -static const ProtobufCIntRange image__size__value_ranges[] = { -{0, 0},{0, 4} +static const ProtobufCIntRange spotify__metadata__artist_with_role__artist_role__value_ranges[] = { +{0, 0},{0, 8} }; -static const ProtobufCEnumValueIndex image__size__enum_values_by_name[4] = +static const ProtobufCEnumValueIndex spotify__metadata__artist_with_role__artist_role__enum_values_by_name[8] = { - { "DEFAULT", 0 }, - { "LARGE", 2 }, - { "SMALL", 1 }, - { "XLARGE", 3 }, + { "ARTIST_ROLE_ACTOR", 4 }, + { "ARTIST_ROLE_COMPOSER", 5 }, + { "ARTIST_ROLE_CONDUCTOR", 6 }, + { "ARTIST_ROLE_FEATURED_ARTIST", 2 }, + { "ARTIST_ROLE_MAIN_ARTIST", 1 }, + { "ARTIST_ROLE_ORCHESTRA", 7 }, + { "ARTIST_ROLE_REMIXER", 3 }, + { "ARTIST_ROLE_UNKNOWN", 0 }, }; -const ProtobufCEnumDescriptor image__size__descriptor = +const ProtobufCEnumDescriptor spotify__metadata__artist_with_role__artist_role__descriptor = { PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "Image.Size", - "Size", - "Image__Size", - "", - 4, - image__size__enum_values_by_number, - 4, - image__size__enum_values_by_name, + "spotify.metadata.ArtistWithRole.ArtistRole", + "ArtistRole", + "Spotify__Metadata__ArtistWithRole__ArtistRole", + "spotify.metadata", + 8, + spotify__metadata__artist_with_role__artist_role__enum_values_by_number, + 8, + spotify__metadata__artist_with_role__artist_role__enum_values_by_name, 1, - image__size__value_ranges, + spotify__metadata__artist_with_role__artist_role__value_ranges, NULL,NULL,NULL,NULL /* reserved[1234] */ }; -static const ProtobufCFieldDescriptor image__field_descriptors[4] = +static const ProtobufCFieldDescriptor spotify__metadata__artist_with_role__field_descriptors[3] = { { - "file_id", + "artist_gid", 1, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_BYTES, - offsetof(Image, has_file_id), - offsetof(Image, file_id), + offsetof(Spotify__Metadata__ArtistWithRole, has_artist_gid), + offsetof(Spotify__Metadata__ArtistWithRole, artist_gid), NULL, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { - "size", + "artist_name", 2, PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_ENUM, - offsetof(Image, has_size), - offsetof(Image, size), - &image__size__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "width", - 3, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_SINT32, - offsetof(Image, has_width), - offsetof(Image, width), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "height", - 4, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_SINT32, - offsetof(Image, has_height), - offsetof(Image, height), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned image__field_indices_by_name[] = { - 0, /* field[0] = file_id */ - 3, /* field[3] = height */ - 1, /* field[1] = size */ - 2, /* field[2] = width */ -}; -static const ProtobufCIntRange image__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 4 } -}; -const ProtobufCMessageDescriptor image__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Image", - "Image", - "Image", - "", - sizeof(Image), - 4, - image__field_descriptors, - image__field_indices_by_name, - 1, image__number_ranges, - (ProtobufCMessageInit) image__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor image_group__field_descriptors[1] = -{ - { - "image", - 1, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(ImageGroup, n_image), - offsetof(ImageGroup, image), - &image__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned image_group__field_indices_by_name[] = { - 0, /* field[0] = image */ -}; -static const ProtobufCIntRange image_group__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor image_group__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "ImageGroup", - "ImageGroup", - "ImageGroup", - "", - sizeof(ImageGroup), - 1, - image_group__field_descriptors, - image_group__field_indices_by_name, - 1, image_group__number_ranges, - (ProtobufCMessageInit) image_group__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor biography__field_descriptors[3] = -{ - { - "text", - 1, - PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Biography, text), + offsetof(Spotify__Metadata__ArtistWithRole, artist_name), NULL, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { - "portrait", - 2, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Biography, n_portrait), - offsetof(Biography, portrait), - &image__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "portrait_group", + "role", 3, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Biography, n_portrait_group), - offsetof(Biography, portrait_group), - &image_group__descriptor, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_ENUM, + offsetof(Spotify__Metadata__ArtistWithRole, has_role), + offsetof(Spotify__Metadata__ArtistWithRole, role), + &spotify__metadata__artist_with_role__artist_role__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; -static const unsigned biography__field_indices_by_name[] = { - 1, /* field[1] = portrait */ - 2, /* field[2] = portrait_group */ - 0, /* field[0] = text */ +static const unsigned spotify__metadata__artist_with_role__field_indices_by_name[] = { + 0, /* field[0] = artist_gid */ + 1, /* field[1] = artist_name */ + 2, /* field[2] = role */ }; -static const ProtobufCIntRange biography__number_ranges[1 + 1] = +static const ProtobufCIntRange spotify__metadata__artist_with_role__number_ranges[1 + 1] = { { 1, 0 }, { 0, 3 } }; -const ProtobufCMessageDescriptor biography__descriptor = +const ProtobufCMessageDescriptor spotify__metadata__artist_with_role__descriptor = { PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Biography", - "Biography", - "Biography", - "", - sizeof(Biography), + "spotify.metadata.ArtistWithRole", + "ArtistWithRole", + "Spotify__Metadata__ArtistWithRole", + "spotify.metadata", + sizeof(Spotify__Metadata__ArtistWithRole), 3, - biography__field_descriptors, - biography__field_indices_by_name, - 1, biography__number_ranges, - (ProtobufCMessageInit) biography__init, + spotify__metadata__artist_with_role__field_descriptors, + spotify__metadata__artist_with_role__field_indices_by_name, + 1, spotify__metadata__artist_with_role__number_ranges, + (ProtobufCMessageInit) spotify__metadata__artist_with_role__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor disc__field_descriptors[3] = +static const ProtobufCEnumValue spotify__metadata__show__media_type__enum_values_by_number[3] = { - { - "number", - 1, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_SINT32, - offsetof(Disc, has_number), - offsetof(Disc, number), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "name", - 2, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Disc, name), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "track", - 3, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Disc, n_track), - offsetof(Disc, track), - &track__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, + { "MIXED", "SPOTIFY__METADATA__SHOW__MEDIA_TYPE__MIXED", 0 }, + { "AUDIO", "SPOTIFY__METADATA__SHOW__MEDIA_TYPE__AUDIO", 1 }, + { "VIDEO", "SPOTIFY__METADATA__SHOW__MEDIA_TYPE__VIDEO", 2 }, }; -static const unsigned disc__field_indices_by_name[] = { - 1, /* field[1] = name */ - 0, /* field[0] = number */ - 2, /* field[2] = track */ -}; -static const ProtobufCIntRange disc__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 3 } -}; -const ProtobufCMessageDescriptor disc__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Disc", - "Disc", - "Disc", - "", - sizeof(Disc), - 3, - disc__field_descriptors, - disc__field_indices_by_name, - 1, disc__number_ranges, - (ProtobufCMessageInit) disc__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCEnumValue copyright__type__enum_values_by_number[2] = -{ - { "P", "COPYRIGHT__TYPE__P", 0 }, - { "C", "COPYRIGHT__TYPE__C", 1 }, -}; -static const ProtobufCIntRange copyright__type__value_ranges[] = { -{0, 0},{0, 2} -}; -static const ProtobufCEnumValueIndex copyright__type__enum_values_by_name[2] = -{ - { "C", 1 }, - { "P", 0 }, -}; -const ProtobufCEnumDescriptor copyright__type__descriptor = -{ - PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "Copyright.Type", - "Type", - "Copyright__Type", - "", - 2, - copyright__type__enum_values_by_number, - 2, - copyright__type__enum_values_by_name, - 1, - copyright__type__value_ranges, - NULL,NULL,NULL,NULL /* reserved[1234] */ -}; -static const ProtobufCFieldDescriptor copyright__field_descriptors[2] = -{ - { - "typ", - 1, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_ENUM, - offsetof(Copyright, has_typ), - offsetof(Copyright, typ), - ©right__type__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "text", - 2, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Copyright, text), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned copyright__field_indices_by_name[] = { - 1, /* field[1] = text */ - 0, /* field[0] = typ */ -}; -static const ProtobufCIntRange copyright__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor copyright__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Copyright", - "Copyright", - "Copyright", - "", - sizeof(Copyright), - 2, - copyright__field_descriptors, - copyright__field_indices_by_name, - 1, copyright__number_ranges, - (ProtobufCMessageInit) copyright__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCEnumValue restriction__catalogue__enum_values_by_number[5] = -{ - { "AD", "RESTRICTION__CATALOGUE__AD", 0 }, - { "SUBSCRIPTION", "RESTRICTION__CATALOGUE__SUBSCRIPTION", 1 }, - { "CATALOGUE_ALL", "RESTRICTION__CATALOGUE__CATALOGUE_ALL", 2 }, - { "SHUFFLE", "RESTRICTION__CATALOGUE__SHUFFLE", 3 }, - { "COMMERCIAL", "RESTRICTION__CATALOGUE__COMMERCIAL", 4 }, -}; -static const ProtobufCIntRange restriction__catalogue__value_ranges[] = { -{0, 0},{0, 5} -}; -static const ProtobufCEnumValueIndex restriction__catalogue__enum_values_by_name[5] = -{ - { "AD", 0 }, - { "CATALOGUE_ALL", 2 }, - { "COMMERCIAL", 4 }, - { "SHUFFLE", 3 }, - { "SUBSCRIPTION", 1 }, -}; -const ProtobufCEnumDescriptor restriction__catalogue__descriptor = -{ - PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "Restriction.Catalogue", - "Catalogue", - "Restriction__Catalogue", - "", - 5, - restriction__catalogue__enum_values_by_number, - 5, - restriction__catalogue__enum_values_by_name, - 1, - restriction__catalogue__value_ranges, - NULL,NULL,NULL,NULL /* reserved[1234] */ -}; -static const ProtobufCEnumValue restriction__type__enum_values_by_number[1] = -{ - { "STREAMING", "RESTRICTION__TYPE__STREAMING", 0 }, -}; -static const ProtobufCIntRange restriction__type__value_ranges[] = { -{0, 0},{0, 1} -}; -static const ProtobufCEnumValueIndex restriction__type__enum_values_by_name[1] = -{ - { "STREAMING", 0 }, -}; -const ProtobufCEnumDescriptor restriction__type__descriptor = -{ - PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "Restriction.Type", - "Type", - "Restriction__Type", - "", - 1, - restriction__type__enum_values_by_number, - 1, - restriction__type__enum_values_by_name, - 1, - restriction__type__value_ranges, - NULL,NULL,NULL,NULL /* reserved[1234] */ -}; -static const ProtobufCFieldDescriptor restriction__field_descriptors[5] = -{ - { - "catalogue", - 1, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_ENUM, - offsetof(Restriction, n_catalogue), - offsetof(Restriction, catalogue), - &restriction__catalogue__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "countries_allowed", - 2, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Restriction, countries_allowed), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "countries_forbidden", - 3, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Restriction, countries_forbidden), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "typ", - 4, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_ENUM, - offsetof(Restriction, has_typ), - offsetof(Restriction, typ), - &restriction__type__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "catalogue_str", - 5, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_STRING, - offsetof(Restriction, n_catalogue_str), - offsetof(Restriction, catalogue_str), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned restriction__field_indices_by_name[] = { - 0, /* field[0] = catalogue */ - 4, /* field[4] = catalogue_str */ - 1, /* field[1] = countries_allowed */ - 2, /* field[2] = countries_forbidden */ - 3, /* field[3] = typ */ -}; -static const ProtobufCIntRange restriction__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 5 } -}; -const ProtobufCMessageDescriptor restriction__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Restriction", - "Restriction", - "Restriction", - "", - sizeof(Restriction), - 5, - restriction__field_descriptors, - restriction__field_indices_by_name, - 1, restriction__number_ranges, - (ProtobufCMessageInit) restriction__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor availability__field_descriptors[2] = -{ - { - "catalogue_str", - 1, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_STRING, - offsetof(Availability, n_catalogue_str), - offsetof(Availability, catalogue_str), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "start", - 2, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(Availability, start), - &date__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned availability__field_indices_by_name[] = { - 0, /* field[0] = catalogue_str */ - 1, /* field[1] = start */ -}; -static const ProtobufCIntRange availability__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor availability__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Availability", - "Availability", - "Availability", - "", - sizeof(Availability), - 2, - availability__field_descriptors, - availability__field_indices_by_name, - 1, availability__number_ranges, - (ProtobufCMessageInit) availability__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor sale_period__field_descriptors[3] = -{ - { - "restriction", - 1, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(SalePeriod, n_restriction), - offsetof(SalePeriod, restriction), - &restriction__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "start", - 2, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(SalePeriod, start), - &date__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "end", - 3, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(SalePeriod, end), - &date__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned sale_period__field_indices_by_name[] = { - 2, /* field[2] = end */ - 0, /* field[0] = restriction */ - 1, /* field[1] = start */ -}; -static const ProtobufCIntRange sale_period__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 3 } -}; -const ProtobufCMessageDescriptor sale_period__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "SalePeriod", - "SalePeriod", - "SalePeriod", - "", - sizeof(SalePeriod), - 3, - sale_period__field_descriptors, - sale_period__field_indices_by_name, - 1, sale_period__number_ranges, - (ProtobufCMessageInit) sale_period__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor external_id__field_descriptors[2] = -{ - { - "typ", - 1, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(ExternalId, typ), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "id", - 2, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(ExternalId, id), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned external_id__field_indices_by_name[] = { - 1, /* field[1] = id */ - 0, /* field[0] = typ */ -}; -static const ProtobufCIntRange external_id__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor external_id__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "ExternalId", - "ExternalId", - "ExternalId", - "", - sizeof(ExternalId), - 2, - external_id__field_descriptors, - external_id__field_indices_by_name, - 1, external_id__number_ranges, - (ProtobufCMessageInit) external_id__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCEnumValue audio_file__format__enum_values_by_number[14] = -{ - { "OGG_VORBIS_96", "AUDIO_FILE__FORMAT__OGG_VORBIS_96", 0 }, - { "OGG_VORBIS_160", "AUDIO_FILE__FORMAT__OGG_VORBIS_160", 1 }, - { "OGG_VORBIS_320", "AUDIO_FILE__FORMAT__OGG_VORBIS_320", 2 }, - { "MP3_256", "AUDIO_FILE__FORMAT__MP3_256", 3 }, - { "MP3_320", "AUDIO_FILE__FORMAT__MP3_320", 4 }, - { "MP3_160", "AUDIO_FILE__FORMAT__MP3_160", 5 }, - { "MP3_96", "AUDIO_FILE__FORMAT__MP3_96", 6 }, - { "MP3_160_ENC", "AUDIO_FILE__FORMAT__MP3_160_ENC", 7 }, - { "MP4_128_DUAL", "AUDIO_FILE__FORMAT__MP4_128_DUAL", 8 }, - { "OTHER3", "AUDIO_FILE__FORMAT__OTHER3", 9 }, - { "AAC_160", "AUDIO_FILE__FORMAT__AAC_160", 10 }, - { "AAC_320", "AUDIO_FILE__FORMAT__AAC_320", 11 }, - { "MP4_128", "AUDIO_FILE__FORMAT__MP4_128", 12 }, - { "OTHER5", "AUDIO_FILE__FORMAT__OTHER5", 13 }, -}; -static const ProtobufCIntRange audio_file__format__value_ranges[] = { -{0, 0},{0, 14} -}; -static const ProtobufCEnumValueIndex audio_file__format__enum_values_by_name[14] = -{ - { "AAC_160", 10 }, - { "AAC_320", 11 }, - { "MP3_160", 5 }, - { "MP3_160_ENC", 7 }, - { "MP3_256", 3 }, - { "MP3_320", 4 }, - { "MP3_96", 6 }, - { "MP4_128", 12 }, - { "MP4_128_DUAL", 8 }, - { "OGG_VORBIS_160", 1 }, - { "OGG_VORBIS_320", 2 }, - { "OGG_VORBIS_96", 0 }, - { "OTHER3", 9 }, - { "OTHER5", 13 }, -}; -const ProtobufCEnumDescriptor audio_file__format__descriptor = -{ - PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "AudioFile.Format", - "Format", - "AudioFile__Format", - "", - 14, - audio_file__format__enum_values_by_number, - 14, - audio_file__format__enum_values_by_name, - 1, - audio_file__format__value_ranges, - NULL,NULL,NULL,NULL /* reserved[1234] */ -}; -static const ProtobufCFieldDescriptor audio_file__field_descriptors[2] = -{ - { - "file_id", - 1, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_BYTES, - offsetof(AudioFile, has_file_id), - offsetof(AudioFile, file_id), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "format", - 2, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_ENUM, - offsetof(AudioFile, has_format), - offsetof(AudioFile, format), - &audio_file__format__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned audio_file__field_indices_by_name[] = { - 0, /* field[0] = file_id */ - 1, /* field[1] = format */ -}; -static const ProtobufCIntRange audio_file__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor audio_file__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "AudioFile", - "AudioFile", - "AudioFile", - "", - sizeof(AudioFile), - 2, - audio_file__field_descriptors, - audio_file__field_indices_by_name, - 1, audio_file__number_ranges, - (ProtobufCMessageInit) audio_file__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor video_file__field_descriptors[1] = -{ - { - "file_id", - 1, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_BYTES, - offsetof(VideoFile, has_file_id), - offsetof(VideoFile, file_id), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned video_file__field_indices_by_name[] = { - 0, /* field[0] = file_id */ -}; -static const ProtobufCIntRange video_file__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor video_file__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "VideoFile", - "VideoFile", - "VideoFile", - "", - sizeof(VideoFile), - 1, - video_file__field_descriptors, - video_file__field_indices_by_name, - 1, video_file__number_ranges, - (ProtobufCMessageInit) video_file__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCEnumValue show__media_type__enum_values_by_number[3] = -{ - { "MIXED", "SHOW__MEDIA_TYPE__MIXED", 0 }, - { "AUDIO", "SHOW__MEDIA_TYPE__AUDIO", 1 }, - { "VIDEO", "SHOW__MEDIA_TYPE__VIDEO", 2 }, -}; -static const ProtobufCIntRange show__media_type__value_ranges[] = { +static const ProtobufCIntRange spotify__metadata__show__media_type__value_ranges[] = { {0, 0},{0, 3} }; -static const ProtobufCEnumValueIndex show__media_type__enum_values_by_name[3] = +static const ProtobufCEnumValueIndex spotify__metadata__show__media_type__enum_values_by_name[3] = { { "AUDIO", 1 }, { "MIXED", 0 }, { "VIDEO", 2 }, }; -const ProtobufCEnumDescriptor show__media_type__descriptor = +const ProtobufCEnumDescriptor spotify__metadata__show__media_type__descriptor = { PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "Show.MediaType", + "spotify.metadata.Show.MediaType", "MediaType", - "Show__MediaType", - "", + "Spotify__Metadata__Show__MediaType", + "spotify.metadata", 3, - show__media_type__enum_values_by_number, + spotify__metadata__show__media_type__enum_values_by_number, 3, - show__media_type__enum_values_by_name, + spotify__metadata__show__media_type__enum_values_by_name, 1, - show__media_type__value_ranges, + spotify__metadata__show__media_type__value_ranges, NULL,NULL,NULL,NULL /* reserved[1234] */ }; -static const ProtobufCEnumValue show__consumption_order__enum_values_by_number[3] = +static const ProtobufCEnumValue spotify__metadata__show__consumption_order__enum_values_by_number[3] = { - { "SEQUENTIAL", "SHOW__CONSUMPTION_ORDER__SEQUENTIAL", 1 }, - { "EPISODIC", "SHOW__CONSUMPTION_ORDER__EPISODIC", 2 }, - { "RECENT", "SHOW__CONSUMPTION_ORDER__RECENT", 3 }, + { "SEQUENTIAL", "SPOTIFY__METADATA__SHOW__CONSUMPTION_ORDER__SEQUENTIAL", 1 }, + { "EPISODIC", "SPOTIFY__METADATA__SHOW__CONSUMPTION_ORDER__EPISODIC", 2 }, + { "RECENT", "SPOTIFY__METADATA__SHOW__CONSUMPTION_ORDER__RECENT", 3 }, }; -static const ProtobufCIntRange show__consumption_order__value_ranges[] = { +static const ProtobufCIntRange spotify__metadata__show__consumption_order__value_ranges[] = { {1, 0},{0, 3} }; -static const ProtobufCEnumValueIndex show__consumption_order__enum_values_by_name[3] = +static const ProtobufCEnumValueIndex spotify__metadata__show__consumption_order__enum_values_by_name[3] = { { "EPISODIC", 1 }, { "RECENT", 2 }, { "SEQUENTIAL", 0 }, }; -const ProtobufCEnumDescriptor show__consumption_order__descriptor = +const ProtobufCEnumDescriptor spotify__metadata__show__consumption_order__descriptor = { PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "Show.ConsumptionOrder", + "spotify.metadata.Show.ConsumptionOrder", "ConsumptionOrder", - "Show__ConsumptionOrder", - "", + "Spotify__Metadata__Show__ConsumptionOrder", + "spotify.metadata", 3, - show__consumption_order__enum_values_by_number, + spotify__metadata__show__consumption_order__enum_values_by_number, 3, - show__consumption_order__enum_values_by_name, + spotify__metadata__show__consumption_order__enum_values_by_name, 1, - show__consumption_order__value_ranges, + spotify__metadata__show__consumption_order__value_ranges, NULL,NULL,NULL,NULL /* reserved[1234] */ }; -static const ProtobufCEnumValue show__passthrough_enum__enum_values_by_number[3] = -{ - { "UNKNOWN", "SHOW__PASSTHROUGH_ENUM__UNKNOWN", 0 }, - { "NONE", "SHOW__PASSTHROUGH_ENUM__NONE", 1 }, - { "ALLOWED", "SHOW__PASSTHROUGH_ENUM__ALLOWED", 2 }, -}; -static const ProtobufCIntRange show__passthrough_enum__value_ranges[] = { -{0, 0},{0, 3} -}; -static const ProtobufCEnumValueIndex show__passthrough_enum__enum_values_by_name[3] = -{ - { "ALLOWED", 2 }, - { "NONE", 1 }, - { "UNKNOWN", 0 }, -}; -const ProtobufCEnumDescriptor show__passthrough_enum__descriptor = -{ - PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "Show.PassthroughEnum", - "PassthroughEnum", - "Show__PassthroughEnum", - "", - 3, - show__passthrough_enum__enum_values_by_number, - 3, - show__passthrough_enum__enum_values_by_name, - 1, - show__passthrough_enum__value_ranges, - NULL,NULL,NULL,NULL /* reserved[1234] */ -}; -static const ProtobufCFieldDescriptor show__field_descriptors[19] = +static const ProtobufCFieldDescriptor spotify__metadata__show__field_descriptors[18] = { { "gid", 1, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_BYTES, - offsetof(Show, has_gid), - offsetof(Show, gid), + offsetof(Spotify__Metadata__Show, has_gid), + offsetof(Spotify__Metadata__Show, gid), NULL, NULL, 0, /* flags */ @@ -2905,7 +2188,7 @@ static const ProtobufCFieldDescriptor show__field_descriptors[19] = PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Show, name), + offsetof(Spotify__Metadata__Show, name), NULL, NULL, 0, /* flags */ @@ -2917,7 +2200,7 @@ static const ProtobufCFieldDescriptor show__field_descriptors[19] = PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Show, description), + offsetof(Spotify__Metadata__Show, description), NULL, NULL, 0, /* flags */ @@ -2928,8 +2211,8 @@ static const ProtobufCFieldDescriptor show__field_descriptors[19] = 65, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_SINT32, - offsetof(Show, has_deprecated_popularity), - offsetof(Show, deprecated_popularity), + offsetof(Spotify__Metadata__Show, has_deprecated_popularity), + offsetof(Spotify__Metadata__Show, deprecated_popularity), NULL, NULL, 0, /* flags */ @@ -2941,7 +2224,7 @@ static const ProtobufCFieldDescriptor show__field_descriptors[19] = PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Show, publisher), + offsetof(Spotify__Metadata__Show, publisher), NULL, NULL, 0, /* flags */ @@ -2953,7 +2236,7 @@ static const ProtobufCFieldDescriptor show__field_descriptors[19] = PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Show, language), + offsetof(Spotify__Metadata__Show, language), NULL, NULL, 0, /* flags */ @@ -2964,21 +2247,21 @@ static const ProtobufCFieldDescriptor show__field_descriptors[19] = 68, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_BOOL, - offsetof(Show, has_explicit_), - offsetof(Show, explicit_), + offsetof(Spotify__Metadata__Show, has_explicit_), + offsetof(Spotify__Metadata__Show, explicit_), NULL, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { - "covers", + "cover_image", 69, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_MESSAGE, 0, /* quantifier_offset */ - offsetof(Show, covers), - &image_group__descriptor, + offsetof(Spotify__Metadata__Show, cover_image), + &spotify__metadata__image_group__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -2988,9 +2271,9 @@ static const ProtobufCFieldDescriptor show__field_descriptors[19] = 70, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Show, n_episode), - offsetof(Show, episode), - &episode__descriptor, + offsetof(Spotify__Metadata__Show, n_episode), + offsetof(Spotify__Metadata__Show, episode), + &spotify__metadata__episode__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -3000,9 +2283,9 @@ static const ProtobufCFieldDescriptor show__field_descriptors[19] = 71, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Show, n_copyright), - offsetof(Show, copyright), - ©right__descriptor, + offsetof(Spotify__Metadata__Show, n_copyright), + offsetof(Spotify__Metadata__Show, copyright), + &spotify__metadata__copyright__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -3012,9 +2295,9 @@ static const ProtobufCFieldDescriptor show__field_descriptors[19] = 72, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Show, n_restriction), - offsetof(Show, restriction), - &restriction__descriptor, + offsetof(Spotify__Metadata__Show, n_restriction), + offsetof(Spotify__Metadata__Show, restriction), + &spotify__metadata__restriction__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -3024,8 +2307,8 @@ static const ProtobufCFieldDescriptor show__field_descriptors[19] = 73, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_STRING, - offsetof(Show, n_keyword), - offsetof(Show, keyword), + offsetof(Spotify__Metadata__Show, n_keyword), + offsetof(Spotify__Metadata__Show, keyword), NULL, NULL, 0, /* flags */ @@ -3036,9 +2319,9 @@ static const ProtobufCFieldDescriptor show__field_descriptors[19] = 74, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_ENUM, - offsetof(Show, has_media_type), - offsetof(Show, media_type), - &show__media_type__descriptor, + offsetof(Spotify__Metadata__Show, has_media_type), + offsetof(Spotify__Metadata__Show, media_type), + &spotify__metadata__show__media_type__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -3048,21 +2331,9 @@ static const ProtobufCFieldDescriptor show__field_descriptors[19] = 75, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_ENUM, - offsetof(Show, has_consumption_order), - offsetof(Show, consumption_order), - &show__consumption_order__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "interpret_restriction_using_geoip", - 76, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_BOOL, - offsetof(Show, has_interpret_restriction_using_geoip), - offsetof(Show, interpret_restriction_using_geoip), - NULL, + offsetof(Spotify__Metadata__Show, has_consumption_order), + offsetof(Spotify__Metadata__Show, consumption_order), + &spotify__metadata__show__consumption_order__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -3072,102 +2343,134 @@ static const ProtobufCFieldDescriptor show__field_descriptors[19] = 78, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Show, n_availability), - offsetof(Show, availability), - &availability__descriptor, + offsetof(Spotify__Metadata__Show, n_availability), + offsetof(Spotify__Metadata__Show, availability), + &spotify__metadata__availability__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { - "country_of_origin", - 79, + "trailer_uri", + 83, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Show, country_of_origin), + offsetof(Spotify__Metadata__Show, trailer_uri), NULL, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { - "categories", - 80, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Show, n_categories), - offsetof(Show, categories), - &category__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "passthrough", - 81, + "music_and_talk", + 85, PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_ENUM, - offsetof(Show, has_passthrough), - offsetof(Show, passthrough), - &show__passthrough_enum__descriptor, + PROTOBUF_C_TYPE_BOOL, + offsetof(Spotify__Metadata__Show, has_music_and_talk), + offsetof(Spotify__Metadata__Show, music_and_talk), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "is_audiobook", + 89, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_BOOL, + offsetof(Spotify__Metadata__Show, has_is_audiobook), + offsetof(Spotify__Metadata__Show, is_audiobook), + NULL, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; -static const unsigned show__field_indices_by_name[] = { - 15, /* field[15] = availability */ - 17, /* field[17] = categories */ +static const unsigned spotify__metadata__show__field_indices_by_name[] = { + 14, /* field[14] = availability */ 13, /* field[13] = consumption_order */ 9, /* field[9] = copyright */ - 16, /* field[16] = country_of_origin */ - 7, /* field[7] = covers */ + 7, /* field[7] = cover_image */ 3, /* field[3] = deprecated_popularity */ 2, /* field[2] = description */ 8, /* field[8] = episode */ 6, /* field[6] = explicit */ 0, /* field[0] = gid */ - 14, /* field[14] = interpret_restriction_using_geoip */ + 17, /* field[17] = is_audiobook */ 11, /* field[11] = keyword */ 5, /* field[5] = language */ 12, /* field[12] = media_type */ + 16, /* field[16] = music_and_talk */ 1, /* field[1] = name */ - 18, /* field[18] = passthrough */ 4, /* field[4] = publisher */ 10, /* field[10] = restriction */ + 15, /* field[15] = trailer_uri */ }; -static const ProtobufCIntRange show__number_ranges[3 + 1] = +static const ProtobufCIntRange spotify__metadata__show__number_ranges[6 + 1] = { { 1, 0 }, { 64, 2 }, - { 78, 15 }, - { 0, 19 } + { 78, 14 }, + { 83, 15 }, + { 85, 16 }, + { 89, 17 }, + { 0, 18 } }; -const ProtobufCMessageDescriptor show__descriptor = +const ProtobufCMessageDescriptor spotify__metadata__show__descriptor = { PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "spotify.metadata.Show", "Show", - "Show", - "Show", - "", - sizeof(Show), - 19, - show__field_descriptors, - show__field_indices_by_name, - 3, show__number_ranges, - (ProtobufCMessageInit) show__init, + "Spotify__Metadata__Show", + "spotify.metadata", + sizeof(Spotify__Metadata__Show), + 18, + spotify__metadata__show__field_descriptors, + spotify__metadata__show__field_indices_by_name, + 6, spotify__metadata__show__number_ranges, + (ProtobufCMessageInit) spotify__metadata__show__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor episode__field_descriptors[25] = +static const ProtobufCEnumValue spotify__metadata__episode__episode_type__enum_values_by_number[3] = +{ + { "FULL", "SPOTIFY__METADATA__EPISODE__EPISODE_TYPE__FULL", 0 }, + { "TRAILER", "SPOTIFY__METADATA__EPISODE__EPISODE_TYPE__TRAILER", 1 }, + { "BONUS", "SPOTIFY__METADATA__EPISODE__EPISODE_TYPE__BONUS", 2 }, +}; +static const ProtobufCIntRange spotify__metadata__episode__episode_type__value_ranges[] = { +{0, 0},{0, 3} +}; +static const ProtobufCEnumValueIndex spotify__metadata__episode__episode_type__enum_values_by_name[3] = +{ + { "BONUS", 2 }, + { "FULL", 0 }, + { "TRAILER", 1 }, +}; +const ProtobufCEnumDescriptor spotify__metadata__episode__episode_type__descriptor = +{ + PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, + "spotify.metadata.Episode.EpisodeType", + "EpisodeType", + "Spotify__Metadata__Episode__EpisodeType", + "spotify.metadata", + 3, + spotify__metadata__episode__episode_type__enum_values_by_number, + 3, + spotify__metadata__episode__episode_type__enum_values_by_name, + 1, + spotify__metadata__episode__episode_type__value_ranges, + NULL,NULL,NULL,NULL /* reserved[1234] */ +}; +static const ProtobufCFieldDescriptor spotify__metadata__episode__field_descriptors[25] = { { "gid", 1, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_BYTES, - offsetof(Episode, has_gid), - offsetof(Episode, gid), + offsetof(Spotify__Metadata__Episode, has_gid), + offsetof(Spotify__Metadata__Episode, gid), NULL, NULL, 0, /* flags */ @@ -3179,7 +2482,7 @@ static const ProtobufCFieldDescriptor episode__field_descriptors[25] = PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Episode, name), + offsetof(Spotify__Metadata__Episode, name), NULL, NULL, 0, /* flags */ @@ -3190,33 +2493,21 @@ static const ProtobufCFieldDescriptor episode__field_descriptors[25] = 7, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_SINT32, - offsetof(Episode, has_duration), - offsetof(Episode, duration), + offsetof(Spotify__Metadata__Episode, has_duration), + offsetof(Spotify__Metadata__Episode, duration), NULL, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { - "popularity", - 8, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_SINT32, - offsetof(Episode, has_popularity), - offsetof(Episode, popularity), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "file", + "audio", 12, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Episode, n_file), - offsetof(Episode, file), - &audio_file__descriptor, + offsetof(Spotify__Metadata__Episode, n_audio), + offsetof(Spotify__Metadata__Episode, audio), + &spotify__metadata__audio_file__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -3227,7 +2518,7 @@ static const ProtobufCFieldDescriptor episode__field_descriptors[25] = PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Episode, description), + offsetof(Spotify__Metadata__Episode, description), NULL, NULL, 0, /* flags */ @@ -3238,8 +2529,8 @@ static const ProtobufCFieldDescriptor episode__field_descriptors[25] = 65, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_SINT32, - offsetof(Episode, has_number), - offsetof(Episode, number), + offsetof(Spotify__Metadata__Episode, has_number), + offsetof(Spotify__Metadata__Episode, number), NULL, NULL, 0, /* flags */ @@ -3251,8 +2542,8 @@ static const ProtobufCFieldDescriptor episode__field_descriptors[25] = PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_MESSAGE, 0, /* quantifier_offset */ - offsetof(Episode, publish_time), - &date__descriptor, + offsetof(Spotify__Metadata__Episode, publish_time), + &spotify__metadata__date__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -3262,21 +2553,21 @@ static const ProtobufCFieldDescriptor episode__field_descriptors[25] = 67, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_SINT32, - offsetof(Episode, has_deprecated_popularity), - offsetof(Episode, deprecated_popularity), + offsetof(Spotify__Metadata__Episode, has_deprecated_popularity), + offsetof(Spotify__Metadata__Episode, deprecated_popularity), NULL, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { - "covers", + "cover_image", 68, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_MESSAGE, 0, /* quantifier_offset */ - offsetof(Episode, covers), - &image_group__descriptor, + offsetof(Spotify__Metadata__Episode, cover_image), + &spotify__metadata__image_group__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -3287,7 +2578,7 @@ static const ProtobufCFieldDescriptor episode__field_descriptors[25] = PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Episode, language), + offsetof(Spotify__Metadata__Episode, language), NULL, NULL, 0, /* flags */ @@ -3298,8 +2589,8 @@ static const ProtobufCFieldDescriptor episode__field_descriptors[25] = 70, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_BOOL, - offsetof(Episode, has_explicit_), - offsetof(Episode, explicit_), + offsetof(Spotify__Metadata__Episode, has_explicit_), + offsetof(Spotify__Metadata__Episode, explicit_), NULL, NULL, 0, /* flags */ @@ -3311,8 +2602,8 @@ static const ProtobufCFieldDescriptor episode__field_descriptors[25] = PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_MESSAGE, 0, /* quantifier_offset */ - offsetof(Episode, show), - &show__descriptor, + offsetof(Spotify__Metadata__Episode, show), + &spotify__metadata__show__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -3322,9 +2613,9 @@ static const ProtobufCFieldDescriptor episode__field_descriptors[25] = 72, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Episode, n_video), - offsetof(Episode, video), - &video_file__descriptor, + offsetof(Spotify__Metadata__Episode, n_video), + offsetof(Spotify__Metadata__Episode, video), + &spotify__metadata__video_file__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -3334,9 +2625,9 @@ static const ProtobufCFieldDescriptor episode__field_descriptors[25] = 73, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Episode, n_video_preview), - offsetof(Episode, video_preview), - &video_file__descriptor, + offsetof(Spotify__Metadata__Episode, n_video_preview), + offsetof(Spotify__Metadata__Episode, video_preview), + &spotify__metadata__video_file__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -3346,9 +2637,9 @@ static const ProtobufCFieldDescriptor episode__field_descriptors[25] = 74, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Episode, n_audio_preview), - offsetof(Episode, audio_preview), - &audio_file__descriptor, + offsetof(Spotify__Metadata__Episode, n_audio_preview), + offsetof(Spotify__Metadata__Episode, audio_preview), + &spotify__metadata__audio_file__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -3358,9 +2649,9 @@ static const ProtobufCFieldDescriptor episode__field_descriptors[25] = 75, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Episode, n_restriction), - offsetof(Episode, restriction), - &restriction__descriptor, + offsetof(Spotify__Metadata__Episode, n_restriction), + offsetof(Spotify__Metadata__Episode, restriction), + &spotify__metadata__restriction__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -3371,8 +2662,8 @@ static const ProtobufCFieldDescriptor episode__field_descriptors[25] = PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_MESSAGE, 0, /* quantifier_offset */ - offsetof(Episode, freeze_frame), - &image_group__descriptor, + offsetof(Spotify__Metadata__Episode, freeze_frame), + &spotify__metadata__image_group__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -3382,32 +2673,8 @@ static const ProtobufCFieldDescriptor episode__field_descriptors[25] = 77, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_STRING, - offsetof(Episode, n_keyword), - offsetof(Episode, keyword), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "suppress_monetization", - 78, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_BOOL, - offsetof(Episode, has_suppress_monetization), - offsetof(Episode, suppress_monetization), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "interpret_restriction_using_geoip", - 79, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_BOOL, - offsetof(Episode, has_interpret_restriction_using_geoip), - offsetof(Episode, interpret_restriction_using_geoip), + offsetof(Spotify__Metadata__Episode, n_keyword), + offsetof(Spotify__Metadata__Episode, keyword), NULL, NULL, 0, /* flags */ @@ -3418,8 +2685,8 @@ static const ProtobufCFieldDescriptor episode__field_descriptors[25] = 81, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_BOOL, - offsetof(Episode, has_allow_background_playback), - offsetof(Episode, allow_background_playback), + offsetof(Spotify__Metadata__Episode, has_allow_background_playback), + offsetof(Spotify__Metadata__Episode, allow_background_playback), NULL, NULL, 0, /* flags */ @@ -3430,9 +2697,9 @@ static const ProtobufCFieldDescriptor episode__field_descriptors[25] = 82, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Episode, n_availability), - offsetof(Episode, availability), - &availability__descriptor, + offsetof(Spotify__Metadata__Episode, n_availability), + offsetof(Spotify__Metadata__Episode, availability), + &spotify__metadata__availability__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -3443,162 +2710,1269 @@ static const ProtobufCFieldDescriptor episode__field_descriptors[25] = PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Episode, external_url), + offsetof(Spotify__Metadata__Episode, external_url), NULL, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { - "original_audio", - 84, + "type", + 87, PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_ENUM, + offsetof(Spotify__Metadata__Episode, has_type), + offsetof(Spotify__Metadata__Episode, type), + &spotify__metadata__episode__episode_type__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "music_and_talk", + 91, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_BOOL, + offsetof(Spotify__Metadata__Episode, has_music_and_talk), + offsetof(Spotify__Metadata__Episode, music_and_talk), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "content_rating", + 95, + PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(Episode, original_audio), - &original_audio__descriptor, + offsetof(Spotify__Metadata__Episode, n_content_rating), + offsetof(Spotify__Metadata__Episode, content_rating), + &spotify__metadata__content_rating__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "is_audiobook_chapter", + 96, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_BOOL, + offsetof(Spotify__Metadata__Episode, has_is_audiobook_chapter), + offsetof(Spotify__Metadata__Episode, is_audiobook_chapter), + NULL, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; -static const unsigned episode__field_indices_by_name[] = { - 21, /* field[21] = allow_background_playback */ - 15, /* field[15] = audio_preview */ - 22, /* field[22] = availability */ - 9, /* field[9] = covers */ - 8, /* field[8] = deprecated_popularity */ - 5, /* field[5] = description */ +static const unsigned spotify__metadata__episode__field_indices_by_name[] = { + 18, /* field[18] = allow_background_playback */ + 3, /* field[3] = audio */ + 14, /* field[14] = audio_preview */ + 19, /* field[19] = availability */ + 23, /* field[23] = content_rating */ + 8, /* field[8] = cover_image */ + 7, /* field[7] = deprecated_popularity */ + 4, /* field[4] = description */ 2, /* field[2] = duration */ - 11, /* field[11] = explicit */ - 23, /* field[23] = external_url */ - 4, /* field[4] = file */ - 17, /* field[17] = freeze_frame */ + 10, /* field[10] = explicit */ + 20, /* field[20] = external_url */ + 16, /* field[16] = freeze_frame */ 0, /* field[0] = gid */ - 20, /* field[20] = interpret_restriction_using_geoip */ - 18, /* field[18] = keyword */ - 10, /* field[10] = language */ + 24, /* field[24] = is_audiobook_chapter */ + 17, /* field[17] = keyword */ + 9, /* field[9] = language */ + 22, /* field[22] = music_and_talk */ 1, /* field[1] = name */ - 6, /* field[6] = number */ - 24, /* field[24] = original_audio */ - 3, /* field[3] = popularity */ - 7, /* field[7] = publish_time */ - 16, /* field[16] = restriction */ - 12, /* field[12] = show */ - 19, /* field[19] = suppress_monetization */ - 13, /* field[13] = video */ - 14, /* field[14] = video_preview */ + 5, /* field[5] = number */ + 6, /* field[6] = publish_time */ + 15, /* field[15] = restriction */ + 11, /* field[11] = show */ + 21, /* field[21] = type */ + 12, /* field[12] = video */ + 13, /* field[13] = video_preview */ }; -static const ProtobufCIntRange episode__number_ranges[5 + 1] = +static const ProtobufCIntRange spotify__metadata__episode__number_ranges[8 + 1] = { { 1, 0 }, { 7, 2 }, - { 12, 4 }, - { 64, 5 }, - { 81, 21 }, + { 12, 3 }, + { 64, 4 }, + { 81, 18 }, + { 87, 21 }, + { 91, 22 }, + { 95, 23 }, { 0, 25 } }; -const ProtobufCMessageDescriptor episode__descriptor = +const ProtobufCMessageDescriptor spotify__metadata__episode__descriptor = { PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "spotify.metadata.Episode", "Episode", - "Episode", - "Episode", - "", - sizeof(Episode), + "Spotify__Metadata__Episode", + "spotify.metadata", + sizeof(Spotify__Metadata__Episode), 25, - episode__field_descriptors, - episode__field_indices_by_name, - 5, episode__number_ranges, - (ProtobufCMessageInit) episode__init, + spotify__metadata__episode__field_descriptors, + spotify__metadata__episode__field_indices_by_name, + 8, spotify__metadata__episode__number_ranges, + (ProtobufCMessageInit) spotify__metadata__episode__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor category__field_descriptors[2] = -{ - { - "name", - 1, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Category, name), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "subcategories", - 2, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Category, n_subcategories), - offsetof(Category, subcategories), - &category__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned category__field_indices_by_name[] = { - 0, /* field[0] = name */ - 1, /* field[1] = subcategories */ -}; -static const ProtobufCIntRange category__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor category__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Category", - "Category", - "Category", - "", - sizeof(Category), - 2, - category__field_descriptors, - category__field_indices_by_name, - 1, category__number_ranges, - (ProtobufCMessageInit) category__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor original_audio__field_descriptors[1] = +static const ProtobufCFieldDescriptor spotify__metadata__licensor__field_descriptors[1] = { { "uuid", 1, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_BYTES, - offsetof(OriginalAudio, has_uuid), - offsetof(OriginalAudio, uuid), + offsetof(Spotify__Metadata__Licensor, has_uuid), + offsetof(Spotify__Metadata__Licensor, uuid), NULL, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; -static const unsigned original_audio__field_indices_by_name[] = { +static const unsigned spotify__metadata__licensor__field_indices_by_name[] = { 0, /* field[0] = uuid */ }; -static const ProtobufCIntRange original_audio__number_ranges[1 + 1] = +static const ProtobufCIntRange spotify__metadata__licensor__number_ranges[1 + 1] = { { 1, 0 }, { 0, 1 } }; -const ProtobufCMessageDescriptor original_audio__descriptor = +const ProtobufCMessageDescriptor spotify__metadata__licensor__descriptor = { PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "OriginalAudio", - "OriginalAudio", - "OriginalAudio", - "", - sizeof(OriginalAudio), + "spotify.metadata.Licensor", + "Licensor", + "Spotify__Metadata__Licensor", + "spotify.metadata", + sizeof(Spotify__Metadata__Licensor), 1, - original_audio__field_descriptors, - original_audio__field_indices_by_name, - 1, original_audio__number_ranges, - (ProtobufCMessageInit) original_audio__init, + spotify__metadata__licensor__field_descriptors, + spotify__metadata__licensor__field_indices_by_name, + 1, spotify__metadata__licensor__number_ranges, + (ProtobufCMessageInit) spotify__metadata__licensor__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor spotify__metadata__top_tracks__field_descriptors[2] = +{ + { + "country", + 1, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Spotify__Metadata__TopTracks, country), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "track", + 2, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Spotify__Metadata__TopTracks, n_track), + offsetof(Spotify__Metadata__TopTracks, track), + &spotify__metadata__track__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned spotify__metadata__top_tracks__field_indices_by_name[] = { + 0, /* field[0] = country */ + 1, /* field[1] = track */ +}; +static const ProtobufCIntRange spotify__metadata__top_tracks__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor spotify__metadata__top_tracks__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "spotify.metadata.TopTracks", + "TopTracks", + "Spotify__Metadata__TopTracks", + "spotify.metadata", + sizeof(Spotify__Metadata__TopTracks), + 2, + spotify__metadata__top_tracks__field_descriptors, + spotify__metadata__top_tracks__field_indices_by_name, + 1, spotify__metadata__top_tracks__number_ranges, + (ProtobufCMessageInit) spotify__metadata__top_tracks__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor spotify__metadata__activity_period__field_descriptors[3] = +{ + { + "start_year", + 1, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_SINT32, + offsetof(Spotify__Metadata__ActivityPeriod, has_start_year), + offsetof(Spotify__Metadata__ActivityPeriod, start_year), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "end_year", + 2, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_SINT32, + offsetof(Spotify__Metadata__ActivityPeriod, has_end_year), + offsetof(Spotify__Metadata__ActivityPeriod, end_year), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "decade", + 3, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_SINT32, + offsetof(Spotify__Metadata__ActivityPeriod, has_decade), + offsetof(Spotify__Metadata__ActivityPeriod, decade), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned spotify__metadata__activity_period__field_indices_by_name[] = { + 2, /* field[2] = decade */ + 1, /* field[1] = end_year */ + 0, /* field[0] = start_year */ +}; +static const ProtobufCIntRange spotify__metadata__activity_period__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor spotify__metadata__activity_period__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "spotify.metadata.ActivityPeriod", + "ActivityPeriod", + "Spotify__Metadata__ActivityPeriod", + "spotify.metadata", + sizeof(Spotify__Metadata__ActivityPeriod), + 3, + spotify__metadata__activity_period__field_descriptors, + spotify__metadata__activity_period__field_indices_by_name, + 1, spotify__metadata__activity_period__number_ranges, + (ProtobufCMessageInit) spotify__metadata__activity_period__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor spotify__metadata__album_group__field_descriptors[1] = +{ + { + "album", + 1, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Spotify__Metadata__AlbumGroup, n_album), + offsetof(Spotify__Metadata__AlbumGroup, album), + &spotify__metadata__album__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned spotify__metadata__album_group__field_indices_by_name[] = { + 0, /* field[0] = album */ +}; +static const ProtobufCIntRange spotify__metadata__album_group__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor spotify__metadata__album_group__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "spotify.metadata.AlbumGroup", + "AlbumGroup", + "Spotify__Metadata__AlbumGroup", + "spotify.metadata", + sizeof(Spotify__Metadata__AlbumGroup), + 1, + spotify__metadata__album_group__field_descriptors, + spotify__metadata__album_group__field_indices_by_name, + 1, spotify__metadata__album_group__number_ranges, + (ProtobufCMessageInit) spotify__metadata__album_group__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor spotify__metadata__date__field_descriptors[5] = +{ + { + "year", + 1, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_SINT32, + offsetof(Spotify__Metadata__Date, has_year), + offsetof(Spotify__Metadata__Date, year), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "month", + 2, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_SINT32, + offsetof(Spotify__Metadata__Date, has_month), + offsetof(Spotify__Metadata__Date, month), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "day", + 3, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_SINT32, + offsetof(Spotify__Metadata__Date, has_day), + offsetof(Spotify__Metadata__Date, day), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "hour", + 4, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_SINT32, + offsetof(Spotify__Metadata__Date, has_hour), + offsetof(Spotify__Metadata__Date, hour), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "minute", + 5, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_SINT32, + offsetof(Spotify__Metadata__Date, has_minute), + offsetof(Spotify__Metadata__Date, minute), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned spotify__metadata__date__field_indices_by_name[] = { + 2, /* field[2] = day */ + 3, /* field[3] = hour */ + 4, /* field[4] = minute */ + 1, /* field[1] = month */ + 0, /* field[0] = year */ +}; +static const ProtobufCIntRange spotify__metadata__date__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 5 } +}; +const ProtobufCMessageDescriptor spotify__metadata__date__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "spotify.metadata.Date", + "Date", + "Spotify__Metadata__Date", + "spotify.metadata", + sizeof(Spotify__Metadata__Date), + 5, + spotify__metadata__date__field_descriptors, + spotify__metadata__date__field_indices_by_name, + 1, spotify__metadata__date__number_ranges, + (ProtobufCMessageInit) spotify__metadata__date__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCEnumValue spotify__metadata__image__size__enum_values_by_number[4] = +{ + { "DEFAULT", "SPOTIFY__METADATA__IMAGE__SIZE__DEFAULT", 0 }, + { "SMALL", "SPOTIFY__METADATA__IMAGE__SIZE__SMALL", 1 }, + { "LARGE", "SPOTIFY__METADATA__IMAGE__SIZE__LARGE", 2 }, + { "XLARGE", "SPOTIFY__METADATA__IMAGE__SIZE__XLARGE", 3 }, +}; +static const ProtobufCIntRange spotify__metadata__image__size__value_ranges[] = { +{0, 0},{0, 4} +}; +static const ProtobufCEnumValueIndex spotify__metadata__image__size__enum_values_by_name[4] = +{ + { "DEFAULT", 0 }, + { "LARGE", 2 }, + { "SMALL", 1 }, + { "XLARGE", 3 }, +}; +const ProtobufCEnumDescriptor spotify__metadata__image__size__descriptor = +{ + PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, + "spotify.metadata.Image.Size", + "Size", + "Spotify__Metadata__Image__Size", + "spotify.metadata", + 4, + spotify__metadata__image__size__enum_values_by_number, + 4, + spotify__metadata__image__size__enum_values_by_name, + 1, + spotify__metadata__image__size__value_ranges, + NULL,NULL,NULL,NULL /* reserved[1234] */ +}; +static const ProtobufCFieldDescriptor spotify__metadata__image__field_descriptors[4] = +{ + { + "file_id", + 1, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_BYTES, + offsetof(Spotify__Metadata__Image, has_file_id), + offsetof(Spotify__Metadata__Image, file_id), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "size", + 2, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_ENUM, + offsetof(Spotify__Metadata__Image, has_size), + offsetof(Spotify__Metadata__Image, size), + &spotify__metadata__image__size__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "width", + 3, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_SINT32, + offsetof(Spotify__Metadata__Image, has_width), + offsetof(Spotify__Metadata__Image, width), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "height", + 4, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_SINT32, + offsetof(Spotify__Metadata__Image, has_height), + offsetof(Spotify__Metadata__Image, height), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned spotify__metadata__image__field_indices_by_name[] = { + 0, /* field[0] = file_id */ + 3, /* field[3] = height */ + 1, /* field[1] = size */ + 2, /* field[2] = width */ +}; +static const ProtobufCIntRange spotify__metadata__image__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 4 } +}; +const ProtobufCMessageDescriptor spotify__metadata__image__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "spotify.metadata.Image", + "Image", + "Spotify__Metadata__Image", + "spotify.metadata", + sizeof(Spotify__Metadata__Image), + 4, + spotify__metadata__image__field_descriptors, + spotify__metadata__image__field_indices_by_name, + 1, spotify__metadata__image__number_ranges, + (ProtobufCMessageInit) spotify__metadata__image__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor spotify__metadata__image_group__field_descriptors[1] = +{ + { + "image", + 1, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Spotify__Metadata__ImageGroup, n_image), + offsetof(Spotify__Metadata__ImageGroup, image), + &spotify__metadata__image__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned spotify__metadata__image_group__field_indices_by_name[] = { + 0, /* field[0] = image */ +}; +static const ProtobufCIntRange spotify__metadata__image_group__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor spotify__metadata__image_group__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "spotify.metadata.ImageGroup", + "ImageGroup", + "Spotify__Metadata__ImageGroup", + "spotify.metadata", + sizeof(Spotify__Metadata__ImageGroup), + 1, + spotify__metadata__image_group__field_descriptors, + spotify__metadata__image_group__field_indices_by_name, + 1, spotify__metadata__image_group__number_ranges, + (ProtobufCMessageInit) spotify__metadata__image_group__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor spotify__metadata__biography__field_descriptors[3] = +{ + { + "text", + 1, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Spotify__Metadata__Biography, text), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "portrait", + 2, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Spotify__Metadata__Biography, n_portrait), + offsetof(Spotify__Metadata__Biography, portrait), + &spotify__metadata__image__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "portrait_group", + 3, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Spotify__Metadata__Biography, n_portrait_group), + offsetof(Spotify__Metadata__Biography, portrait_group), + &spotify__metadata__image_group__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned spotify__metadata__biography__field_indices_by_name[] = { + 1, /* field[1] = portrait */ + 2, /* field[2] = portrait_group */ + 0, /* field[0] = text */ +}; +static const ProtobufCIntRange spotify__metadata__biography__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor spotify__metadata__biography__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "spotify.metadata.Biography", + "Biography", + "Spotify__Metadata__Biography", + "spotify.metadata", + sizeof(Spotify__Metadata__Biography), + 3, + spotify__metadata__biography__field_descriptors, + spotify__metadata__biography__field_indices_by_name, + 1, spotify__metadata__biography__number_ranges, + (ProtobufCMessageInit) spotify__metadata__biography__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor spotify__metadata__disc__field_descriptors[3] = +{ + { + "number", + 1, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_SINT32, + offsetof(Spotify__Metadata__Disc, has_number), + offsetof(Spotify__Metadata__Disc, number), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "name", + 2, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Spotify__Metadata__Disc, name), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "track", + 3, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Spotify__Metadata__Disc, n_track), + offsetof(Spotify__Metadata__Disc, track), + &spotify__metadata__track__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned spotify__metadata__disc__field_indices_by_name[] = { + 1, /* field[1] = name */ + 0, /* field[0] = number */ + 2, /* field[2] = track */ +}; +static const ProtobufCIntRange spotify__metadata__disc__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor spotify__metadata__disc__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "spotify.metadata.Disc", + "Disc", + "Spotify__Metadata__Disc", + "spotify.metadata", + sizeof(Spotify__Metadata__Disc), + 3, + spotify__metadata__disc__field_descriptors, + spotify__metadata__disc__field_indices_by_name, + 1, spotify__metadata__disc__number_ranges, + (ProtobufCMessageInit) spotify__metadata__disc__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCEnumValue spotify__metadata__copyright__type__enum_values_by_number[2] = +{ + { "P", "SPOTIFY__METADATA__COPYRIGHT__TYPE__P", 0 }, + { "C", "SPOTIFY__METADATA__COPYRIGHT__TYPE__C", 1 }, +}; +static const ProtobufCIntRange spotify__metadata__copyright__type__value_ranges[] = { +{0, 0},{0, 2} +}; +static const ProtobufCEnumValueIndex spotify__metadata__copyright__type__enum_values_by_name[2] = +{ + { "C", 1 }, + { "P", 0 }, +}; +const ProtobufCEnumDescriptor spotify__metadata__copyright__type__descriptor = +{ + PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, + "spotify.metadata.Copyright.Type", + "Type", + "Spotify__Metadata__Copyright__Type", + "spotify.metadata", + 2, + spotify__metadata__copyright__type__enum_values_by_number, + 2, + spotify__metadata__copyright__type__enum_values_by_name, + 1, + spotify__metadata__copyright__type__value_ranges, + NULL,NULL,NULL,NULL /* reserved[1234] */ +}; +static const ProtobufCFieldDescriptor spotify__metadata__copyright__field_descriptors[2] = +{ + { + "type", + 1, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_ENUM, + offsetof(Spotify__Metadata__Copyright, has_type), + offsetof(Spotify__Metadata__Copyright, type), + &spotify__metadata__copyright__type__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "text", + 2, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Spotify__Metadata__Copyright, text), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned spotify__metadata__copyright__field_indices_by_name[] = { + 1, /* field[1] = text */ + 0, /* field[0] = type */ +}; +static const ProtobufCIntRange spotify__metadata__copyright__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor spotify__metadata__copyright__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "spotify.metadata.Copyright", + "Copyright", + "Spotify__Metadata__Copyright", + "spotify.metadata", + sizeof(Spotify__Metadata__Copyright), + 2, + spotify__metadata__copyright__field_descriptors, + spotify__metadata__copyright__field_indices_by_name, + 1, spotify__metadata__copyright__number_ranges, + (ProtobufCMessageInit) spotify__metadata__copyright__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCEnumValue spotify__metadata__restriction__catalogue__enum_values_by_number[5] = +{ + { "AD", "SPOTIFY__METADATA__RESTRICTION__CATALOGUE__AD", 0 }, + { "SUBSCRIPTION", "SPOTIFY__METADATA__RESTRICTION__CATALOGUE__SUBSCRIPTION", 1 }, + { "CATALOGUE_ALL", "SPOTIFY__METADATA__RESTRICTION__CATALOGUE__CATALOGUE_ALL", 2 }, + { "SHUFFLE", "SPOTIFY__METADATA__RESTRICTION__CATALOGUE__SHUFFLE", 3 }, + { "COMMERCIAL", "SPOTIFY__METADATA__RESTRICTION__CATALOGUE__COMMERCIAL", 4 }, +}; +static const ProtobufCIntRange spotify__metadata__restriction__catalogue__value_ranges[] = { +{0, 0},{0, 5} +}; +static const ProtobufCEnumValueIndex spotify__metadata__restriction__catalogue__enum_values_by_name[5] = +{ + { "AD", 0 }, + { "CATALOGUE_ALL", 2 }, + { "COMMERCIAL", 4 }, + { "SHUFFLE", 3 }, + { "SUBSCRIPTION", 1 }, +}; +const ProtobufCEnumDescriptor spotify__metadata__restriction__catalogue__descriptor = +{ + PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, + "spotify.metadata.Restriction.Catalogue", + "Catalogue", + "Spotify__Metadata__Restriction__Catalogue", + "spotify.metadata", + 5, + spotify__metadata__restriction__catalogue__enum_values_by_number, + 5, + spotify__metadata__restriction__catalogue__enum_values_by_name, + 1, + spotify__metadata__restriction__catalogue__value_ranges, + NULL,NULL,NULL,NULL /* reserved[1234] */ +}; +static const ProtobufCEnumValue spotify__metadata__restriction__type__enum_values_by_number[1] = +{ + { "STREAMING", "SPOTIFY__METADATA__RESTRICTION__TYPE__STREAMING", 0 }, +}; +static const ProtobufCIntRange spotify__metadata__restriction__type__value_ranges[] = { +{0, 0},{0, 1} +}; +static const ProtobufCEnumValueIndex spotify__metadata__restriction__type__enum_values_by_name[1] = +{ + { "STREAMING", 0 }, +}; +const ProtobufCEnumDescriptor spotify__metadata__restriction__type__descriptor = +{ + PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, + "spotify.metadata.Restriction.Type", + "Type", + "Spotify__Metadata__Restriction__Type", + "spotify.metadata", + 1, + spotify__metadata__restriction__type__enum_values_by_number, + 1, + spotify__metadata__restriction__type__enum_values_by_name, + 1, + spotify__metadata__restriction__type__value_ranges, + NULL,NULL,NULL,NULL /* reserved[1234] */ +}; +static const ProtobufCFieldDescriptor spotify__metadata__restriction__field_descriptors[5] = +{ + { + "catalogue", + 1, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_ENUM, + offsetof(Spotify__Metadata__Restriction, n_catalogue), + offsetof(Spotify__Metadata__Restriction, catalogue), + &spotify__metadata__restriction__catalogue__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "countries_allowed", + 2, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_STRING, + offsetof(Spotify__Metadata__Restriction, country_restriction_case), + offsetof(Spotify__Metadata__Restriction, countries_allowed), + NULL, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "countries_forbidden", + 3, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_STRING, + offsetof(Spotify__Metadata__Restriction, country_restriction_case), + offsetof(Spotify__Metadata__Restriction, countries_forbidden), + NULL, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "type", + 4, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_ENUM, + offsetof(Spotify__Metadata__Restriction, has_type), + offsetof(Spotify__Metadata__Restriction, type), + &spotify__metadata__restriction__type__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "catalogue_str", + 5, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_STRING, + offsetof(Spotify__Metadata__Restriction, n_catalogue_str), + offsetof(Spotify__Metadata__Restriction, catalogue_str), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned spotify__metadata__restriction__field_indices_by_name[] = { + 0, /* field[0] = catalogue */ + 4, /* field[4] = catalogue_str */ + 1, /* field[1] = countries_allowed */ + 2, /* field[2] = countries_forbidden */ + 3, /* field[3] = type */ +}; +static const ProtobufCIntRange spotify__metadata__restriction__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 5 } +}; +const ProtobufCMessageDescriptor spotify__metadata__restriction__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "spotify.metadata.Restriction", + "Restriction", + "Spotify__Metadata__Restriction", + "spotify.metadata", + sizeof(Spotify__Metadata__Restriction), + 5, + spotify__metadata__restriction__field_descriptors, + spotify__metadata__restriction__field_indices_by_name, + 1, spotify__metadata__restriction__number_ranges, + (ProtobufCMessageInit) spotify__metadata__restriction__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor spotify__metadata__availability__field_descriptors[2] = +{ + { + "catalogue_str", + 1, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_STRING, + offsetof(Spotify__Metadata__Availability, n_catalogue_str), + offsetof(Spotify__Metadata__Availability, catalogue_str), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "start", + 2, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(Spotify__Metadata__Availability, start), + &spotify__metadata__date__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned spotify__metadata__availability__field_indices_by_name[] = { + 0, /* field[0] = catalogue_str */ + 1, /* field[1] = start */ +}; +static const ProtobufCIntRange spotify__metadata__availability__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor spotify__metadata__availability__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "spotify.metadata.Availability", + "Availability", + "Spotify__Metadata__Availability", + "spotify.metadata", + sizeof(Spotify__Metadata__Availability), + 2, + spotify__metadata__availability__field_descriptors, + spotify__metadata__availability__field_indices_by_name, + 1, spotify__metadata__availability__number_ranges, + (ProtobufCMessageInit) spotify__metadata__availability__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor spotify__metadata__sale_period__field_descriptors[3] = +{ + { + "restriction", + 1, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Spotify__Metadata__SalePeriod, n_restriction), + offsetof(Spotify__Metadata__SalePeriod, restriction), + &spotify__metadata__restriction__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "start", + 2, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(Spotify__Metadata__SalePeriod, start), + &spotify__metadata__date__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "end", + 3, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(Spotify__Metadata__SalePeriod, end), + &spotify__metadata__date__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned spotify__metadata__sale_period__field_indices_by_name[] = { + 2, /* field[2] = end */ + 0, /* field[0] = restriction */ + 1, /* field[1] = start */ +}; +static const ProtobufCIntRange spotify__metadata__sale_period__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor spotify__metadata__sale_period__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "spotify.metadata.SalePeriod", + "SalePeriod", + "Spotify__Metadata__SalePeriod", + "spotify.metadata", + sizeof(Spotify__Metadata__SalePeriod), + 3, + spotify__metadata__sale_period__field_descriptors, + spotify__metadata__sale_period__field_indices_by_name, + 1, spotify__metadata__sale_period__number_ranges, + (ProtobufCMessageInit) spotify__metadata__sale_period__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor spotify__metadata__external_id__field_descriptors[2] = +{ + { + "type", + 1, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Spotify__Metadata__ExternalId, type), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "id", + 2, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Spotify__Metadata__ExternalId, id), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned spotify__metadata__external_id__field_indices_by_name[] = { + 1, /* field[1] = id */ + 0, /* field[0] = type */ +}; +static const ProtobufCIntRange spotify__metadata__external_id__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor spotify__metadata__external_id__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "spotify.metadata.ExternalId", + "ExternalId", + "Spotify__Metadata__ExternalId", + "spotify.metadata", + sizeof(Spotify__Metadata__ExternalId), + 2, + spotify__metadata__external_id__field_descriptors, + spotify__metadata__external_id__field_indices_by_name, + 1, spotify__metadata__external_id__number_ranges, + (ProtobufCMessageInit) spotify__metadata__external_id__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCEnumValue spotify__metadata__audio_file__format__enum_values_by_number[21] = +{ + { "OGG_VORBIS_96", "SPOTIFY__METADATA__AUDIO_FILE__FORMAT__OGG_VORBIS_96", 0 }, + { "OGG_VORBIS_160", "SPOTIFY__METADATA__AUDIO_FILE__FORMAT__OGG_VORBIS_160", 1 }, + { "OGG_VORBIS_320", "SPOTIFY__METADATA__AUDIO_FILE__FORMAT__OGG_VORBIS_320", 2 }, + { "MP3_256", "SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP3_256", 3 }, + { "MP3_320", "SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP3_320", 4 }, + { "MP3_160", "SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP3_160", 5 }, + { "MP3_96", "SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP3_96", 6 }, + { "MP3_160_ENC", "SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP3_160_ENC", 7 }, + { "AAC_24", "SPOTIFY__METADATA__AUDIO_FILE__FORMAT__AAC_24", 8 }, + { "AAC_48", "SPOTIFY__METADATA__AUDIO_FILE__FORMAT__AAC_48", 9 }, + { "MP4_128", "SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP4_128", 10 }, + { "MP4_128_DUAL", "SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP4_128_DUAL", 11 }, + { "MP4_128_CBCS", "SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP4_128_CBCS", 12 }, + { "MP4_256", "SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP4_256", 13 }, + { "MP4_256_DUAL", "SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP4_256_DUAL", 14 }, + { "MP4_256_CBCS", "SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP4_256_CBCS", 15 }, + { "FLAC_FLAC", "SPOTIFY__METADATA__AUDIO_FILE__FORMAT__FLAC_FLAC", 16 }, + { "XHE_AAC_24", "SPOTIFY__METADATA__AUDIO_FILE__FORMAT__XHE_AAC_24", 18 }, + { "XHE_AAC_16", "SPOTIFY__METADATA__AUDIO_FILE__FORMAT__XHE_AAC_16", 19 }, + { "XHE_AAC_12", "SPOTIFY__METADATA__AUDIO_FILE__FORMAT__XHE_AAC_12", 20 }, + { "FLAC_FLAC_24BIT", "SPOTIFY__METADATA__AUDIO_FILE__FORMAT__FLAC_FLAC_24BIT", 22 }, +}; +static const ProtobufCIntRange spotify__metadata__audio_file__format__value_ranges[] = { +{0, 0},{18, 17},{22, 20},{0, 21} +}; +static const ProtobufCEnumValueIndex spotify__metadata__audio_file__format__enum_values_by_name[21] = +{ + { "AAC_24", 8 }, + { "AAC_48", 9 }, + { "FLAC_FLAC", 16 }, + { "FLAC_FLAC_24BIT", 20 }, + { "MP3_160", 5 }, + { "MP3_160_ENC", 7 }, + { "MP3_256", 3 }, + { "MP3_320", 4 }, + { "MP3_96", 6 }, + { "MP4_128", 10 }, + { "MP4_128_CBCS", 12 }, + { "MP4_128_DUAL", 11 }, + { "MP4_256", 13 }, + { "MP4_256_CBCS", 15 }, + { "MP4_256_DUAL", 14 }, + { "OGG_VORBIS_160", 1 }, + { "OGG_VORBIS_320", 2 }, + { "OGG_VORBIS_96", 0 }, + { "XHE_AAC_12", 19 }, + { "XHE_AAC_16", 18 }, + { "XHE_AAC_24", 17 }, +}; +const ProtobufCEnumDescriptor spotify__metadata__audio_file__format__descriptor = +{ + PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, + "spotify.metadata.AudioFile.Format", + "Format", + "Spotify__Metadata__AudioFile__Format", + "spotify.metadata", + 21, + spotify__metadata__audio_file__format__enum_values_by_number, + 21, + spotify__metadata__audio_file__format__enum_values_by_name, + 3, + spotify__metadata__audio_file__format__value_ranges, + NULL,NULL,NULL,NULL /* reserved[1234] */ +}; +static const ProtobufCFieldDescriptor spotify__metadata__audio_file__field_descriptors[2] = +{ + { + "file_id", + 1, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_BYTES, + offsetof(Spotify__Metadata__AudioFile, has_file_id), + offsetof(Spotify__Metadata__AudioFile, file_id), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "format", + 2, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_ENUM, + offsetof(Spotify__Metadata__AudioFile, has_format), + offsetof(Spotify__Metadata__AudioFile, format), + &spotify__metadata__audio_file__format__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned spotify__metadata__audio_file__field_indices_by_name[] = { + 0, /* field[0] = file_id */ + 1, /* field[1] = format */ +}; +static const ProtobufCIntRange spotify__metadata__audio_file__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor spotify__metadata__audio_file__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "spotify.metadata.AudioFile", + "AudioFile", + "Spotify__Metadata__AudioFile", + "spotify.metadata", + sizeof(Spotify__Metadata__AudioFile), + 2, + spotify__metadata__audio_file__field_descriptors, + spotify__metadata__audio_file__field_indices_by_name, + 1, spotify__metadata__audio_file__number_ranges, + (ProtobufCMessageInit) spotify__metadata__audio_file__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor spotify__metadata__video_file__field_descriptors[1] = +{ + { + "file_id", + 1, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_BYTES, + offsetof(Spotify__Metadata__VideoFile, has_file_id), + offsetof(Spotify__Metadata__VideoFile, file_id), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned spotify__metadata__video_file__field_indices_by_name[] = { + 0, /* field[0] = file_id */ +}; +static const ProtobufCIntRange spotify__metadata__video_file__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor spotify__metadata__video_file__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "spotify.metadata.VideoFile", + "VideoFile", + "Spotify__Metadata__VideoFile", + "spotify.metadata", + sizeof(Spotify__Metadata__VideoFile), + 1, + spotify__metadata__video_file__field_descriptors, + spotify__metadata__video_file__field_indices_by_name, + 1, spotify__metadata__video_file__number_ranges, + (ProtobufCMessageInit) spotify__metadata__video_file__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor spotify__metadata__content_rating__field_descriptors[2] = +{ + { + "country", + 1, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Spotify__Metadata__ContentRating, country), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "tag", + 2, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_STRING, + offsetof(Spotify__Metadata__ContentRating, n_tag), + offsetof(Spotify__Metadata__ContentRating, tag), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned spotify__metadata__content_rating__field_indices_by_name[] = { + 0, /* field[0] = country */ + 1, /* field[1] = tag */ +}; +static const ProtobufCIntRange spotify__metadata__content_rating__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor spotify__metadata__content_rating__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "spotify.metadata.ContentRating", + "ContentRating", + "Spotify__Metadata__ContentRating", + "spotify.metadata", + sizeof(Spotify__Metadata__ContentRating), + 2, + spotify__metadata__content_rating__field_descriptors, + spotify__metadata__content_rating__field_indices_by_name, + 1, spotify__metadata__content_rating__number_ranges, + (ProtobufCMessageInit) spotify__metadata__content_rating__init, NULL,NULL,NULL /* reserved[123] */ }; diff --git a/src/inputs/librespot-c/src/proto/metadata.pb-c.h b/src/inputs/librespot-c/src/proto/metadata.pb-c.h index 530ddceb..d5ac9b4c 100644 --- a/src/inputs/librespot-c/src/proto/metadata.pb-c.h +++ b/src/inputs/librespot-c/src/proto/metadata.pb-c.h @@ -1,8 +1,8 @@ /* Generated by the protocol buffer compiler. DO NOT EDIT! */ -/* Generated from: proto/metadata.proto */ +/* Generated from: metadata.proto */ -#ifndef PROTOBUF_C_proto_2fmetadata_2eproto__INCLUDED -#define PROTOBUF_C_proto_2fmetadata_2eproto__INCLUDED +#ifndef PROTOBUF_C_metadata_2eproto__INCLUDED +#define PROTOBUF_C_metadata_2eproto__INCLUDED #include @@ -10,124 +10,398 @@ PROTOBUF_C__BEGIN_DECLS #if PROTOBUF_C_VERSION_NUMBER < 1000000 # error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. -#elif 1003003 < PROTOBUF_C_MIN_COMPILER_VERSION +#elif 1004001 < PROTOBUF_C_MIN_COMPILER_VERSION # error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. #endif -typedef struct _TopTracks TopTracks; -typedef struct _ActivityPeriod ActivityPeriod; -typedef struct _Artist Artist; -typedef struct _AlbumGroup AlbumGroup; -typedef struct _Date Date; -typedef struct _Album Album; -typedef struct _Track Track; -typedef struct _Image Image; -typedef struct _ImageGroup ImageGroup; -typedef struct _Biography Biography; -typedef struct _Disc Disc; -typedef struct _Copyright Copyright; -typedef struct _Restriction Restriction; -typedef struct _Availability Availability; -typedef struct _SalePeriod SalePeriod; -typedef struct _ExternalId ExternalId; -typedef struct _AudioFile AudioFile; -typedef struct _VideoFile VideoFile; -typedef struct _Show Show; -typedef struct _Episode Episode; -typedef struct _Category Category; -typedef struct _OriginalAudio OriginalAudio; +typedef struct Spotify__Metadata__Artist Spotify__Metadata__Artist; +typedef struct Spotify__Metadata__Album Spotify__Metadata__Album; +typedef struct Spotify__Metadata__Track Spotify__Metadata__Track; +typedef struct Spotify__Metadata__ArtistWithRole Spotify__Metadata__ArtistWithRole; +typedef struct Spotify__Metadata__Show Spotify__Metadata__Show; +typedef struct Spotify__Metadata__Episode Spotify__Metadata__Episode; +typedef struct Spotify__Metadata__Licensor Spotify__Metadata__Licensor; +typedef struct Spotify__Metadata__TopTracks Spotify__Metadata__TopTracks; +typedef struct Spotify__Metadata__ActivityPeriod Spotify__Metadata__ActivityPeriod; +typedef struct Spotify__Metadata__AlbumGroup Spotify__Metadata__AlbumGroup; +typedef struct Spotify__Metadata__Date Spotify__Metadata__Date; +typedef struct Spotify__Metadata__Image Spotify__Metadata__Image; +typedef struct Spotify__Metadata__ImageGroup Spotify__Metadata__ImageGroup; +typedef struct Spotify__Metadata__Biography Spotify__Metadata__Biography; +typedef struct Spotify__Metadata__Disc Spotify__Metadata__Disc; +typedef struct Spotify__Metadata__Copyright Spotify__Metadata__Copyright; +typedef struct Spotify__Metadata__Restriction Spotify__Metadata__Restriction; +typedef struct Spotify__Metadata__Availability Spotify__Metadata__Availability; +typedef struct Spotify__Metadata__SalePeriod Spotify__Metadata__SalePeriod; +typedef struct Spotify__Metadata__ExternalId Spotify__Metadata__ExternalId; +typedef struct Spotify__Metadata__AudioFile Spotify__Metadata__AudioFile; +typedef struct Spotify__Metadata__VideoFile Spotify__Metadata__VideoFile; +typedef struct Spotify__Metadata__ContentRating Spotify__Metadata__ContentRating; /* --- enums --- */ -typedef enum _Album__Type { - ALBUM__TYPE__ALBUM = 1, - ALBUM__TYPE__SINGLE = 2, - ALBUM__TYPE__COMPILATION = 3, - ALBUM__TYPE__EP = 4 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(ALBUM__TYPE) -} Album__Type; -typedef enum _Image__Size { - IMAGE__SIZE__DEFAULT = 0, - IMAGE__SIZE__SMALL = 1, - IMAGE__SIZE__LARGE = 2, - IMAGE__SIZE__XLARGE = 3 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(IMAGE__SIZE) -} Image__Size; -typedef enum _Copyright__Type { - COPYRIGHT__TYPE__P = 0, - COPYRIGHT__TYPE__C = 1 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(COPYRIGHT__TYPE) -} Copyright__Type; -typedef enum _Restriction__Catalogue { - RESTRICTION__CATALOGUE__AD = 0, - RESTRICTION__CATALOGUE__SUBSCRIPTION = 1, - RESTRICTION__CATALOGUE__CATALOGUE_ALL = 2, - RESTRICTION__CATALOGUE__SHUFFLE = 3, - RESTRICTION__CATALOGUE__COMMERCIAL = 4 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RESTRICTION__CATALOGUE) -} Restriction__Catalogue; -typedef enum _Restriction__Type { - RESTRICTION__TYPE__STREAMING = 0 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RESTRICTION__TYPE) -} Restriction__Type; -typedef enum _AudioFile__Format { - AUDIO_FILE__FORMAT__OGG_VORBIS_96 = 0, - AUDIO_FILE__FORMAT__OGG_VORBIS_160 = 1, - AUDIO_FILE__FORMAT__OGG_VORBIS_320 = 2, - AUDIO_FILE__FORMAT__MP3_256 = 3, - AUDIO_FILE__FORMAT__MP3_320 = 4, - AUDIO_FILE__FORMAT__MP3_160 = 5, - AUDIO_FILE__FORMAT__MP3_96 = 6, - AUDIO_FILE__FORMAT__MP3_160_ENC = 7, - /* - * v4 - * AAC_24 = 0x8; - * AAC_48 = 0x9; - */ - AUDIO_FILE__FORMAT__MP4_128_DUAL = 8, - AUDIO_FILE__FORMAT__OTHER3 = 9, - AUDIO_FILE__FORMAT__AAC_160 = 10, - AUDIO_FILE__FORMAT__AAC_320 = 11, - AUDIO_FILE__FORMAT__MP4_128 = 12, - AUDIO_FILE__FORMAT__OTHER5 = 13 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(AUDIO_FILE__FORMAT) -} AudioFile__Format; -typedef enum _Show__MediaType { - SHOW__MEDIA_TYPE__MIXED = 0, - SHOW__MEDIA_TYPE__AUDIO = 1, - SHOW__MEDIA_TYPE__VIDEO = 2 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SHOW__MEDIA_TYPE) -} Show__MediaType; -typedef enum _Show__ConsumptionOrder { - SHOW__CONSUMPTION_ORDER__SEQUENTIAL = 1, - SHOW__CONSUMPTION_ORDER__EPISODIC = 2, - SHOW__CONSUMPTION_ORDER__RECENT = 3 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SHOW__CONSUMPTION_ORDER) -} Show__ConsumptionOrder; -typedef enum _Show__PassthroughEnum { - SHOW__PASSTHROUGH_ENUM__UNKNOWN = 0, - SHOW__PASSTHROUGH_ENUM__NONE = 1, - SHOW__PASSTHROUGH_ENUM__ALLOWED = 2 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SHOW__PASSTHROUGH_ENUM) -} Show__PassthroughEnum; +typedef enum _Spotify__Metadata__Album__Type { + SPOTIFY__METADATA__ALBUM__TYPE__ALBUM = 1, + SPOTIFY__METADATA__ALBUM__TYPE__SINGLE = 2, + SPOTIFY__METADATA__ALBUM__TYPE__COMPILATION = 3, + SPOTIFY__METADATA__ALBUM__TYPE__EP = 4, + SPOTIFY__METADATA__ALBUM__TYPE__AUDIOBOOK = 5, + SPOTIFY__METADATA__ALBUM__TYPE__PODCAST = 6 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SPOTIFY__METADATA__ALBUM__TYPE) +} Spotify__Metadata__Album__Type; +typedef enum _Spotify__Metadata__ArtistWithRole__ArtistRole { + SPOTIFY__METADATA__ARTIST_WITH_ROLE__ARTIST_ROLE__ARTIST_ROLE_UNKNOWN = 0, + SPOTIFY__METADATA__ARTIST_WITH_ROLE__ARTIST_ROLE__ARTIST_ROLE_MAIN_ARTIST = 1, + SPOTIFY__METADATA__ARTIST_WITH_ROLE__ARTIST_ROLE__ARTIST_ROLE_FEATURED_ARTIST = 2, + SPOTIFY__METADATA__ARTIST_WITH_ROLE__ARTIST_ROLE__ARTIST_ROLE_REMIXER = 3, + SPOTIFY__METADATA__ARTIST_WITH_ROLE__ARTIST_ROLE__ARTIST_ROLE_ACTOR = 4, + SPOTIFY__METADATA__ARTIST_WITH_ROLE__ARTIST_ROLE__ARTIST_ROLE_COMPOSER = 5, + SPOTIFY__METADATA__ARTIST_WITH_ROLE__ARTIST_ROLE__ARTIST_ROLE_CONDUCTOR = 6, + SPOTIFY__METADATA__ARTIST_WITH_ROLE__ARTIST_ROLE__ARTIST_ROLE_ORCHESTRA = 7 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SPOTIFY__METADATA__ARTIST_WITH_ROLE__ARTIST_ROLE) +} Spotify__Metadata__ArtistWithRole__ArtistRole; +typedef enum _Spotify__Metadata__Show__MediaType { + SPOTIFY__METADATA__SHOW__MEDIA_TYPE__MIXED = 0, + SPOTIFY__METADATA__SHOW__MEDIA_TYPE__AUDIO = 1, + SPOTIFY__METADATA__SHOW__MEDIA_TYPE__VIDEO = 2 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SPOTIFY__METADATA__SHOW__MEDIA_TYPE) +} Spotify__Metadata__Show__MediaType; +typedef enum _Spotify__Metadata__Show__ConsumptionOrder { + SPOTIFY__METADATA__SHOW__CONSUMPTION_ORDER__SEQUENTIAL = 1, + SPOTIFY__METADATA__SHOW__CONSUMPTION_ORDER__EPISODIC = 2, + SPOTIFY__METADATA__SHOW__CONSUMPTION_ORDER__RECENT = 3 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SPOTIFY__METADATA__SHOW__CONSUMPTION_ORDER) +} Spotify__Metadata__Show__ConsumptionOrder; +typedef enum _Spotify__Metadata__Episode__EpisodeType { + SPOTIFY__METADATA__EPISODE__EPISODE_TYPE__FULL = 0, + SPOTIFY__METADATA__EPISODE__EPISODE_TYPE__TRAILER = 1, + SPOTIFY__METADATA__EPISODE__EPISODE_TYPE__BONUS = 2 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SPOTIFY__METADATA__EPISODE__EPISODE_TYPE) +} Spotify__Metadata__Episode__EpisodeType; +typedef enum _Spotify__Metadata__Image__Size { + SPOTIFY__METADATA__IMAGE__SIZE__DEFAULT = 0, + SPOTIFY__METADATA__IMAGE__SIZE__SMALL = 1, + SPOTIFY__METADATA__IMAGE__SIZE__LARGE = 2, + SPOTIFY__METADATA__IMAGE__SIZE__XLARGE = 3 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SPOTIFY__METADATA__IMAGE__SIZE) +} Spotify__Metadata__Image__Size; +typedef enum _Spotify__Metadata__Copyright__Type { + SPOTIFY__METADATA__COPYRIGHT__TYPE__P = 0, + SPOTIFY__METADATA__COPYRIGHT__TYPE__C = 1 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SPOTIFY__METADATA__COPYRIGHT__TYPE) +} Spotify__Metadata__Copyright__Type; +typedef enum _Spotify__Metadata__Restriction__Catalogue { + SPOTIFY__METADATA__RESTRICTION__CATALOGUE__AD = 0, + SPOTIFY__METADATA__RESTRICTION__CATALOGUE__SUBSCRIPTION = 1, + SPOTIFY__METADATA__RESTRICTION__CATALOGUE__CATALOGUE_ALL = 2, + SPOTIFY__METADATA__RESTRICTION__CATALOGUE__SHUFFLE = 3, + SPOTIFY__METADATA__RESTRICTION__CATALOGUE__COMMERCIAL = 4 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SPOTIFY__METADATA__RESTRICTION__CATALOGUE) +} Spotify__Metadata__Restriction__Catalogue; +typedef enum _Spotify__Metadata__Restriction__Type { + SPOTIFY__METADATA__RESTRICTION__TYPE__STREAMING = 0 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SPOTIFY__METADATA__RESTRICTION__TYPE) +} Spotify__Metadata__Restriction__Type; +typedef enum _Spotify__Metadata__AudioFile__Format { + SPOTIFY__METADATA__AUDIO_FILE__FORMAT__OGG_VORBIS_96 = 0, + SPOTIFY__METADATA__AUDIO_FILE__FORMAT__OGG_VORBIS_160 = 1, + SPOTIFY__METADATA__AUDIO_FILE__FORMAT__OGG_VORBIS_320 = 2, + SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP3_256 = 3, + SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP3_320 = 4, + SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP3_160 = 5, + SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP3_96 = 6, + SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP3_160_ENC = 7, + SPOTIFY__METADATA__AUDIO_FILE__FORMAT__AAC_24 = 8, + SPOTIFY__METADATA__AUDIO_FILE__FORMAT__AAC_48 = 9, + SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP4_128 = 10, + SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP4_128_DUAL = 11, + SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP4_128_CBCS = 12, + SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP4_256 = 13, + SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP4_256_DUAL = 14, + SPOTIFY__METADATA__AUDIO_FILE__FORMAT__MP4_256_CBCS = 15, + SPOTIFY__METADATA__AUDIO_FILE__FORMAT__FLAC_FLAC = 16, + SPOTIFY__METADATA__AUDIO_FILE__FORMAT__XHE_AAC_24 = 18, + SPOTIFY__METADATA__AUDIO_FILE__FORMAT__XHE_AAC_16 = 19, + SPOTIFY__METADATA__AUDIO_FILE__FORMAT__XHE_AAC_12 = 20, + SPOTIFY__METADATA__AUDIO_FILE__FORMAT__FLAC_FLAC_24BIT = 22 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SPOTIFY__METADATA__AUDIO_FILE__FORMAT) +} Spotify__Metadata__AudioFile__Format; /* --- messages --- */ -struct _TopTracks +struct Spotify__Metadata__Artist +{ + ProtobufCMessage base; + protobuf_c_boolean has_gid; + ProtobufCBinaryData gid; + char *name; + protobuf_c_boolean has_popularity; + int32_t popularity; + size_t n_top_track; + Spotify__Metadata__TopTracks **top_track; + size_t n_album_group; + Spotify__Metadata__AlbumGroup **album_group; + size_t n_single_group; + Spotify__Metadata__AlbumGroup **single_group; + size_t n_compilation_group; + Spotify__Metadata__AlbumGroup **compilation_group; + size_t n_appears_on_group; + Spotify__Metadata__AlbumGroup **appears_on_group; + size_t n_genre; + char **genre; + size_t n_external_id; + Spotify__Metadata__ExternalId **external_id; + size_t n_portrait; + Spotify__Metadata__Image **portrait; + size_t n_biography; + Spotify__Metadata__Biography **biography; + size_t n_activity_period; + Spotify__Metadata__ActivityPeriod **activity_period; + size_t n_restriction; + Spotify__Metadata__Restriction **restriction; + size_t n_related; + Spotify__Metadata__Artist **related; + protobuf_c_boolean has_is_portrait_album_cover; + protobuf_c_boolean is_portrait_album_cover; + Spotify__Metadata__ImageGroup *portrait_group; + size_t n_sale_period; + Spotify__Metadata__SalePeriod **sale_period; + size_t n_availability; + Spotify__Metadata__Availability **availability; +}; +#define SPOTIFY__METADATA__ARTIST__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__artist__descriptor) \ + , 0, {0,NULL}, NULL, 0, 0, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0, 0, NULL, 0,NULL, 0,NULL } + + +struct Spotify__Metadata__Album +{ + ProtobufCMessage base; + protobuf_c_boolean has_gid; + ProtobufCBinaryData gid; + char *name; + size_t n_artist; + Spotify__Metadata__Artist **artist; + protobuf_c_boolean has_type; + Spotify__Metadata__Album__Type type; + char *label; + Spotify__Metadata__Date *date; + protobuf_c_boolean has_popularity; + int32_t popularity; + size_t n_genre; + char **genre; + size_t n_cover; + Spotify__Metadata__Image **cover; + size_t n_external_id; + Spotify__Metadata__ExternalId **external_id; + size_t n_disc; + Spotify__Metadata__Disc **disc; + size_t n_review; + char **review; + size_t n_copyright; + Spotify__Metadata__Copyright **copyright; + size_t n_restriction; + Spotify__Metadata__Restriction **restriction; + size_t n_related; + Spotify__Metadata__Album **related; + size_t n_sale_period; + Spotify__Metadata__SalePeriod **sale_period; + Spotify__Metadata__ImageGroup *cover_group; + char *original_title; + char *version_title; + char *type_str; + size_t n_availability; + Spotify__Metadata__Availability **availability; +}; +#define SPOTIFY__METADATA__ALBUM__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__album__descriptor) \ + , 0, {0,NULL}, NULL, 0,NULL, 0, SPOTIFY__METADATA__ALBUM__TYPE__ALBUM, NULL, NULL, 0, 0, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, NULL, NULL, NULL, NULL, 0,NULL } + + +struct Spotify__Metadata__Track +{ + ProtobufCMessage base; + protobuf_c_boolean has_gid; + ProtobufCBinaryData gid; + char *name; + Spotify__Metadata__Album *album; + size_t n_artist; + Spotify__Metadata__Artist **artist; + protobuf_c_boolean has_number; + int32_t number; + protobuf_c_boolean has_disc_number; + int32_t disc_number; + protobuf_c_boolean has_duration; + int32_t duration; + protobuf_c_boolean has_popularity; + int32_t popularity; + protobuf_c_boolean has_explicit_; + protobuf_c_boolean explicit_; + size_t n_external_id; + Spotify__Metadata__ExternalId **external_id; + size_t n_restriction; + Spotify__Metadata__Restriction **restriction; + size_t n_file; + Spotify__Metadata__AudioFile **file; + size_t n_alternative; + Spotify__Metadata__Track **alternative; + size_t n_sale_period; + Spotify__Metadata__SalePeriod **sale_period; + size_t n_preview; + Spotify__Metadata__AudioFile **preview; + size_t n_tags; + char **tags; + protobuf_c_boolean has_earliest_live_timestamp; + int64_t earliest_live_timestamp; + protobuf_c_boolean has_has_lyrics; + protobuf_c_boolean has_lyrics; + size_t n_availability; + Spotify__Metadata__Availability **availability; + Spotify__Metadata__Licensor *licensor; + size_t n_language_of_performance; + char **language_of_performance; + size_t n_content_rating; + Spotify__Metadata__ContentRating **content_rating; + char *original_title; + char *version_title; + size_t n_artist_with_role; + Spotify__Metadata__ArtistWithRole **artist_with_role; +}; +#define SPOTIFY__METADATA__TRACK__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__track__descriptor) \ + , 0, {0,NULL}, NULL, NULL, 0,NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0, 0, 0, 0, 0,NULL, NULL, 0,NULL, 0,NULL, NULL, NULL, 0,NULL } + + +struct Spotify__Metadata__ArtistWithRole +{ + ProtobufCMessage base; + protobuf_c_boolean has_artist_gid; + ProtobufCBinaryData artist_gid; + char *artist_name; + protobuf_c_boolean has_role; + Spotify__Metadata__ArtistWithRole__ArtistRole role; +}; +#define SPOTIFY__METADATA__ARTIST_WITH_ROLE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__artist_with_role__descriptor) \ + , 0, {0,NULL}, NULL, 0, SPOTIFY__METADATA__ARTIST_WITH_ROLE__ARTIST_ROLE__ARTIST_ROLE_UNKNOWN } + + +struct Spotify__Metadata__Show +{ + ProtobufCMessage base; + protobuf_c_boolean has_gid; + ProtobufCBinaryData gid; + char *name; + char *description; + protobuf_c_boolean has_deprecated_popularity; + int32_t deprecated_popularity; + char *publisher; + char *language; + protobuf_c_boolean has_explicit_; + protobuf_c_boolean explicit_; + Spotify__Metadata__ImageGroup *cover_image; + size_t n_episode; + Spotify__Metadata__Episode **episode; + size_t n_copyright; + Spotify__Metadata__Copyright **copyright; + size_t n_restriction; + Spotify__Metadata__Restriction **restriction; + size_t n_keyword; + char **keyword; + protobuf_c_boolean has_media_type; + Spotify__Metadata__Show__MediaType media_type; + protobuf_c_boolean has_consumption_order; + Spotify__Metadata__Show__ConsumptionOrder consumption_order; + size_t n_availability; + Spotify__Metadata__Availability **availability; + char *trailer_uri; + protobuf_c_boolean has_music_and_talk; + protobuf_c_boolean music_and_talk; + protobuf_c_boolean has_is_audiobook; + protobuf_c_boolean is_audiobook; +}; +#define SPOTIFY__METADATA__SHOW__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__show__descriptor) \ + , 0, {0,NULL}, NULL, NULL, 0, 0, NULL, NULL, 0, 0, NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0, SPOTIFY__METADATA__SHOW__MEDIA_TYPE__MIXED, 0, SPOTIFY__METADATA__SHOW__CONSUMPTION_ORDER__SEQUENTIAL, 0,NULL, NULL, 0, 0, 0, 0 } + + +struct Spotify__Metadata__Episode +{ + ProtobufCMessage base; + protobuf_c_boolean has_gid; + ProtobufCBinaryData gid; + char *name; + protobuf_c_boolean has_duration; + int32_t duration; + size_t n_audio; + Spotify__Metadata__AudioFile **audio; + char *description; + protobuf_c_boolean has_number; + int32_t number; + Spotify__Metadata__Date *publish_time; + protobuf_c_boolean has_deprecated_popularity; + int32_t deprecated_popularity; + Spotify__Metadata__ImageGroup *cover_image; + char *language; + protobuf_c_boolean has_explicit_; + protobuf_c_boolean explicit_; + Spotify__Metadata__Show *show; + size_t n_video; + Spotify__Metadata__VideoFile **video; + size_t n_video_preview; + Spotify__Metadata__VideoFile **video_preview; + size_t n_audio_preview; + Spotify__Metadata__AudioFile **audio_preview; + size_t n_restriction; + Spotify__Metadata__Restriction **restriction; + Spotify__Metadata__ImageGroup *freeze_frame; + size_t n_keyword; + char **keyword; + protobuf_c_boolean has_allow_background_playback; + protobuf_c_boolean allow_background_playback; + size_t n_availability; + Spotify__Metadata__Availability **availability; + char *external_url; + protobuf_c_boolean has_type; + Spotify__Metadata__Episode__EpisodeType type; + protobuf_c_boolean has_music_and_talk; + protobuf_c_boolean music_and_talk; + size_t n_content_rating; + Spotify__Metadata__ContentRating **content_rating; + protobuf_c_boolean has_is_audiobook_chapter; + protobuf_c_boolean is_audiobook_chapter; +}; +#define SPOTIFY__METADATA__EPISODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__episode__descriptor) \ + , 0, {0,NULL}, NULL, 0, 0, 0,NULL, NULL, 0, 0, NULL, 0, 0, NULL, NULL, 0, 0, NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, NULL, 0,NULL, 0, 0, 0,NULL, NULL, 0, SPOTIFY__METADATA__EPISODE__EPISODE_TYPE__FULL, 0, 0, 0,NULL, 0, 0 } + + +struct Spotify__Metadata__Licensor +{ + ProtobufCMessage base; + protobuf_c_boolean has_uuid; + ProtobufCBinaryData uuid; +}; +#define SPOTIFY__METADATA__LICENSOR__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__licensor__descriptor) \ + , 0, {0,NULL} } + + +struct Spotify__Metadata__TopTracks { ProtobufCMessage base; char *country; size_t n_track; - Track **track; + Spotify__Metadata__Track **track; }; -#define TOP_TRACKS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&top_tracks__descriptor) \ +#define SPOTIFY__METADATA__TOP_TRACKS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__top_tracks__descriptor) \ , NULL, 0,NULL } -struct _ActivityPeriod +struct Spotify__Metadata__ActivityPeriod { ProtobufCMessage base; protobuf_c_boolean has_start_year; @@ -137,64 +411,23 @@ struct _ActivityPeriod protobuf_c_boolean has_decade; int32_t decade; }; -#define ACTIVITY_PERIOD__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&activity_period__descriptor) \ +#define SPOTIFY__METADATA__ACTIVITY_PERIOD__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__activity_period__descriptor) \ , 0, 0, 0, 0, 0, 0 } -struct _Artist -{ - ProtobufCMessage base; - protobuf_c_boolean has_gid; - ProtobufCBinaryData gid; - char *name; - protobuf_c_boolean has_popularity; - int32_t popularity; - size_t n_top_track; - TopTracks **top_track; - size_t n_album_group; - AlbumGroup **album_group; - size_t n_single_group; - AlbumGroup **single_group; - size_t n_compilation_group; - AlbumGroup **compilation_group; - size_t n_appears_on_group; - AlbumGroup **appears_on_group; - size_t n_genre; - char **genre; - size_t n_external_id; - ExternalId **external_id; - size_t n_portrait; - Image **portrait; - size_t n_biography; - Biography **biography; - size_t n_activity_period; - ActivityPeriod **activity_period; - size_t n_restriction; - Restriction **restriction; - size_t n_related; - Artist **related; - protobuf_c_boolean has_is_portrait_album_cover; - protobuf_c_boolean is_portrait_album_cover; - ImageGroup *portrait_group; -}; -#define ARTIST__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&artist__descriptor) \ - , 0, {0,NULL}, NULL, 0, 0, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0, 0, NULL } - - -struct _AlbumGroup +struct Spotify__Metadata__AlbumGroup { ProtobufCMessage base; size_t n_album; - Album **album; + Spotify__Metadata__Album **album; }; -#define ALBUM_GROUP__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&album_group__descriptor) \ +#define SPOTIFY__METADATA__ALBUM_GROUP__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__album_group__descriptor) \ , 0,NULL } -struct _Date +struct Spotify__Metadata__Date { ProtobufCMessage base; protobuf_c_boolean has_year; @@ -208,837 +441,685 @@ struct _Date protobuf_c_boolean has_minute; int32_t minute; }; -#define DATE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&date__descriptor) \ +#define SPOTIFY__METADATA__DATE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__date__descriptor) \ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } -struct _Album -{ - ProtobufCMessage base; - protobuf_c_boolean has_gid; - ProtobufCBinaryData gid; - char *name; - size_t n_artist; - Artist **artist; - protobuf_c_boolean has_typ; - Album__Type typ; - char *label; - Date *date; - protobuf_c_boolean has_popularity; - int32_t popularity; - size_t n_genre; - char **genre; - size_t n_cover; - Image **cover; - size_t n_external_id; - ExternalId **external_id; - size_t n_disc; - Disc **disc; - size_t n_review; - char **review; - size_t n_copyright; - Copyright **copyright; - size_t n_restriction; - Restriction **restriction; - size_t n_related; - Album **related; - size_t n_sale_period; - SalePeriod **sale_period; - ImageGroup *cover_group; -}; -#define ALBUM__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&album__descriptor) \ - , 0, {0,NULL}, NULL, 0,NULL, 0, ALBUM__TYPE__ALBUM, NULL, NULL, 0, 0, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, NULL } - - -struct _Track -{ - ProtobufCMessage base; - protobuf_c_boolean has_gid; - ProtobufCBinaryData gid; - char *name; - Album *album; - size_t n_artist; - Artist **artist; - protobuf_c_boolean has_number; - int32_t number; - protobuf_c_boolean has_disc_number; - int32_t disc_number; - protobuf_c_boolean has_duration; - int32_t duration; - protobuf_c_boolean has_popularity; - int32_t popularity; - protobuf_c_boolean has_explicit_; - protobuf_c_boolean explicit_; - size_t n_external_id; - ExternalId **external_id; - size_t n_restriction; - Restriction **restriction; - size_t n_file; - AudioFile **file; - size_t n_alternative; - Track **alternative; - size_t n_sale_period; - SalePeriod **sale_period; - size_t n_preview; - AudioFile **preview; -}; -#define TRACK__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&track__descriptor) \ - , 0, {0,NULL}, NULL, NULL, 0,NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL } - - -struct _Image +struct Spotify__Metadata__Image { ProtobufCMessage base; protobuf_c_boolean has_file_id; ProtobufCBinaryData file_id; protobuf_c_boolean has_size; - Image__Size size; + Spotify__Metadata__Image__Size size; protobuf_c_boolean has_width; int32_t width; protobuf_c_boolean has_height; int32_t height; }; -#define IMAGE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&image__descriptor) \ - , 0, {0,NULL}, 0, IMAGE__SIZE__DEFAULT, 0, 0, 0, 0 } +#define SPOTIFY__METADATA__IMAGE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__image__descriptor) \ + , 0, {0,NULL}, 0, SPOTIFY__METADATA__IMAGE__SIZE__DEFAULT, 0, 0, 0, 0 } -struct _ImageGroup +struct Spotify__Metadata__ImageGroup { ProtobufCMessage base; size_t n_image; - Image **image; + Spotify__Metadata__Image **image; }; -#define IMAGE_GROUP__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&image_group__descriptor) \ +#define SPOTIFY__METADATA__IMAGE_GROUP__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__image_group__descriptor) \ , 0,NULL } -struct _Biography +struct Spotify__Metadata__Biography { ProtobufCMessage base; char *text; size_t n_portrait; - Image **portrait; + Spotify__Metadata__Image **portrait; size_t n_portrait_group; - ImageGroup **portrait_group; + Spotify__Metadata__ImageGroup **portrait_group; }; -#define BIOGRAPHY__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&biography__descriptor) \ +#define SPOTIFY__METADATA__BIOGRAPHY__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__biography__descriptor) \ , NULL, 0,NULL, 0,NULL } -struct _Disc +struct Spotify__Metadata__Disc { ProtobufCMessage base; protobuf_c_boolean has_number; int32_t number; char *name; size_t n_track; - Track **track; + Spotify__Metadata__Track **track; }; -#define DISC__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&disc__descriptor) \ +#define SPOTIFY__METADATA__DISC__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__disc__descriptor) \ , 0, 0, NULL, 0,NULL } -struct _Copyright +struct Spotify__Metadata__Copyright { ProtobufCMessage base; - protobuf_c_boolean has_typ; - Copyright__Type typ; + protobuf_c_boolean has_type; + Spotify__Metadata__Copyright__Type type; char *text; }; -#define COPYRIGHT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (©right__descriptor) \ - , 0, COPYRIGHT__TYPE__P, NULL } +#define SPOTIFY__METADATA__COPYRIGHT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__copyright__descriptor) \ + , 0, SPOTIFY__METADATA__COPYRIGHT__TYPE__P, NULL } -struct _Restriction +typedef enum { + SPOTIFY__METADATA__RESTRICTION__COUNTRY_RESTRICTION__NOT_SET = 0, + SPOTIFY__METADATA__RESTRICTION__COUNTRY_RESTRICTION_COUNTRIES_ALLOWED = 2, + SPOTIFY__METADATA__RESTRICTION__COUNTRY_RESTRICTION_COUNTRIES_FORBIDDEN = 3 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SPOTIFY__METADATA__RESTRICTION__COUNTRY_RESTRICTION__CASE) +} Spotify__Metadata__Restriction__CountryRestrictionCase; + +struct Spotify__Metadata__Restriction { ProtobufCMessage base; size_t n_catalogue; - Restriction__Catalogue *catalogue; - char *countries_allowed; - char *countries_forbidden; - protobuf_c_boolean has_typ; - Restriction__Type typ; + Spotify__Metadata__Restriction__Catalogue *catalogue; + protobuf_c_boolean has_type; + Spotify__Metadata__Restriction__Type type; size_t n_catalogue_str; char **catalogue_str; + Spotify__Metadata__Restriction__CountryRestrictionCase country_restriction_case; + union { + char *countries_allowed; + char *countries_forbidden; + }; }; -#define RESTRICTION__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&restriction__descriptor) \ - , 0,NULL, NULL, NULL, 0, RESTRICTION__TYPE__STREAMING, 0,NULL } +#define SPOTIFY__METADATA__RESTRICTION__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__restriction__descriptor) \ + , 0,NULL, 0, SPOTIFY__METADATA__RESTRICTION__TYPE__STREAMING, 0,NULL, SPOTIFY__METADATA__RESTRICTION__COUNTRY_RESTRICTION__NOT_SET, {0} } -struct _Availability +struct Spotify__Metadata__Availability { ProtobufCMessage base; size_t n_catalogue_str; char **catalogue_str; - Date *start; + Spotify__Metadata__Date *start; }; -#define AVAILABILITY__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&availability__descriptor) \ +#define SPOTIFY__METADATA__AVAILABILITY__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__availability__descriptor) \ , 0,NULL, NULL } -struct _SalePeriod +struct Spotify__Metadata__SalePeriod { ProtobufCMessage base; size_t n_restriction; - Restriction **restriction; - Date *start; - Date *end; + Spotify__Metadata__Restriction **restriction; + Spotify__Metadata__Date *start; + Spotify__Metadata__Date *end; }; -#define SALE_PERIOD__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&sale_period__descriptor) \ +#define SPOTIFY__METADATA__SALE_PERIOD__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__sale_period__descriptor) \ , 0,NULL, NULL, NULL } -struct _ExternalId +struct Spotify__Metadata__ExternalId { ProtobufCMessage base; - char *typ; + char *type; char *id; }; -#define EXTERNAL_ID__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&external_id__descriptor) \ +#define SPOTIFY__METADATA__EXTERNAL_ID__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__external_id__descriptor) \ , NULL, NULL } -struct _AudioFile +struct Spotify__Metadata__AudioFile { ProtobufCMessage base; protobuf_c_boolean has_file_id; ProtobufCBinaryData file_id; protobuf_c_boolean has_format; - AudioFile__Format format; + Spotify__Metadata__AudioFile__Format format; }; -#define AUDIO_FILE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&audio_file__descriptor) \ - , 0, {0,NULL}, 0, AUDIO_FILE__FORMAT__OGG_VORBIS_96 } +#define SPOTIFY__METADATA__AUDIO_FILE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__audio_file__descriptor) \ + , 0, {0,NULL}, 0, SPOTIFY__METADATA__AUDIO_FILE__FORMAT__OGG_VORBIS_96 } -struct _VideoFile +struct Spotify__Metadata__VideoFile { ProtobufCMessage base; protobuf_c_boolean has_file_id; ProtobufCBinaryData file_id; }; -#define VIDEO_FILE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&video_file__descriptor) \ +#define SPOTIFY__METADATA__VIDEO_FILE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__video_file__descriptor) \ , 0, {0,NULL} } -/* - * Podcast Protos - */ -struct _Show +struct Spotify__Metadata__ContentRating { ProtobufCMessage base; - protobuf_c_boolean has_gid; - ProtobufCBinaryData gid; - char *name; - char *description; - protobuf_c_boolean has_deprecated_popularity; - int32_t deprecated_popularity; - char *publisher; - char *language; - protobuf_c_boolean has_explicit_; - protobuf_c_boolean explicit_; - ImageGroup *covers; - size_t n_episode; - Episode **episode; - size_t n_copyright; - Copyright **copyright; - size_t n_restriction; - Restriction **restriction; - size_t n_keyword; - char **keyword; - protobuf_c_boolean has_media_type; - Show__MediaType media_type; - protobuf_c_boolean has_consumption_order; - Show__ConsumptionOrder consumption_order; - protobuf_c_boolean has_interpret_restriction_using_geoip; - protobuf_c_boolean interpret_restriction_using_geoip; - size_t n_availability; - Availability **availability; - char *country_of_origin; - size_t n_categories; - Category **categories; - protobuf_c_boolean has_passthrough; - Show__PassthroughEnum passthrough; + char *country; + size_t n_tag; + char **tag; }; -#define SHOW__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&show__descriptor) \ - , 0, {0,NULL}, NULL, NULL, 0, 0, NULL, NULL, 0, 0, NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0, SHOW__MEDIA_TYPE__MIXED, 0, SHOW__CONSUMPTION_ORDER__SEQUENTIAL, 0, 0, 0,NULL, NULL, 0,NULL, 0, SHOW__PASSTHROUGH_ENUM__UNKNOWN } - - -struct _Episode -{ - ProtobufCMessage base; - protobuf_c_boolean has_gid; - ProtobufCBinaryData gid; - char *name; - protobuf_c_boolean has_duration; - int32_t duration; - protobuf_c_boolean has_popularity; - int32_t popularity; - size_t n_file; - AudioFile **file; - char *description; - protobuf_c_boolean has_number; - int32_t number; - Date *publish_time; - protobuf_c_boolean has_deprecated_popularity; - int32_t deprecated_popularity; - ImageGroup *covers; - char *language; - protobuf_c_boolean has_explicit_; - protobuf_c_boolean explicit_; - Show *show; - size_t n_video; - VideoFile **video; - size_t n_video_preview; - VideoFile **video_preview; - size_t n_audio_preview; - AudioFile **audio_preview; - size_t n_restriction; - Restriction **restriction; - ImageGroup *freeze_frame; - size_t n_keyword; - char **keyword; - /* - * Order of these two flags might be wrong! - */ - protobuf_c_boolean has_suppress_monetization; - protobuf_c_boolean suppress_monetization; - protobuf_c_boolean has_interpret_restriction_using_geoip; - protobuf_c_boolean interpret_restriction_using_geoip; - protobuf_c_boolean has_allow_background_playback; - protobuf_c_boolean allow_background_playback; - size_t n_availability; - Availability **availability; - char *external_url; - OriginalAudio *original_audio; -}; -#define EPISODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&episode__descriptor) \ - , 0, {0,NULL}, NULL, 0, 0, 0, 0, 0,NULL, NULL, 0, 0, NULL, 0, 0, NULL, NULL, 0, 0, NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, NULL, 0,NULL, 0, 0, 0, 0, 0, 0, 0,NULL, NULL, NULL } - - -struct _Category -{ - ProtobufCMessage base; - char *name; - size_t n_subcategories; - Category **subcategories; -}; -#define CATEGORY__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&category__descriptor) \ +#define SPOTIFY__METADATA__CONTENT_RATING__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&spotify__metadata__content_rating__descriptor) \ , NULL, 0,NULL } -struct _OriginalAudio -{ - ProtobufCMessage base; - protobuf_c_boolean has_uuid; - ProtobufCBinaryData uuid; -}; -#define ORIGINAL_AUDIO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&original_audio__descriptor) \ - , 0, {0,NULL} } - - -/* TopTracks methods */ -void top_tracks__init - (TopTracks *message); -size_t top_tracks__get_packed_size - (const TopTracks *message); -size_t top_tracks__pack - (const TopTracks *message, +/* Spotify__Metadata__Artist methods */ +void spotify__metadata__artist__init + (Spotify__Metadata__Artist *message); +size_t spotify__metadata__artist__get_packed_size + (const Spotify__Metadata__Artist *message); +size_t spotify__metadata__artist__pack + (const Spotify__Metadata__Artist *message, uint8_t *out); -size_t top_tracks__pack_to_buffer - (const TopTracks *message, +size_t spotify__metadata__artist__pack_to_buffer + (const Spotify__Metadata__Artist *message, ProtobufCBuffer *buffer); -TopTracks * - top_tracks__unpack +Spotify__Metadata__Artist * + spotify__metadata__artist__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void top_tracks__free_unpacked - (TopTracks *message, +void spotify__metadata__artist__free_unpacked + (Spotify__Metadata__Artist *message, ProtobufCAllocator *allocator); -/* ActivityPeriod methods */ -void activity_period__init - (ActivityPeriod *message); -size_t activity_period__get_packed_size - (const ActivityPeriod *message); -size_t activity_period__pack - (const ActivityPeriod *message, +/* Spotify__Metadata__Album methods */ +void spotify__metadata__album__init + (Spotify__Metadata__Album *message); +size_t spotify__metadata__album__get_packed_size + (const Spotify__Metadata__Album *message); +size_t spotify__metadata__album__pack + (const Spotify__Metadata__Album *message, uint8_t *out); -size_t activity_period__pack_to_buffer - (const ActivityPeriod *message, +size_t spotify__metadata__album__pack_to_buffer + (const Spotify__Metadata__Album *message, ProtobufCBuffer *buffer); -ActivityPeriod * - activity_period__unpack +Spotify__Metadata__Album * + spotify__metadata__album__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void activity_period__free_unpacked - (ActivityPeriod *message, +void spotify__metadata__album__free_unpacked + (Spotify__Metadata__Album *message, ProtobufCAllocator *allocator); -/* Artist methods */ -void artist__init - (Artist *message); -size_t artist__get_packed_size - (const Artist *message); -size_t artist__pack - (const Artist *message, +/* Spotify__Metadata__Track methods */ +void spotify__metadata__track__init + (Spotify__Metadata__Track *message); +size_t spotify__metadata__track__get_packed_size + (const Spotify__Metadata__Track *message); +size_t spotify__metadata__track__pack + (const Spotify__Metadata__Track *message, uint8_t *out); -size_t artist__pack_to_buffer - (const Artist *message, +size_t spotify__metadata__track__pack_to_buffer + (const Spotify__Metadata__Track *message, ProtobufCBuffer *buffer); -Artist * - artist__unpack +Spotify__Metadata__Track * + spotify__metadata__track__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void artist__free_unpacked - (Artist *message, +void spotify__metadata__track__free_unpacked + (Spotify__Metadata__Track *message, ProtobufCAllocator *allocator); -/* AlbumGroup methods */ -void album_group__init - (AlbumGroup *message); -size_t album_group__get_packed_size - (const AlbumGroup *message); -size_t album_group__pack - (const AlbumGroup *message, +/* Spotify__Metadata__ArtistWithRole methods */ +void spotify__metadata__artist_with_role__init + (Spotify__Metadata__ArtistWithRole *message); +size_t spotify__metadata__artist_with_role__get_packed_size + (const Spotify__Metadata__ArtistWithRole *message); +size_t spotify__metadata__artist_with_role__pack + (const Spotify__Metadata__ArtistWithRole *message, uint8_t *out); -size_t album_group__pack_to_buffer - (const AlbumGroup *message, +size_t spotify__metadata__artist_with_role__pack_to_buffer + (const Spotify__Metadata__ArtistWithRole *message, ProtobufCBuffer *buffer); -AlbumGroup * - album_group__unpack +Spotify__Metadata__ArtistWithRole * + spotify__metadata__artist_with_role__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void album_group__free_unpacked - (AlbumGroup *message, +void spotify__metadata__artist_with_role__free_unpacked + (Spotify__Metadata__ArtistWithRole *message, ProtobufCAllocator *allocator); -/* Date methods */ -void date__init - (Date *message); -size_t date__get_packed_size - (const Date *message); -size_t date__pack - (const Date *message, +/* Spotify__Metadata__Show methods */ +void spotify__metadata__show__init + (Spotify__Metadata__Show *message); +size_t spotify__metadata__show__get_packed_size + (const Spotify__Metadata__Show *message); +size_t spotify__metadata__show__pack + (const Spotify__Metadata__Show *message, uint8_t *out); -size_t date__pack_to_buffer - (const Date *message, +size_t spotify__metadata__show__pack_to_buffer + (const Spotify__Metadata__Show *message, ProtobufCBuffer *buffer); -Date * - date__unpack +Spotify__Metadata__Show * + spotify__metadata__show__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void date__free_unpacked - (Date *message, +void spotify__metadata__show__free_unpacked + (Spotify__Metadata__Show *message, ProtobufCAllocator *allocator); -/* Album methods */ -void album__init - (Album *message); -size_t album__get_packed_size - (const Album *message); -size_t album__pack - (const Album *message, +/* Spotify__Metadata__Episode methods */ +void spotify__metadata__episode__init + (Spotify__Metadata__Episode *message); +size_t spotify__metadata__episode__get_packed_size + (const Spotify__Metadata__Episode *message); +size_t spotify__metadata__episode__pack + (const Spotify__Metadata__Episode *message, uint8_t *out); -size_t album__pack_to_buffer - (const Album *message, +size_t spotify__metadata__episode__pack_to_buffer + (const Spotify__Metadata__Episode *message, ProtobufCBuffer *buffer); -Album * - album__unpack +Spotify__Metadata__Episode * + spotify__metadata__episode__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void album__free_unpacked - (Album *message, +void spotify__metadata__episode__free_unpacked + (Spotify__Metadata__Episode *message, ProtobufCAllocator *allocator); -/* Track methods */ -void track__init - (Track *message); -size_t track__get_packed_size - (const Track *message); -size_t track__pack - (const Track *message, +/* Spotify__Metadata__Licensor methods */ +void spotify__metadata__licensor__init + (Spotify__Metadata__Licensor *message); +size_t spotify__metadata__licensor__get_packed_size + (const Spotify__Metadata__Licensor *message); +size_t spotify__metadata__licensor__pack + (const Spotify__Metadata__Licensor *message, uint8_t *out); -size_t track__pack_to_buffer - (const Track *message, +size_t spotify__metadata__licensor__pack_to_buffer + (const Spotify__Metadata__Licensor *message, ProtobufCBuffer *buffer); -Track * - track__unpack +Spotify__Metadata__Licensor * + spotify__metadata__licensor__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void track__free_unpacked - (Track *message, +void spotify__metadata__licensor__free_unpacked + (Spotify__Metadata__Licensor *message, ProtobufCAllocator *allocator); -/* Image methods */ -void image__init - (Image *message); -size_t image__get_packed_size - (const Image *message); -size_t image__pack - (const Image *message, +/* Spotify__Metadata__TopTracks methods */ +void spotify__metadata__top_tracks__init + (Spotify__Metadata__TopTracks *message); +size_t spotify__metadata__top_tracks__get_packed_size + (const Spotify__Metadata__TopTracks *message); +size_t spotify__metadata__top_tracks__pack + (const Spotify__Metadata__TopTracks *message, uint8_t *out); -size_t image__pack_to_buffer - (const Image *message, +size_t spotify__metadata__top_tracks__pack_to_buffer + (const Spotify__Metadata__TopTracks *message, ProtobufCBuffer *buffer); -Image * - image__unpack +Spotify__Metadata__TopTracks * + spotify__metadata__top_tracks__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void image__free_unpacked - (Image *message, +void spotify__metadata__top_tracks__free_unpacked + (Spotify__Metadata__TopTracks *message, ProtobufCAllocator *allocator); -/* ImageGroup methods */ -void image_group__init - (ImageGroup *message); -size_t image_group__get_packed_size - (const ImageGroup *message); -size_t image_group__pack - (const ImageGroup *message, +/* Spotify__Metadata__ActivityPeriod methods */ +void spotify__metadata__activity_period__init + (Spotify__Metadata__ActivityPeriod *message); +size_t spotify__metadata__activity_period__get_packed_size + (const Spotify__Metadata__ActivityPeriod *message); +size_t spotify__metadata__activity_period__pack + (const Spotify__Metadata__ActivityPeriod *message, uint8_t *out); -size_t image_group__pack_to_buffer - (const ImageGroup *message, +size_t spotify__metadata__activity_period__pack_to_buffer + (const Spotify__Metadata__ActivityPeriod *message, ProtobufCBuffer *buffer); -ImageGroup * - image_group__unpack +Spotify__Metadata__ActivityPeriod * + spotify__metadata__activity_period__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void image_group__free_unpacked - (ImageGroup *message, +void spotify__metadata__activity_period__free_unpacked + (Spotify__Metadata__ActivityPeriod *message, ProtobufCAllocator *allocator); -/* Biography methods */ -void biography__init - (Biography *message); -size_t biography__get_packed_size - (const Biography *message); -size_t biography__pack - (const Biography *message, +/* Spotify__Metadata__AlbumGroup methods */ +void spotify__metadata__album_group__init + (Spotify__Metadata__AlbumGroup *message); +size_t spotify__metadata__album_group__get_packed_size + (const Spotify__Metadata__AlbumGroup *message); +size_t spotify__metadata__album_group__pack + (const Spotify__Metadata__AlbumGroup *message, uint8_t *out); -size_t biography__pack_to_buffer - (const Biography *message, +size_t spotify__metadata__album_group__pack_to_buffer + (const Spotify__Metadata__AlbumGroup *message, ProtobufCBuffer *buffer); -Biography * - biography__unpack +Spotify__Metadata__AlbumGroup * + spotify__metadata__album_group__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void biography__free_unpacked - (Biography *message, +void spotify__metadata__album_group__free_unpacked + (Spotify__Metadata__AlbumGroup *message, ProtobufCAllocator *allocator); -/* Disc methods */ -void disc__init - (Disc *message); -size_t disc__get_packed_size - (const Disc *message); -size_t disc__pack - (const Disc *message, +/* Spotify__Metadata__Date methods */ +void spotify__metadata__date__init + (Spotify__Metadata__Date *message); +size_t spotify__metadata__date__get_packed_size + (const Spotify__Metadata__Date *message); +size_t spotify__metadata__date__pack + (const Spotify__Metadata__Date *message, uint8_t *out); -size_t disc__pack_to_buffer - (const Disc *message, +size_t spotify__metadata__date__pack_to_buffer + (const Spotify__Metadata__Date *message, ProtobufCBuffer *buffer); -Disc * - disc__unpack +Spotify__Metadata__Date * + spotify__metadata__date__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void disc__free_unpacked - (Disc *message, +void spotify__metadata__date__free_unpacked + (Spotify__Metadata__Date *message, ProtobufCAllocator *allocator); -/* Copyright methods */ -void copyright__init - (Copyright *message); -size_t copyright__get_packed_size - (const Copyright *message); -size_t copyright__pack - (const Copyright *message, +/* Spotify__Metadata__Image methods */ +void spotify__metadata__image__init + (Spotify__Metadata__Image *message); +size_t spotify__metadata__image__get_packed_size + (const Spotify__Metadata__Image *message); +size_t spotify__metadata__image__pack + (const Spotify__Metadata__Image *message, uint8_t *out); -size_t copyright__pack_to_buffer - (const Copyright *message, +size_t spotify__metadata__image__pack_to_buffer + (const Spotify__Metadata__Image *message, ProtobufCBuffer *buffer); -Copyright * - copyright__unpack +Spotify__Metadata__Image * + spotify__metadata__image__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void copyright__free_unpacked - (Copyright *message, +void spotify__metadata__image__free_unpacked + (Spotify__Metadata__Image *message, ProtobufCAllocator *allocator); -/* Restriction methods */ -void restriction__init - (Restriction *message); -size_t restriction__get_packed_size - (const Restriction *message); -size_t restriction__pack - (const Restriction *message, +/* Spotify__Metadata__ImageGroup methods */ +void spotify__metadata__image_group__init + (Spotify__Metadata__ImageGroup *message); +size_t spotify__metadata__image_group__get_packed_size + (const Spotify__Metadata__ImageGroup *message); +size_t spotify__metadata__image_group__pack + (const Spotify__Metadata__ImageGroup *message, uint8_t *out); -size_t restriction__pack_to_buffer - (const Restriction *message, +size_t spotify__metadata__image_group__pack_to_buffer + (const Spotify__Metadata__ImageGroup *message, ProtobufCBuffer *buffer); -Restriction * - restriction__unpack +Spotify__Metadata__ImageGroup * + spotify__metadata__image_group__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void restriction__free_unpacked - (Restriction *message, +void spotify__metadata__image_group__free_unpacked + (Spotify__Metadata__ImageGroup *message, ProtobufCAllocator *allocator); -/* Availability methods */ -void availability__init - (Availability *message); -size_t availability__get_packed_size - (const Availability *message); -size_t availability__pack - (const Availability *message, +/* Spotify__Metadata__Biography methods */ +void spotify__metadata__biography__init + (Spotify__Metadata__Biography *message); +size_t spotify__metadata__biography__get_packed_size + (const Spotify__Metadata__Biography *message); +size_t spotify__metadata__biography__pack + (const Spotify__Metadata__Biography *message, uint8_t *out); -size_t availability__pack_to_buffer - (const Availability *message, +size_t spotify__metadata__biography__pack_to_buffer + (const Spotify__Metadata__Biography *message, ProtobufCBuffer *buffer); -Availability * - availability__unpack +Spotify__Metadata__Biography * + spotify__metadata__biography__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void availability__free_unpacked - (Availability *message, +void spotify__metadata__biography__free_unpacked + (Spotify__Metadata__Biography *message, ProtobufCAllocator *allocator); -/* SalePeriod methods */ -void sale_period__init - (SalePeriod *message); -size_t sale_period__get_packed_size - (const SalePeriod *message); -size_t sale_period__pack - (const SalePeriod *message, +/* Spotify__Metadata__Disc methods */ +void spotify__metadata__disc__init + (Spotify__Metadata__Disc *message); +size_t spotify__metadata__disc__get_packed_size + (const Spotify__Metadata__Disc *message); +size_t spotify__metadata__disc__pack + (const Spotify__Metadata__Disc *message, uint8_t *out); -size_t sale_period__pack_to_buffer - (const SalePeriod *message, +size_t spotify__metadata__disc__pack_to_buffer + (const Spotify__Metadata__Disc *message, ProtobufCBuffer *buffer); -SalePeriod * - sale_period__unpack +Spotify__Metadata__Disc * + spotify__metadata__disc__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void sale_period__free_unpacked - (SalePeriod *message, +void spotify__metadata__disc__free_unpacked + (Spotify__Metadata__Disc *message, ProtobufCAllocator *allocator); -/* ExternalId methods */ -void external_id__init - (ExternalId *message); -size_t external_id__get_packed_size - (const ExternalId *message); -size_t external_id__pack - (const ExternalId *message, +/* Spotify__Metadata__Copyright methods */ +void spotify__metadata__copyright__init + (Spotify__Metadata__Copyright *message); +size_t spotify__metadata__copyright__get_packed_size + (const Spotify__Metadata__Copyright *message); +size_t spotify__metadata__copyright__pack + (const Spotify__Metadata__Copyright *message, uint8_t *out); -size_t external_id__pack_to_buffer - (const ExternalId *message, +size_t spotify__metadata__copyright__pack_to_buffer + (const Spotify__Metadata__Copyright *message, ProtobufCBuffer *buffer); -ExternalId * - external_id__unpack +Spotify__Metadata__Copyright * + spotify__metadata__copyright__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void external_id__free_unpacked - (ExternalId *message, +void spotify__metadata__copyright__free_unpacked + (Spotify__Metadata__Copyright *message, ProtobufCAllocator *allocator); -/* AudioFile methods */ -void audio_file__init - (AudioFile *message); -size_t audio_file__get_packed_size - (const AudioFile *message); -size_t audio_file__pack - (const AudioFile *message, +/* Spotify__Metadata__Restriction methods */ +void spotify__metadata__restriction__init + (Spotify__Metadata__Restriction *message); +size_t spotify__metadata__restriction__get_packed_size + (const Spotify__Metadata__Restriction *message); +size_t spotify__metadata__restriction__pack + (const Spotify__Metadata__Restriction *message, uint8_t *out); -size_t audio_file__pack_to_buffer - (const AudioFile *message, +size_t spotify__metadata__restriction__pack_to_buffer + (const Spotify__Metadata__Restriction *message, ProtobufCBuffer *buffer); -AudioFile * - audio_file__unpack +Spotify__Metadata__Restriction * + spotify__metadata__restriction__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void audio_file__free_unpacked - (AudioFile *message, +void spotify__metadata__restriction__free_unpacked + (Spotify__Metadata__Restriction *message, ProtobufCAllocator *allocator); -/* VideoFile methods */ -void video_file__init - (VideoFile *message); -size_t video_file__get_packed_size - (const VideoFile *message); -size_t video_file__pack - (const VideoFile *message, +/* Spotify__Metadata__Availability methods */ +void spotify__metadata__availability__init + (Spotify__Metadata__Availability *message); +size_t spotify__metadata__availability__get_packed_size + (const Spotify__Metadata__Availability *message); +size_t spotify__metadata__availability__pack + (const Spotify__Metadata__Availability *message, uint8_t *out); -size_t video_file__pack_to_buffer - (const VideoFile *message, +size_t spotify__metadata__availability__pack_to_buffer + (const Spotify__Metadata__Availability *message, ProtobufCBuffer *buffer); -VideoFile * - video_file__unpack +Spotify__Metadata__Availability * + spotify__metadata__availability__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void video_file__free_unpacked - (VideoFile *message, +void spotify__metadata__availability__free_unpacked + (Spotify__Metadata__Availability *message, ProtobufCAllocator *allocator); -/* Show methods */ -void show__init - (Show *message); -size_t show__get_packed_size - (const Show *message); -size_t show__pack - (const Show *message, +/* Spotify__Metadata__SalePeriod methods */ +void spotify__metadata__sale_period__init + (Spotify__Metadata__SalePeriod *message); +size_t spotify__metadata__sale_period__get_packed_size + (const Spotify__Metadata__SalePeriod *message); +size_t spotify__metadata__sale_period__pack + (const Spotify__Metadata__SalePeriod *message, uint8_t *out); -size_t show__pack_to_buffer - (const Show *message, +size_t spotify__metadata__sale_period__pack_to_buffer + (const Spotify__Metadata__SalePeriod *message, ProtobufCBuffer *buffer); -Show * - show__unpack +Spotify__Metadata__SalePeriod * + spotify__metadata__sale_period__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void show__free_unpacked - (Show *message, +void spotify__metadata__sale_period__free_unpacked + (Spotify__Metadata__SalePeriod *message, ProtobufCAllocator *allocator); -/* Episode methods */ -void episode__init - (Episode *message); -size_t episode__get_packed_size - (const Episode *message); -size_t episode__pack - (const Episode *message, +/* Spotify__Metadata__ExternalId methods */ +void spotify__metadata__external_id__init + (Spotify__Metadata__ExternalId *message); +size_t spotify__metadata__external_id__get_packed_size + (const Spotify__Metadata__ExternalId *message); +size_t spotify__metadata__external_id__pack + (const Spotify__Metadata__ExternalId *message, uint8_t *out); -size_t episode__pack_to_buffer - (const Episode *message, +size_t spotify__metadata__external_id__pack_to_buffer + (const Spotify__Metadata__ExternalId *message, ProtobufCBuffer *buffer); -Episode * - episode__unpack +Spotify__Metadata__ExternalId * + spotify__metadata__external_id__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void episode__free_unpacked - (Episode *message, +void spotify__metadata__external_id__free_unpacked + (Spotify__Metadata__ExternalId *message, ProtobufCAllocator *allocator); -/* Category methods */ -void category__init - (Category *message); -size_t category__get_packed_size - (const Category *message); -size_t category__pack - (const Category *message, +/* Spotify__Metadata__AudioFile methods */ +void spotify__metadata__audio_file__init + (Spotify__Metadata__AudioFile *message); +size_t spotify__metadata__audio_file__get_packed_size + (const Spotify__Metadata__AudioFile *message); +size_t spotify__metadata__audio_file__pack + (const Spotify__Metadata__AudioFile *message, uint8_t *out); -size_t category__pack_to_buffer - (const Category *message, +size_t spotify__metadata__audio_file__pack_to_buffer + (const Spotify__Metadata__AudioFile *message, ProtobufCBuffer *buffer); -Category * - category__unpack +Spotify__Metadata__AudioFile * + spotify__metadata__audio_file__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void category__free_unpacked - (Category *message, +void spotify__metadata__audio_file__free_unpacked + (Spotify__Metadata__AudioFile *message, ProtobufCAllocator *allocator); -/* OriginalAudio methods */ -void original_audio__init - (OriginalAudio *message); -size_t original_audio__get_packed_size - (const OriginalAudio *message); -size_t original_audio__pack - (const OriginalAudio *message, +/* Spotify__Metadata__VideoFile methods */ +void spotify__metadata__video_file__init + (Spotify__Metadata__VideoFile *message); +size_t spotify__metadata__video_file__get_packed_size + (const Spotify__Metadata__VideoFile *message); +size_t spotify__metadata__video_file__pack + (const Spotify__Metadata__VideoFile *message, uint8_t *out); -size_t original_audio__pack_to_buffer - (const OriginalAudio *message, +size_t spotify__metadata__video_file__pack_to_buffer + (const Spotify__Metadata__VideoFile *message, ProtobufCBuffer *buffer); -OriginalAudio * - original_audio__unpack +Spotify__Metadata__VideoFile * + spotify__metadata__video_file__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data); -void original_audio__free_unpacked - (OriginalAudio *message, +void spotify__metadata__video_file__free_unpacked + (Spotify__Metadata__VideoFile *message, + ProtobufCAllocator *allocator); +/* Spotify__Metadata__ContentRating methods */ +void spotify__metadata__content_rating__init + (Spotify__Metadata__ContentRating *message); +size_t spotify__metadata__content_rating__get_packed_size + (const Spotify__Metadata__ContentRating *message); +size_t spotify__metadata__content_rating__pack + (const Spotify__Metadata__ContentRating *message, + uint8_t *out); +size_t spotify__metadata__content_rating__pack_to_buffer + (const Spotify__Metadata__ContentRating *message, + ProtobufCBuffer *buffer); +Spotify__Metadata__ContentRating * + spotify__metadata__content_rating__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void spotify__metadata__content_rating__free_unpacked + (Spotify__Metadata__ContentRating *message, ProtobufCAllocator *allocator); /* --- per-message closures --- */ -typedef void (*TopTracks_Closure) - (const TopTracks *message, +typedef void (*Spotify__Metadata__Artist_Closure) + (const Spotify__Metadata__Artist *message, void *closure_data); -typedef void (*ActivityPeriod_Closure) - (const ActivityPeriod *message, +typedef void (*Spotify__Metadata__Album_Closure) + (const Spotify__Metadata__Album *message, void *closure_data); -typedef void (*Artist_Closure) - (const Artist *message, +typedef void (*Spotify__Metadata__Track_Closure) + (const Spotify__Metadata__Track *message, void *closure_data); -typedef void (*AlbumGroup_Closure) - (const AlbumGroup *message, +typedef void (*Spotify__Metadata__ArtistWithRole_Closure) + (const Spotify__Metadata__ArtistWithRole *message, void *closure_data); -typedef void (*Date_Closure) - (const Date *message, +typedef void (*Spotify__Metadata__Show_Closure) + (const Spotify__Metadata__Show *message, void *closure_data); -typedef void (*Album_Closure) - (const Album *message, +typedef void (*Spotify__Metadata__Episode_Closure) + (const Spotify__Metadata__Episode *message, void *closure_data); -typedef void (*Track_Closure) - (const Track *message, +typedef void (*Spotify__Metadata__Licensor_Closure) + (const Spotify__Metadata__Licensor *message, void *closure_data); -typedef void (*Image_Closure) - (const Image *message, +typedef void (*Spotify__Metadata__TopTracks_Closure) + (const Spotify__Metadata__TopTracks *message, void *closure_data); -typedef void (*ImageGroup_Closure) - (const ImageGroup *message, +typedef void (*Spotify__Metadata__ActivityPeriod_Closure) + (const Spotify__Metadata__ActivityPeriod *message, void *closure_data); -typedef void (*Biography_Closure) - (const Biography *message, +typedef void (*Spotify__Metadata__AlbumGroup_Closure) + (const Spotify__Metadata__AlbumGroup *message, void *closure_data); -typedef void (*Disc_Closure) - (const Disc *message, +typedef void (*Spotify__Metadata__Date_Closure) + (const Spotify__Metadata__Date *message, void *closure_data); -typedef void (*Copyright_Closure) - (const Copyright *message, +typedef void (*Spotify__Metadata__Image_Closure) + (const Spotify__Metadata__Image *message, void *closure_data); -typedef void (*Restriction_Closure) - (const Restriction *message, +typedef void (*Spotify__Metadata__ImageGroup_Closure) + (const Spotify__Metadata__ImageGroup *message, void *closure_data); -typedef void (*Availability_Closure) - (const Availability *message, +typedef void (*Spotify__Metadata__Biography_Closure) + (const Spotify__Metadata__Biography *message, void *closure_data); -typedef void (*SalePeriod_Closure) - (const SalePeriod *message, +typedef void (*Spotify__Metadata__Disc_Closure) + (const Spotify__Metadata__Disc *message, void *closure_data); -typedef void (*ExternalId_Closure) - (const ExternalId *message, +typedef void (*Spotify__Metadata__Copyright_Closure) + (const Spotify__Metadata__Copyright *message, void *closure_data); -typedef void (*AudioFile_Closure) - (const AudioFile *message, +typedef void (*Spotify__Metadata__Restriction_Closure) + (const Spotify__Metadata__Restriction *message, void *closure_data); -typedef void (*VideoFile_Closure) - (const VideoFile *message, +typedef void (*Spotify__Metadata__Availability_Closure) + (const Spotify__Metadata__Availability *message, void *closure_data); -typedef void (*Show_Closure) - (const Show *message, +typedef void (*Spotify__Metadata__SalePeriod_Closure) + (const Spotify__Metadata__SalePeriod *message, void *closure_data); -typedef void (*Episode_Closure) - (const Episode *message, +typedef void (*Spotify__Metadata__ExternalId_Closure) + (const Spotify__Metadata__ExternalId *message, void *closure_data); -typedef void (*Category_Closure) - (const Category *message, +typedef void (*Spotify__Metadata__AudioFile_Closure) + (const Spotify__Metadata__AudioFile *message, void *closure_data); -typedef void (*OriginalAudio_Closure) - (const OriginalAudio *message, +typedef void (*Spotify__Metadata__VideoFile_Closure) + (const Spotify__Metadata__VideoFile *message, + void *closure_data); +typedef void (*Spotify__Metadata__ContentRating_Closure) + (const Spotify__Metadata__ContentRating *message, void *closure_data); /* --- services --- */ @@ -1046,39 +1127,41 @@ typedef void (*OriginalAudio_Closure) /* --- descriptors --- */ -extern const ProtobufCMessageDescriptor top_tracks__descriptor; -extern const ProtobufCMessageDescriptor activity_period__descriptor; -extern const ProtobufCMessageDescriptor artist__descriptor; -extern const ProtobufCMessageDescriptor album_group__descriptor; -extern const ProtobufCMessageDescriptor date__descriptor; -extern const ProtobufCMessageDescriptor album__descriptor; -extern const ProtobufCEnumDescriptor album__type__descriptor; -extern const ProtobufCMessageDescriptor track__descriptor; -extern const ProtobufCMessageDescriptor image__descriptor; -extern const ProtobufCEnumDescriptor image__size__descriptor; -extern const ProtobufCMessageDescriptor image_group__descriptor; -extern const ProtobufCMessageDescriptor biography__descriptor; -extern const ProtobufCMessageDescriptor disc__descriptor; -extern const ProtobufCMessageDescriptor copyright__descriptor; -extern const ProtobufCEnumDescriptor copyright__type__descriptor; -extern const ProtobufCMessageDescriptor restriction__descriptor; -extern const ProtobufCEnumDescriptor restriction__catalogue__descriptor; -extern const ProtobufCEnumDescriptor restriction__type__descriptor; -extern const ProtobufCMessageDescriptor availability__descriptor; -extern const ProtobufCMessageDescriptor sale_period__descriptor; -extern const ProtobufCMessageDescriptor external_id__descriptor; -extern const ProtobufCMessageDescriptor audio_file__descriptor; -extern const ProtobufCEnumDescriptor audio_file__format__descriptor; -extern const ProtobufCMessageDescriptor video_file__descriptor; -extern const ProtobufCMessageDescriptor show__descriptor; -extern const ProtobufCEnumDescriptor show__media_type__descriptor; -extern const ProtobufCEnumDescriptor show__consumption_order__descriptor; -extern const ProtobufCEnumDescriptor show__passthrough_enum__descriptor; -extern const ProtobufCMessageDescriptor episode__descriptor; -extern const ProtobufCMessageDescriptor category__descriptor; -extern const ProtobufCMessageDescriptor original_audio__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__artist__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__album__descriptor; +extern const ProtobufCEnumDescriptor spotify__metadata__album__type__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__track__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__artist_with_role__descriptor; +extern const ProtobufCEnumDescriptor spotify__metadata__artist_with_role__artist_role__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__show__descriptor; +extern const ProtobufCEnumDescriptor spotify__metadata__show__media_type__descriptor; +extern const ProtobufCEnumDescriptor spotify__metadata__show__consumption_order__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__episode__descriptor; +extern const ProtobufCEnumDescriptor spotify__metadata__episode__episode_type__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__licensor__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__top_tracks__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__activity_period__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__album_group__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__date__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__image__descriptor; +extern const ProtobufCEnumDescriptor spotify__metadata__image__size__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__image_group__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__biography__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__disc__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__copyright__descriptor; +extern const ProtobufCEnumDescriptor spotify__metadata__copyright__type__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__restriction__descriptor; +extern const ProtobufCEnumDescriptor spotify__metadata__restriction__catalogue__descriptor; +extern const ProtobufCEnumDescriptor spotify__metadata__restriction__type__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__availability__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__sale_period__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__external_id__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__audio_file__descriptor; +extern const ProtobufCEnumDescriptor spotify__metadata__audio_file__format__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__video_file__descriptor; +extern const ProtobufCMessageDescriptor spotify__metadata__content_rating__descriptor; PROTOBUF_C__END_DECLS -#endif /* PROTOBUF_C_proto_2fmetadata_2eproto__INCLUDED */ +#endif /* PROTOBUF_C_metadata_2eproto__INCLUDED */ diff --git a/src/inputs/librespot-c/src/proto/metadata.proto b/src/inputs/librespot-c/src/proto/metadata.proto index 3812f94e..ff7cf35d 100644 --- a/src/inputs/librespot-c/src/proto/metadata.proto +++ b/src/inputs/librespot-c/src/proto/metadata.proto @@ -1,266 +1,318 @@ syntax = "proto2"; -message TopTracks { - optional string country = 0x1; - repeated Track track = 0x2; -} - -message ActivityPeriod { - optional sint32 start_year = 0x1; - optional sint32 end_year = 0x2; - optional sint32 decade = 0x3; -} +package spotify.metadata; message Artist { - optional bytes gid = 0x1; - optional string name = 0x2; - optional sint32 popularity = 0x3; - repeated TopTracks top_track = 0x4; - repeated AlbumGroup album_group = 0x5; - repeated AlbumGroup single_group = 0x6; - repeated AlbumGroup compilation_group = 0x7; - repeated AlbumGroup appears_on_group = 0x8; - repeated string genre = 0x9; - repeated ExternalId external_id = 0xa; - repeated Image portrait = 0xb; - repeated Biography biography = 0xc; - repeated ActivityPeriod activity_period = 0xd; - repeated Restriction restriction = 0xe; - repeated Artist related = 0xf; - optional bool is_portrait_album_cover = 0x10; - optional ImageGroup portrait_group = 0x11; -} - -message AlbumGroup { - repeated Album album = 0x1; -} - -message Date { - optional sint32 year = 0x1; - optional sint32 month = 0x2; - optional sint32 day = 0x3; - optional sint32 hour = 0x4; - optional sint32 minute = 0x5; + optional bytes gid = 1; + optional string name = 2; + optional sint32 popularity = 3; + repeated TopTracks top_track = 4; + repeated AlbumGroup album_group = 5; + repeated AlbumGroup single_group = 6; + repeated AlbumGroup compilation_group = 7; + repeated AlbumGroup appears_on_group = 8; + repeated string genre = 9; + repeated ExternalId external_id = 10; + repeated Image portrait = 11; + repeated Biography biography = 12; + repeated ActivityPeriod activity_period = 13; + repeated Restriction restriction = 14; + repeated Artist related = 15; + optional bool is_portrait_album_cover = 16; + optional ImageGroup portrait_group = 17; + repeated SalePeriod sale_period = 18; + repeated Availability availability = 20; } message Album { - optional bytes gid = 0x1; - optional string name = 0x2; - repeated Artist artist = 0x3; - optional Type typ = 0x4; - enum Type { - ALBUM = 0x1; - SINGLE = 0x2; - COMPILATION = 0x3; - EP = 0x4; - } - optional string label = 0x5; - optional Date date = 0x6; - optional sint32 popularity = 0x7; - repeated string genre = 0x8; - repeated Image cover = 0x9; - repeated ExternalId external_id = 0xa; - repeated Disc disc = 0xb; - repeated string review = 0xc; - repeated Copyright copyright = 0xd; - repeated Restriction restriction = 0xe; - repeated Album related = 0xf; - repeated SalePeriod sale_period = 0x10; - optional ImageGroup cover_group = 0x11; + optional bytes gid = 1; + optional string name = 2; + repeated Artist artist = 3; + + optional Type type = 4; + enum Type { + ALBUM = 1; + SINGLE = 2; + COMPILATION = 3; + EP = 4; + AUDIOBOOK = 5; + PODCAST = 6; + } + + optional string label = 5; + optional Date date = 6; + optional sint32 popularity = 7; + repeated string genre = 8; + repeated Image cover = 9; + repeated ExternalId external_id = 10; + repeated Disc disc = 11; + repeated string review = 12; + repeated Copyright copyright = 13; + repeated Restriction restriction = 14; + repeated Album related = 15; + repeated SalePeriod sale_period = 16; + optional ImageGroup cover_group = 17; + optional string original_title = 18; + optional string version_title = 19; + optional string type_str = 20; + repeated Availability availability = 23; } message Track { - optional bytes gid = 0x1; - optional string name = 0x2; - optional Album album = 0x3; - repeated Artist artist = 0x4; - optional sint32 number = 0x5; - optional sint32 disc_number = 0x6; - optional sint32 duration = 0x7; - optional sint32 popularity = 0x8; - optional bool explicit = 0x9; - repeated ExternalId external_id = 0xa; - repeated Restriction restriction = 0xb; - repeated AudioFile file = 0xc; - repeated Track alternative = 0xd; - repeated SalePeriod sale_period = 0xe; - repeated AudioFile preview = 0xf; + optional bytes gid = 1; + optional string name = 2; + optional Album album = 3; + repeated Artist artist = 4; + optional sint32 number = 5; + optional sint32 disc_number = 6; + optional sint32 duration = 7; + optional sint32 popularity = 8; + optional bool explicit = 9; + repeated ExternalId external_id = 10; + repeated Restriction restriction = 11; + repeated AudioFile file = 12; + repeated Track alternative = 13; + repeated SalePeriod sale_period = 14; + repeated AudioFile preview = 15; + repeated string tags = 16; + optional int64 earliest_live_timestamp = 17; + optional bool has_lyrics = 18; + repeated Availability availability = 19; + optional Licensor licensor = 21; + repeated string language_of_performance = 22; + repeated ContentRating content_rating = 25; + optional string original_title = 27; + optional string version_title = 28; + repeated ArtistWithRole artist_with_role = 32; } -message Image { - optional bytes file_id = 0x1; - optional Size size = 0x2; - enum Size { - DEFAULT = 0x0; - SMALL = 0x1; - LARGE = 0x2; - XLARGE = 0x3; - } - optional sint32 width = 0x3; - optional sint32 height = 0x4; +message ArtistWithRole { + optional bytes artist_gid = 1; + optional string artist_name = 2; + + optional ArtistRole role = 3; + enum ArtistRole { + ARTIST_ROLE_UNKNOWN = 0; + ARTIST_ROLE_MAIN_ARTIST = 1; + ARTIST_ROLE_FEATURED_ARTIST = 2; + ARTIST_ROLE_REMIXER = 3; + ARTIST_ROLE_ACTOR = 4; + ARTIST_ROLE_COMPOSER = 5; + ARTIST_ROLE_CONDUCTOR = 6; + ARTIST_ROLE_ORCHESTRA = 7; + } } -message ImageGroup { - repeated Image image = 0x1; -} - -message Biography { - optional string text = 0x1; - repeated Image portrait = 0x2; - repeated ImageGroup portrait_group = 0x3; -} - -message Disc { - optional sint32 number = 0x1; - optional string name = 0x2; - repeated Track track = 0x3; -} - -message Copyright { - optional Type typ = 0x1; - enum Type { - P = 0x0; - C = 0x1; - } - optional string text = 0x2; -} - -message Restriction { - enum Catalogue { - AD = 0; - SUBSCRIPTION = 1; - CATALOGUE_ALL = 2; - SHUFFLE = 3; - COMMERCIAL = 4; - } - enum Type { - STREAMING = 0x0; - } - repeated Catalogue catalogue = 0x1; - optional string countries_allowed = 0x2; - optional string countries_forbidden = 0x3; - optional Type typ = 0x4; - - repeated string catalogue_str = 0x5; -} - -message Availability { - repeated string catalogue_str = 0x1; - optional Date start = 0x2; -} - -message SalePeriod { - repeated Restriction restriction = 0x1; - optional Date start = 0x2; - optional Date end = 0x3; -} - -message ExternalId { - optional string typ = 0x1; - optional string id = 0x2; -} - -message AudioFile { - optional bytes file_id = 0x1; - optional Format format = 0x2; - enum Format { - OGG_VORBIS_96 = 0x0; - OGG_VORBIS_160 = 0x1; - OGG_VORBIS_320 = 0x2; - MP3_256 = 0x3; - MP3_320 = 0x4; - MP3_160 = 0x5; - MP3_96 = 0x6; - MP3_160_ENC = 0x7; - // v4 - // AAC_24 = 0x8; - // AAC_48 = 0x9; - MP4_128_DUAL = 0x8; - OTHER3 = 0x9; - AAC_160 = 0xa; - AAC_320 = 0xb; - MP4_128 = 0xc; - OTHER5 = 0xd; - } -} - -message VideoFile { - optional bytes file_id = 1; -} - -// Podcast Protos message Show { + optional bytes gid = 1; + optional string name = 2; + optional string description = 64; + optional sint32 deprecated_popularity = 65; + optional string publisher = 66; + optional string language = 67; + optional bool explicit = 68; + optional ImageGroup cover_image = 69; + repeated Episode episode = 70; + repeated Copyright copyright = 71; + repeated Restriction restriction = 72; + repeated string keyword = 73; + + optional MediaType media_type = 74; enum MediaType { - MIXED = 0; - AUDIO = 1; - VIDEO = 2; + MIXED = 0; + AUDIO = 1; + VIDEO = 2; } + + optional ConsumptionOrder consumption_order = 75; enum ConsumptionOrder { - SEQUENTIAL = 1; - EPISODIC = 2; - RECENT = 3; - } - enum PassthroughEnum { - UNKNOWN = 0; - NONE = 1; - ALLOWED = 2; + SEQUENTIAL = 1; + EPISODIC = 2; + RECENT = 3; } - optional bytes gid = 0x1; - optional string name = 0x2; - optional string description = 0x40; - optional sint32 deprecated_popularity = 0x41; - optional string publisher = 0x42; - optional string language = 0x43; - optional bool explicit = 0x44; - optional ImageGroup covers = 0x45; - repeated Episode episode = 0x46; - repeated Copyright copyright = 0x47; - repeated Restriction restriction = 0x48; - repeated string keyword = 0x49; - optional MediaType media_type = 0x4A; - optional ConsumptionOrder consumption_order = 0x4B; - optional bool interpret_restriction_using_geoip = 0x4C; - repeated Availability availability = 0x4E; - optional string country_of_origin = 0x4F; - repeated Category categories = 0x50; - optional PassthroughEnum passthrough = 0x51; + + repeated Availability availability = 78; + optional string trailer_uri = 83; + optional bool music_and_talk = 85; + optional bool is_audiobook = 89; } message Episode { - optional bytes gid = 0x1; - optional string name = 0x2; - optional sint32 duration = 0x7; - optional sint32 popularity = 0x8; - repeated AudioFile file = 0xc; - optional string description = 0x40; - optional sint32 number = 0x41; - optional Date publish_time = 0x42; - optional sint32 deprecated_popularity = 0x43; - optional ImageGroup covers = 0x44; - optional string language = 0x45; - optional bool explicit = 0x46; - optional Show show = 0x47; - repeated VideoFile video = 0x48; - repeated VideoFile video_preview = 0x49; - repeated AudioFile audio_preview = 0x4A; - repeated Restriction restriction = 0x4B; - optional ImageGroup freeze_frame = 0x4C; - repeated string keyword = 0x4D; - // Order of these two flags might be wrong! - optional bool suppress_monetization = 0x4E; - optional bool interpret_restriction_using_geoip = 0x4F; - - optional bool allow_background_playback = 0x51; - repeated Availability availability = 0x52; - optional string external_url = 0x53; - optional OriginalAudio original_audio = 0x54; + optional bytes gid = 1; + optional string name = 2; + optional sint32 duration = 7; + repeated AudioFile audio = 12; + optional string description = 64; + optional sint32 number = 65; + optional Date publish_time = 66; + optional sint32 deprecated_popularity = 67; + optional ImageGroup cover_image = 68; + optional string language = 69; + optional bool explicit = 70; + optional Show show = 71; + repeated VideoFile video = 72; + repeated VideoFile video_preview = 73; + repeated AudioFile audio_preview = 74; + repeated Restriction restriction = 75; + optional ImageGroup freeze_frame = 76; + repeated string keyword = 77; + optional bool allow_background_playback = 81; + repeated Availability availability = 82; + optional string external_url = 83; + + optional EpisodeType type = 87; + enum EpisodeType { + FULL = 0; + TRAILER = 1; + BONUS = 2; + } + + optional bool music_and_talk = 91; + repeated ContentRating content_rating = 95; + optional bool is_audiobook_chapter = 96; } -message Category { - optional string name = 0x1; - repeated Category subcategories = 0x2; +message Licensor { + optional bytes uuid = 1; } -message OriginalAudio { - optional bytes uuid = 0x1; +message TopTracks { + optional string country = 1; + repeated Track track = 2; +} + +message ActivityPeriod { + optional sint32 start_year = 1; + optional sint32 end_year = 2; + optional sint32 decade = 3; +} + +message AlbumGroup { + repeated Album album = 1; +} + +message Date { + optional sint32 year = 1; + optional sint32 month = 2; + optional sint32 day = 3; + optional sint32 hour = 4; + optional sint32 minute = 5; +} + +message Image { + optional bytes file_id = 1; + + optional Size size = 2; + enum Size { + DEFAULT = 0; + SMALL = 1; + LARGE = 2; + XLARGE = 3; + } + + optional sint32 width = 3; + optional sint32 height = 4; +} + +message ImageGroup { + repeated Image image = 1; +} + +message Biography { + optional string text = 1; + repeated Image portrait = 2; + repeated ImageGroup portrait_group = 3; +} + +message Disc { + optional sint32 number = 1; + optional string name = 2; + repeated Track track = 3; +} + +message Copyright { + optional Type type = 1; + enum Type { + P = 0; + C = 1; + } + + optional string text = 2; +} + +message Restriction { + repeated Catalogue catalogue = 1; + enum Catalogue { + AD = 0; + SUBSCRIPTION = 1; + CATALOGUE_ALL = 2; + SHUFFLE = 3; + COMMERCIAL = 4; + } + + optional Type type = 4; + enum Type { + STREAMING = 0; + } + + repeated string catalogue_str = 5; + + oneof country_restriction { + string countries_allowed = 2; + string countries_forbidden = 3; + } +} + +message Availability { + repeated string catalogue_str = 1; + optional Date start = 2; +} + +message SalePeriod { + repeated Restriction restriction = 1; + optional Date start = 2; + optional Date end = 3; +} + +message ExternalId { + optional string type = 1; + optional string id = 2; +} + +message AudioFile { + optional bytes file_id = 1; + + optional Format format = 2; + enum Format { + OGG_VORBIS_96 = 0; + OGG_VORBIS_160 = 1; + OGG_VORBIS_320 = 2; + MP3_256 = 3; + MP3_320 = 4; + MP3_160 = 5; + MP3_96 = 6; + MP3_160_ENC = 7; + AAC_24 = 8; + AAC_48 = 9; + MP4_128 = 10; + MP4_128_DUAL = 11; + MP4_128_CBCS = 12; + MP4_256 = 13; + MP4_256_DUAL = 14; + MP4_256_CBCS = 15; + FLAC_FLAC = 16; + XHE_AAC_24 = 18; + XHE_AAC_16 = 19; + XHE_AAC_12 = 20; + FLAC_FLAC_24BIT = 22; + } +} + +message VideoFile { + optional bytes file_id = 1; +} + +message ContentRating { + optional string country = 1; + repeated string tag = 2; }