diff --git a/votify/api/proto/audio_files_extension.proto b/votify/api/proto/audio_files_extension.proto new file mode 100644 index 0000000..d5c521f --- /dev/null +++ b/votify/api/proto/audio_files_extension.proto @@ -0,0 +1,25 @@ +syntax = "proto3"; + +package votify.extendedmetadata.audiofiles; + +import "votify/api/proto/extendedmetadata.proto"; + +message NormalizationParams { + float loudness_db = 1; + float true_peak_db = 2; +} + +message ExtendedAudioFile { + reserved 2; + reserved 3; + + votify.extendedmetadata.AudioFile file = 1; + int32 average_bitrate = 4; +} + +message AudioFilesExtensionResponse { + repeated ExtendedAudioFile files = 1; + NormalizationParams default_file_normalization_params = 2; + NormalizationParams default_album_normalization_params = 3; + bytes audio_id = 4; +} diff --git a/votify/api/proto/audio_files_extension_pb2.py b/votify/api/proto/audio_files_extension_pb2.py new file mode 100644 index 0000000..98b01d5 --- /dev/null +++ b/votify/api/proto/audio_files_extension_pb2.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: votify/api/proto/audio_files_extension.proto +# Protobuf Python Version: 6.33.4 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 33, + 4, + '', + 'votify/api/proto/audio_files_extension.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from votify.api.proto import extendedmetadata_pb2 as votify_dot_api_dot_proto_dot_extendedmetadata__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n,votify/api/proto/audio_files_extension.proto\x12\"votify.extendedmetadata.audiofiles\x1a\'votify/api/proto/extendedmetadata.proto\"@\n\x13NormalizationParams\x12\x13\n\x0bloudness_db\x18\x01 \x01(\x02\x12\x14\n\x0ctrue_peak_db\x18\x02 \x01(\x02\"j\n\x11\x45xtendedAudioFile\x12\x30\n\x04\x66ile\x18\x01 \x01(\x0b\x32\".votify.extendedmetadata.AudioFile\x12\x17\n\x0f\x61verage_bitrate\x18\x04 \x01(\x05J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04\"\xbe\x02\n\x1b\x41udioFilesExtensionResponse\x12\x44\n\x05\x66iles\x18\x01 \x03(\x0b\x32\x35.votify.extendedmetadata.audiofiles.ExtendedAudioFile\x12\x62\n!default_file_normalization_params\x18\x02 \x01(\x0b\x32\x37.votify.extendedmetadata.audiofiles.NormalizationParams\x12\x63\n\"default_album_normalization_params\x18\x03 \x01(\x0b\x32\x37.votify.extendedmetadata.audiofiles.NormalizationParams\x12\x10\n\x08\x61udio_id\x18\x04 \x01(\x0c\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'votify.api.proto.audio_files_extension_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_NORMALIZATIONPARAMS']._serialized_start=125 + _globals['_NORMALIZATIONPARAMS']._serialized_end=189 + _globals['_EXTENDEDAUDIOFILE']._serialized_start=191 + _globals['_EXTENDEDAUDIOFILE']._serialized_end=297 + _globals['_AUDIOFILESEXTENSIONRESPONSE']._serialized_start=300 + _globals['_AUDIOFILESEXTENSIONRESPONSE']._serialized_end=618 +# @@protoc_insertion_point(module_scope) diff --git a/votify/api/proto/audio_files_extension_pb2.pyi b/votify/api/proto/audio_files_extension_pb2.pyi new file mode 100644 index 0000000..638b23a --- /dev/null +++ b/votify/api/proto/audio_files_extension_pb2.pyi @@ -0,0 +1,36 @@ +from votify.api.proto import extendedmetadata_pb2 as _extendedmetadata_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from collections.abc import Iterable as _Iterable, Mapping as _Mapping +from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class NormalizationParams(_message.Message): + __slots__ = ("loudness_db", "true_peak_db") + LOUDNESS_DB_FIELD_NUMBER: _ClassVar[int] + TRUE_PEAK_DB_FIELD_NUMBER: _ClassVar[int] + loudness_db: float + true_peak_db: float + def __init__(self, loudness_db: _Optional[float] = ..., true_peak_db: _Optional[float] = ...) -> None: ... + +class ExtendedAudioFile(_message.Message): + __slots__ = ("file", "average_bitrate") + FILE_FIELD_NUMBER: _ClassVar[int] + AVERAGE_BITRATE_FIELD_NUMBER: _ClassVar[int] + file: _extendedmetadata_pb2.AudioFile + average_bitrate: int + def __init__(self, file: _Optional[_Union[_extendedmetadata_pb2.AudioFile, _Mapping]] = ..., average_bitrate: _Optional[int] = ...) -> None: ... + +class AudioFilesExtensionResponse(_message.Message): + __slots__ = ("files", "default_file_normalization_params", "default_album_normalization_params", "audio_id") + FILES_FIELD_NUMBER: _ClassVar[int] + DEFAULT_FILE_NORMALIZATION_PARAMS_FIELD_NUMBER: _ClassVar[int] + DEFAULT_ALBUM_NORMALIZATION_PARAMS_FIELD_NUMBER: _ClassVar[int] + AUDIO_ID_FIELD_NUMBER: _ClassVar[int] + files: _containers.RepeatedCompositeFieldContainer[ExtendedAudioFile] + default_file_normalization_params: NormalizationParams + default_album_normalization_params: NormalizationParams + audio_id: bytes + def __init__(self, files: _Optional[_Iterable[_Union[ExtendedAudioFile, _Mapping]]] = ..., default_file_normalization_params: _Optional[_Union[NormalizationParams, _Mapping]] = ..., default_album_normalization_params: _Optional[_Union[NormalizationParams, _Mapping]] = ..., audio_id: _Optional[bytes] = ...) -> None: ...