diff --git a/TODO b/TODO index 6a42e481..57727ba8 100644 --- a/TODO +++ b/TODO @@ -26,6 +26,7 @@ [Transcode] - some early playback end spotted on flac files or huge audio files (> several hours) +- do not use a queue to output data, but just fill produced bytes into a buffer and let the transcode user decide what to do with it [UI] - handle internationalization diff --git a/remote/messages/media.pb.cc b/remote/messages/media.pb.cc index 3e254c8e..bb914797 100644 --- a/remote/messages/media.pb.cc +++ b/remote/messages/media.pb.cc @@ -32,6 +32,10 @@ const ::google::protobuf::internal::GeneratedMessageReflection* const ::google::protobuf::Descriptor* MediaRequest_Prepare_Video_descriptor_ = NULL; const ::google::protobuf::internal::GeneratedMessageReflection* MediaRequest_Prepare_Video_reflection_ = NULL; +const ::google::protobuf::EnumDescriptor* MediaRequest_Prepare_AudioCodecType_descriptor_ = NULL; +const ::google::protobuf::EnumDescriptor* MediaRequest_Prepare_AudioBitrate_descriptor_ = NULL; +const ::google::protobuf::EnumDescriptor* MediaRequest_Prepare_VideoCodecType_descriptor_ = NULL; +const ::google::protobuf::EnumDescriptor* MediaRequest_Prepare_VideoBitrate_descriptor_ = NULL; const ::google::protobuf::EnumDescriptor* MediaRequest_Prepare_Type_descriptor_ = NULL; const ::google::protobuf::Descriptor* MediaRequest_GetPart_descriptor_ = NULL; const ::google::protobuf::internal::GeneratedMessageReflection* @@ -43,12 +47,16 @@ const ::google::protobuf::EnumDescriptor* MediaRequest_Type_descriptor_ = NULL; const ::google::protobuf::Descriptor* MediaResponse_descriptor_ = NULL; const ::google::protobuf::internal::GeneratedMessageReflection* MediaResponse_reflection_ = NULL; -const ::google::protobuf::Descriptor* MediaResponse_Part_descriptor_ = NULL; +const ::google::protobuf::Descriptor* MediaResponse_PrepareResult_descriptor_ = NULL; const ::google::protobuf::internal::GeneratedMessageReflection* - MediaResponse_Part_reflection_ = NULL; + MediaResponse_PrepareResult_reflection_ = NULL; +const ::google::protobuf::Descriptor* MediaResponse_PartResult_descriptor_ = NULL; +const ::google::protobuf::internal::GeneratedMessageReflection* + MediaResponse_PartResult_reflection_ = NULL; +const ::google::protobuf::Descriptor* MediaResponse_TerminateResult_descriptor_ = NULL; +const ::google::protobuf::internal::GeneratedMessageReflection* + MediaResponse_TerminateResult_reflection_ = NULL; const ::google::protobuf::EnumDescriptor* MediaResponse_Type_descriptor_ = NULL; -const ::google::protobuf::EnumDescriptor* AudioCodecType_descriptor_ = NULL; -const ::google::protobuf::EnumDescriptor* VideoCodecType_descriptor_ = NULL; } // namespace @@ -114,10 +122,11 @@ void protobuf_AssignDesc_media_2eproto() { ::google::protobuf::MessageFactory::generated_factory(), sizeof(MediaRequest_Prepare_Audio)); MediaRequest_Prepare_Video_descriptor_ = MediaRequest_Prepare_descriptor_->nested_type(1); - static const int MediaRequest_Prepare_Video_offsets_[7] = { + static const int MediaRequest_Prepare_Video_offsets_[8] = { GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaRequest_Prepare_Video, video_id_), GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaRequest_Prepare_Video, codec_type_), - GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaRequest_Prepare_Video, bitrate_), + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaRequest_Prepare_Video, audio_bitrate_), + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaRequest_Prepare_Video, video_bitrate_), GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaRequest_Prepare_Video, offset_secs_), GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaRequest_Prepare_Video, audio_stream_idx_), GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaRequest_Prepare_Video, video_stream_idx_), @@ -134,9 +143,14 @@ void protobuf_AssignDesc_media_2eproto() { ::google::protobuf::DescriptorPool::generated_pool(), ::google::protobuf::MessageFactory::generated_factory(), sizeof(MediaRequest_Prepare_Video)); - MediaRequest_Prepare_Type_descriptor_ = MediaRequest_Prepare_descriptor_->enum_type(0); + MediaRequest_Prepare_AudioCodecType_descriptor_ = MediaRequest_Prepare_descriptor_->enum_type(0); + MediaRequest_Prepare_AudioBitrate_descriptor_ = MediaRequest_Prepare_descriptor_->enum_type(1); + MediaRequest_Prepare_VideoCodecType_descriptor_ = MediaRequest_Prepare_descriptor_->enum_type(2); + MediaRequest_Prepare_VideoBitrate_descriptor_ = MediaRequest_Prepare_descriptor_->enum_type(3); + MediaRequest_Prepare_Type_descriptor_ = MediaRequest_Prepare_descriptor_->enum_type(4); MediaRequest_GetPart_descriptor_ = MediaRequest_descriptor_->nested_type(1); - static const int MediaRequest_GetPart_offsets_[1] = { + static const int MediaRequest_GetPart_offsets_[2] = { + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaRequest_GetPart, handle_), GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaRequest_GetPart, requested_data_size_), }; MediaRequest_GetPart_reflection_ = @@ -152,6 +166,7 @@ void protobuf_AssignDesc_media_2eproto() { sizeof(MediaRequest_GetPart)); MediaRequest_Terminate_descriptor_ = MediaRequest_descriptor_->nested_type(2); static const int MediaRequest_Terminate_offsets_[1] = { + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaRequest_Terminate, handle_), }; MediaRequest_Terminate_reflection_ = new ::google::protobuf::internal::GeneratedMessageReflection( @@ -166,10 +181,11 @@ void protobuf_AssignDesc_media_2eproto() { sizeof(MediaRequest_Terminate)); MediaRequest_Type_descriptor_ = MediaRequest_descriptor_->enum_type(0); MediaResponse_descriptor_ = file->message_type(1); - static const int MediaResponse_offsets_[3] = { + static const int MediaResponse_offsets_[4] = { GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaResponse, type_), - GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaResponse, error_), - GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaResponse, part_), + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaResponse, prepare_result_), + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaResponse, part_result_), + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaResponse, terminate_result_), }; MediaResponse_reflection_ = new ::google::protobuf::internal::GeneratedMessageReflection( @@ -182,24 +198,51 @@ void protobuf_AssignDesc_media_2eproto() { ::google::protobuf::DescriptorPool::generated_pool(), ::google::protobuf::MessageFactory::generated_factory(), sizeof(MediaResponse)); - MediaResponse_Part_descriptor_ = MediaResponse_descriptor_->nested_type(0); - static const int MediaResponse_Part_offsets_[1] = { - GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaResponse_Part, data_), + MediaResponse_PrepareResult_descriptor_ = MediaResponse_descriptor_->nested_type(0); + static const int MediaResponse_PrepareResult_offsets_[1] = { + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaResponse_PrepareResult, handle_), }; - MediaResponse_Part_reflection_ = + MediaResponse_PrepareResult_reflection_ = new ::google::protobuf::internal::GeneratedMessageReflection( - MediaResponse_Part_descriptor_, - MediaResponse_Part::default_instance_, - MediaResponse_Part_offsets_, - GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaResponse_Part, _has_bits_[0]), - GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaResponse_Part, _unknown_fields_), + MediaResponse_PrepareResult_descriptor_, + MediaResponse_PrepareResult::default_instance_, + MediaResponse_PrepareResult_offsets_, + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaResponse_PrepareResult, _has_bits_[0]), + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaResponse_PrepareResult, _unknown_fields_), -1, ::google::protobuf::DescriptorPool::generated_pool(), ::google::protobuf::MessageFactory::generated_factory(), - sizeof(MediaResponse_Part)); + sizeof(MediaResponse_PrepareResult)); + MediaResponse_PartResult_descriptor_ = MediaResponse_descriptor_->nested_type(1); + static const int MediaResponse_PartResult_offsets_[1] = { + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaResponse_PartResult, data_), + }; + MediaResponse_PartResult_reflection_ = + new ::google::protobuf::internal::GeneratedMessageReflection( + MediaResponse_PartResult_descriptor_, + MediaResponse_PartResult::default_instance_, + MediaResponse_PartResult_offsets_, + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaResponse_PartResult, _has_bits_[0]), + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaResponse_PartResult, _unknown_fields_), + -1, + ::google::protobuf::DescriptorPool::generated_pool(), + ::google::protobuf::MessageFactory::generated_factory(), + sizeof(MediaResponse_PartResult)); + MediaResponse_TerminateResult_descriptor_ = MediaResponse_descriptor_->nested_type(2); + static const int MediaResponse_TerminateResult_offsets_[1] = { + }; + MediaResponse_TerminateResult_reflection_ = + new ::google::protobuf::internal::GeneratedMessageReflection( + MediaResponse_TerminateResult_descriptor_, + MediaResponse_TerminateResult::default_instance_, + MediaResponse_TerminateResult_offsets_, + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaResponse_TerminateResult, _has_bits_[0]), + GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MediaResponse_TerminateResult, _unknown_fields_), + -1, + ::google::protobuf::DescriptorPool::generated_pool(), + ::google::protobuf::MessageFactory::generated_factory(), + sizeof(MediaResponse_TerminateResult)); MediaResponse_Type_descriptor_ = MediaResponse_descriptor_->enum_type(0); - AudioCodecType_descriptor_ = file->enum_type(0); - VideoCodecType_descriptor_ = file->enum_type(1); } namespace { @@ -227,7 +270,11 @@ void protobuf_RegisterTypes(const ::std::string&) { ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage( MediaResponse_descriptor_, &MediaResponse::default_instance()); ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage( - MediaResponse_Part_descriptor_, &MediaResponse_Part::default_instance()); + MediaResponse_PrepareResult_descriptor_, &MediaResponse_PrepareResult::default_instance()); + ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage( + MediaResponse_PartResult_descriptor_, &MediaResponse_PartResult::default_instance()); + ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage( + MediaResponse_TerminateResult_descriptor_, &MediaResponse_TerminateResult::default_instance()); } } // namespace @@ -247,8 +294,12 @@ void protobuf_ShutdownFile_media_2eproto() { delete MediaRequest_Terminate_reflection_; delete MediaResponse::default_instance_; delete MediaResponse_reflection_; - delete MediaResponse_Part::default_instance_; - delete MediaResponse_Part_reflection_; + delete MediaResponse_PrepareResult::default_instance_; + delete MediaResponse_PrepareResult_reflection_; + delete MediaResponse_PartResult::default_instance_; + delete MediaResponse_PartResult_reflection_; + delete MediaResponse_TerminateResult::default_instance_; + delete MediaResponse_TerminateResult_reflection_; } void protobuf_AddDesc_media_2eproto() { @@ -259,35 +310,52 @@ void protobuf_AddDesc_media_2eproto() { ::Remote::protobuf_AddDesc_common_2eproto(); ::google::protobuf::DescriptorPool::InternalAddGeneratedFile( - "\n\013media.proto\022\006Remote\032\014common.proto\"\331\006\n\014" + "\n\013media.proto\022\006Remote\032\014common.proto\"\357\n\n\014" "MediaRequest\022\'\n\004type\030\001 \002(\0162\031.Remote.Medi" "aRequest.Type\022-\n\007prepare\030\002 \001(\0132\034.Remote." "MediaRequest.Prepare\022.\n\010get_part\030\003 \001(\0132\034" ".Remote.MediaRequest.GetPart\0221\n\tterminat" "e\030\004 \001(\0132\036.Remote.MediaRequest.Terminate\032" - "\214\004\n\007Prepare\022/\n\004type\030\001 \002(\0162!.Remote.Media" + "\202\010\n\007Prepare\022/\n\004type\030\001 \002(\0162!.Remote.Media" "Request.Prepare.Type\0221\n\005audio\030\002 \001(\0132\".Re" "mote.MediaRequest.Prepare.Audio\0221\n\005video" "\030\003 \001(\0132\".Remote.MediaRequest.Prepare.Vid" - "eo\032\177\n\005Audio\022\020\n\010track_id\030\001 \002(\003\022*\n\ncodec_t" - "ype\030\002 \001(\0162\026.Remote.AudioCodecType\022\017\n\007bit" - "rate\030\003 \001(\r\022\022\n\nstream_idx\030\004 \001(\r\022\023\n\013offset" - "_secs\030\005 \001(\r\032\274\001\n\005Video\022\020\n\010video_id\030\001 \002(\003\022" - "*\n\ncodec_type\030\002 \001(\0162\026.Remote.VideoCodecT" - "ype\022\017\n\007bitrate\030\003 \001(\r\022\023\n\013offset_secs\030\004 \001(" - "\r\022\030\n\020audio_stream_idx\030\005 \001(\r\022\030\n\020video_str" - "eam_idx\030\006 \001(\r\022\033\n\023subtitle_stream_idx\030\007 \001" - "(\r\"*\n\004Type\022\020\n\014AudioRequest\020\001\022\020\n\014VideoReq" - "uest\020\002\032&\n\007GetPart\022\033\n\023requested_data_size" - "\030\001 \002(\r\032\013\n\tTerminate\"J\n\004Type\022\024\n\020TypeMedia" - "Prepare\020\001\022\024\n\020TypeMediaGetPart\020\002\022\026\n\022TypeM" - "ediaTerminate\020\003\"\274\001\n\rMediaResponse\022(\n\004typ" - "e\030\001 \002(\0162\032.Remote.MediaResponse.Type\022\034\n\005e" - "rror\030\002 \001(\0132\r.Remote.Error\022(\n\004part\030\003 \001(\0132" - "\032.Remote.MediaResponse.Part\032\024\n\004Part\022\014\n\004d" - "ata\030\001 \002(\014\"#\n\004Type\022\r\n\tTypeError\020\001\022\014\n\010Type" - "Part\020\002*\"\n\016AudioCodecType\022\020\n\014CodecTypeOGA" - "\020\001*\"\n\016VideoCodecType\022\020\n\014CodecTypeOGV\020\001", 1158); + "eo\032\277\001\n\005Audio\022\020\n\010track_id\030\001 \002(\003\022\?\n\ncodec_" + "type\030\002 \002(\0162+.Remote.MediaRequest.Prepare" + ".AudioCodecType\022:\n\007bitrate\030\003 \002(\0162).Remot" + "e.MediaRequest.Prepare.AudioBitrate\022\022\n\ns" + "tream_idx\030\004 \001(\r\022\023\n\013offset_secs\030\005 \001(\r\032\304\002\n" + "\005Video\022\020\n\010video_id\030\001 \002(\003\022\?\n\ncodec_type\030\002" + " \002(\0162+.Remote.MediaRequest.Prepare.Video" + "CodecType\022@\n\raudio_bitrate\030\003 \002(\0162).Remot" + "e.MediaRequest.Prepare.AudioBitrate\022@\n\rv" + "ideo_bitrate\030\004 \002(\0162).Remote.MediaRequest" + ".Prepare.VideoBitrate\022\023\n\013offset_secs\030\005 \001" + "(\r\022\030\n\020audio_stream_idx\030\006 \001(\r\022\030\n\020video_st" + "ream_idx\030\007 \001(\r\022\033\n\023subtitle_stream_idx\030\010 " + "\001(\r\"\'\n\016AudioCodecType\022\025\n\021AudioCodecTypeO" + "GA\020\001\"\255\001\n\014AudioBitrate\022\030\n\024AudioBitrate_32" + "_kbps\020\001\022\030\n\024AudioBitrate_64_kbps\020\002\022\030\n\024Aud" + "ioBitrate_96_kbps\020\003\022\031\n\025AudioBitrate_128_" + "kbps\020\004\022\031\n\025AudioBitrate_192_kbps\020\005\022\031\n\025Aud" + "ioBitrate_256_kbps\020\006\"\'\n\016VideoCodecType\022\025" + "\n\021VideoCodecTypeOGV\020\001\")\n\014VideoBitrate\022\031\n" + "\025VideoBitrate_512_kbps\020\001\"*\n\004Type\022\020\n\014Audi" + "oRequest\020\001\022\020\n\014VideoRequest\020\002\0326\n\007GetPart\022" + "\016\n\006handle\030\001 \002(\r\022\033\n\023requested_data_size\030\002" + " \002(\r\032\033\n\tTerminate\022\016\n\006handle\030\001 \002(\r\"J\n\004Typ" + "e\022\024\n\020TypeMediaPrepare\020\001\022\024\n\020TypeMediaGetP" + "art\020\002\022\026\n\022TypeMediaTerminate\020\003\"\212\003\n\rMediaR" + "esponse\022(\n\004type\030\001 \002(\0162\032.Remote.MediaResp" + "onse.Type\022;\n\016prepare_result\030\002 \001(\0132#.Remo" + "te.MediaResponse.PrepareResult\0225\n\013part_r" + "esult\030\003 \001(\0132 .Remote.MediaResponse.PartR" + "esult\022\?\n\020terminate_result\030\004 \001(\0132%.Remote" + ".MediaResponse.TerminateResult\032\037\n\rPrepar" + "eResult\022\016\n\006handle\030\001 \001(\r\032\032\n\nPartResult\022\014\n" + "\004data\030\002 \001(\014\032\021\n\017TerminateResult\"J\n\004Type\022\025" + "\n\021TypePrepareResult\020\001\022\022\n\016TypePartResult\020" + "\002\022\027\n\023TypeTerminateResult\020\003", 1826); ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile( "media.proto", &protobuf_RegisterTypes); MediaRequest::default_instance_ = new MediaRequest(); @@ -297,7 +365,9 @@ void protobuf_AddDesc_media_2eproto() { MediaRequest_GetPart::default_instance_ = new MediaRequest_GetPart(); MediaRequest_Terminate::default_instance_ = new MediaRequest_Terminate(); MediaResponse::default_instance_ = new MediaResponse(); - MediaResponse_Part::default_instance_ = new MediaResponse_Part(); + MediaResponse_PrepareResult::default_instance_ = new MediaResponse_PrepareResult(); + MediaResponse_PartResult::default_instance_ = new MediaResponse_PartResult(); + MediaResponse_TerminateResult::default_instance_ = new MediaResponse_TerminateResult(); MediaRequest::default_instance_->InitAsDefaultInstance(); MediaRequest_Prepare::default_instance_->InitAsDefaultInstance(); MediaRequest_Prepare_Audio::default_instance_->InitAsDefaultInstance(); @@ -305,7 +375,9 @@ void protobuf_AddDesc_media_2eproto() { MediaRequest_GetPart::default_instance_->InitAsDefaultInstance(); MediaRequest_Terminate::default_instance_->InitAsDefaultInstance(); MediaResponse::default_instance_->InitAsDefaultInstance(); - MediaResponse_Part::default_instance_->InitAsDefaultInstance(); + MediaResponse_PrepareResult::default_instance_->InitAsDefaultInstance(); + MediaResponse_PartResult::default_instance_->InitAsDefaultInstance(); + MediaResponse_TerminateResult::default_instance_->InitAsDefaultInstance(); ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_media_2eproto); } @@ -315,32 +387,6 @@ struct StaticDescriptorInitializer_media_2eproto { protobuf_AddDesc_media_2eproto(); } } static_descriptor_initializer_media_2eproto_; -const ::google::protobuf::EnumDescriptor* AudioCodecType_descriptor() { - protobuf_AssignDescriptorsOnce(); - return AudioCodecType_descriptor_; -} -bool AudioCodecType_IsValid(int value) { - switch(value) { - case 1: - return true; - default: - return false; - } -} - -const ::google::protobuf::EnumDescriptor* VideoCodecType_descriptor() { - protobuf_AssignDescriptorsOnce(); - return VideoCodecType_descriptor_; -} -bool VideoCodecType_IsValid(int value) { - switch(value) { - case 1: - return true; - default: - return false; - } -} - // =================================================================== @@ -367,6 +413,92 @@ const MediaRequest_Type MediaRequest::Type_MIN; const MediaRequest_Type MediaRequest::Type_MAX; const int MediaRequest::Type_ARRAYSIZE; #endif // _MSC_VER +const ::google::protobuf::EnumDescriptor* MediaRequest_Prepare_AudioCodecType_descriptor() { + protobuf_AssignDescriptorsOnce(); + return MediaRequest_Prepare_AudioCodecType_descriptor_; +} +bool MediaRequest_Prepare_AudioCodecType_IsValid(int value) { + switch(value) { + case 1: + return true; + default: + return false; + } +} + +#ifndef _MSC_VER +const MediaRequest_Prepare_AudioCodecType MediaRequest_Prepare::AudioCodecTypeOGA; +const MediaRequest_Prepare_AudioCodecType MediaRequest_Prepare::AudioCodecType_MIN; +const MediaRequest_Prepare_AudioCodecType MediaRequest_Prepare::AudioCodecType_MAX; +const int MediaRequest_Prepare::AudioCodecType_ARRAYSIZE; +#endif // _MSC_VER +const ::google::protobuf::EnumDescriptor* MediaRequest_Prepare_AudioBitrate_descriptor() { + protobuf_AssignDescriptorsOnce(); + return MediaRequest_Prepare_AudioBitrate_descriptor_; +} +bool MediaRequest_Prepare_AudioBitrate_IsValid(int value) { + switch(value) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + return true; + default: + return false; + } +} + +#ifndef _MSC_VER +const MediaRequest_Prepare_AudioBitrate MediaRequest_Prepare::AudioBitrate_32_kbps; +const MediaRequest_Prepare_AudioBitrate MediaRequest_Prepare::AudioBitrate_64_kbps; +const MediaRequest_Prepare_AudioBitrate MediaRequest_Prepare::AudioBitrate_96_kbps; +const MediaRequest_Prepare_AudioBitrate MediaRequest_Prepare::AudioBitrate_128_kbps; +const MediaRequest_Prepare_AudioBitrate MediaRequest_Prepare::AudioBitrate_192_kbps; +const MediaRequest_Prepare_AudioBitrate MediaRequest_Prepare::AudioBitrate_256_kbps; +const MediaRequest_Prepare_AudioBitrate MediaRequest_Prepare::AudioBitrate_MIN; +const MediaRequest_Prepare_AudioBitrate MediaRequest_Prepare::AudioBitrate_MAX; +const int MediaRequest_Prepare::AudioBitrate_ARRAYSIZE; +#endif // _MSC_VER +const ::google::protobuf::EnumDescriptor* MediaRequest_Prepare_VideoCodecType_descriptor() { + protobuf_AssignDescriptorsOnce(); + return MediaRequest_Prepare_VideoCodecType_descriptor_; +} +bool MediaRequest_Prepare_VideoCodecType_IsValid(int value) { + switch(value) { + case 1: + return true; + default: + return false; + } +} + +#ifndef _MSC_VER +const MediaRequest_Prepare_VideoCodecType MediaRequest_Prepare::VideoCodecTypeOGV; +const MediaRequest_Prepare_VideoCodecType MediaRequest_Prepare::VideoCodecType_MIN; +const MediaRequest_Prepare_VideoCodecType MediaRequest_Prepare::VideoCodecType_MAX; +const int MediaRequest_Prepare::VideoCodecType_ARRAYSIZE; +#endif // _MSC_VER +const ::google::protobuf::EnumDescriptor* MediaRequest_Prepare_VideoBitrate_descriptor() { + protobuf_AssignDescriptorsOnce(); + return MediaRequest_Prepare_VideoBitrate_descriptor_; +} +bool MediaRequest_Prepare_VideoBitrate_IsValid(int value) { + switch(value) { + case 1: + return true; + default: + return false; + } +} + +#ifndef _MSC_VER +const MediaRequest_Prepare_VideoBitrate MediaRequest_Prepare::VideoBitrate_512_kbps; +const MediaRequest_Prepare_VideoBitrate MediaRequest_Prepare::VideoBitrate_MIN; +const MediaRequest_Prepare_VideoBitrate MediaRequest_Prepare::VideoBitrate_MAX; +const int MediaRequest_Prepare::VideoBitrate_ARRAYSIZE; +#endif // _MSC_VER const ::google::protobuf::EnumDescriptor* MediaRequest_Prepare_Type_descriptor() { protobuf_AssignDescriptorsOnce(); return MediaRequest_Prepare_Type_descriptor_; @@ -414,7 +546,7 @@ void MediaRequest_Prepare_Audio::SharedCtor() { _cached_size_ = 0; track_id_ = GOOGLE_LONGLONG(0); codec_type_ = 1; - bitrate_ = 0u; + bitrate_ = 1; stream_idx_ = 0u; offset_secs_ = 0u; ::memset(_has_bits_, 0, sizeof(_has_bits_)); @@ -454,7 +586,7 @@ void MediaRequest_Prepare_Audio::Clear() { if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) { track_id_ = GOOGLE_LONGLONG(0); codec_type_ = 1; - bitrate_ = 0u; + bitrate_ = 1; stream_idx_ = 0u; offset_secs_ = 0u; } @@ -483,7 +615,7 @@ bool MediaRequest_Prepare_Audio::MergePartialFromCodedStream( break; } - // optional .Remote.AudioCodecType codec_type = 2; + // required .Remote.MediaRequest.Prepare.AudioCodecType codec_type = 2; case 2: { if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { @@ -492,8 +624,8 @@ bool MediaRequest_Prepare_Audio::MergePartialFromCodedStream( DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>( input, &value))); - if (::Remote::AudioCodecType_IsValid(value)) { - set_codec_type(static_cast< ::Remote::AudioCodecType >(value)); + if (::Remote::MediaRequest_Prepare_AudioCodecType_IsValid(value)) { + set_codec_type(static_cast< ::Remote::MediaRequest_Prepare_AudioCodecType >(value)); } else { mutable_unknown_fields()->AddVarint(2, value); } @@ -504,15 +636,20 @@ bool MediaRequest_Prepare_Audio::MergePartialFromCodedStream( break; } - // optional uint32 bitrate = 3; + // required .Remote.MediaRequest.Prepare.AudioBitrate bitrate = 3; case 3: { if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { parse_bitrate: + int value; DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< - ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>( - input, &bitrate_))); - set_has_bitrate(); + int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>( + input, &value))); + if (::Remote::MediaRequest_Prepare_AudioBitrate_IsValid(value)) { + set_bitrate(static_cast< ::Remote::MediaRequest_Prepare_AudioBitrate >(value)); + } else { + mutable_unknown_fields()->AddVarint(3, value); + } } else { goto handle_uninterpreted; } @@ -575,15 +712,16 @@ void MediaRequest_Prepare_Audio::SerializeWithCachedSizes( ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->track_id(), output); } - // optional .Remote.AudioCodecType codec_type = 2; + // required .Remote.MediaRequest.Prepare.AudioCodecType codec_type = 2; if (has_codec_type()) { ::google::protobuf::internal::WireFormatLite::WriteEnum( 2, this->codec_type(), output); } - // optional uint32 bitrate = 3; + // required .Remote.MediaRequest.Prepare.AudioBitrate bitrate = 3; if (has_bitrate()) { - ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->bitrate(), output); + ::google::protobuf::internal::WireFormatLite::WriteEnum( + 3, this->bitrate(), output); } // optional uint32 stream_idx = 4; @@ -609,15 +747,16 @@ void MediaRequest_Prepare_Audio::SerializeWithCachedSizes( target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->track_id(), target); } - // optional .Remote.AudioCodecType codec_type = 2; + // required .Remote.MediaRequest.Prepare.AudioCodecType codec_type = 2; if (has_codec_type()) { target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray( 2, this->codec_type(), target); } - // optional uint32 bitrate = 3; + // required .Remote.MediaRequest.Prepare.AudioBitrate bitrate = 3; if (has_bitrate()) { - target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(3, this->bitrate(), target); + target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray( + 3, this->bitrate(), target); } // optional uint32 stream_idx = 4; @@ -648,17 +787,16 @@ int MediaRequest_Prepare_Audio::ByteSize() const { this->track_id()); } - // optional .Remote.AudioCodecType codec_type = 2; + // required .Remote.MediaRequest.Prepare.AudioCodecType codec_type = 2; if (has_codec_type()) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::EnumSize(this->codec_type()); } - // optional uint32 bitrate = 3; + // required .Remote.MediaRequest.Prepare.AudioBitrate bitrate = 3; if (has_bitrate()) { total_size += 1 + - ::google::protobuf::internal::WireFormatLite::UInt32Size( - this->bitrate()); + ::google::protobuf::internal::WireFormatLite::EnumSize(this->bitrate()); } // optional uint32 stream_idx = 4; @@ -734,7 +872,7 @@ void MediaRequest_Prepare_Audio::CopyFrom(const MediaRequest_Prepare_Audio& from } bool MediaRequest_Prepare_Audio::IsInitialized() const { - if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false; + if ((_has_bits_[0] & 0x00000007) != 0x00000007) return false; return true; } @@ -766,7 +904,8 @@ void MediaRequest_Prepare_Audio::Swap(MediaRequest_Prepare_Audio* other) { #ifndef _MSC_VER const int MediaRequest_Prepare_Video::kVideoIdFieldNumber; const int MediaRequest_Prepare_Video::kCodecTypeFieldNumber; -const int MediaRequest_Prepare_Video::kBitrateFieldNumber; +const int MediaRequest_Prepare_Video::kAudioBitrateFieldNumber; +const int MediaRequest_Prepare_Video::kVideoBitrateFieldNumber; const int MediaRequest_Prepare_Video::kOffsetSecsFieldNumber; const int MediaRequest_Prepare_Video::kAudioStreamIdxFieldNumber; const int MediaRequest_Prepare_Video::kVideoStreamIdxFieldNumber; @@ -791,7 +930,8 @@ void MediaRequest_Prepare_Video::SharedCtor() { _cached_size_ = 0; video_id_ = GOOGLE_LONGLONG(0); codec_type_ = 1; - bitrate_ = 0u; + audio_bitrate_ = 1; + video_bitrate_ = 1; offset_secs_ = 0u; audio_stream_idx_ = 0u; video_stream_idx_ = 0u; @@ -833,7 +973,8 @@ void MediaRequest_Prepare_Video::Clear() { if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) { video_id_ = GOOGLE_LONGLONG(0); codec_type_ = 1; - bitrate_ = 0u; + audio_bitrate_ = 1; + video_bitrate_ = 1; offset_secs_ = 0u; audio_stream_idx_ = 0u; video_stream_idx_ = 0u; @@ -864,7 +1005,7 @@ bool MediaRequest_Prepare_Video::MergePartialFromCodedStream( break; } - // optional .Remote.VideoCodecType codec_type = 2; + // required .Remote.MediaRequest.Prepare.VideoCodecType codec_type = 2; case 2: { if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { @@ -873,36 +1014,62 @@ bool MediaRequest_Prepare_Video::MergePartialFromCodedStream( DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>( input, &value))); - if (::Remote::VideoCodecType_IsValid(value)) { - set_codec_type(static_cast< ::Remote::VideoCodecType >(value)); + if (::Remote::MediaRequest_Prepare_VideoCodecType_IsValid(value)) { + set_codec_type(static_cast< ::Remote::MediaRequest_Prepare_VideoCodecType >(value)); } else { mutable_unknown_fields()->AddVarint(2, value); } } else { goto handle_uninterpreted; } - if (input->ExpectTag(24)) goto parse_bitrate; + if (input->ExpectTag(24)) goto parse_audio_bitrate; break; } - // optional uint32 bitrate = 3; + // required .Remote.MediaRequest.Prepare.AudioBitrate audio_bitrate = 3; case 3: { if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { - parse_bitrate: + parse_audio_bitrate: + int value; DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< - ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>( - input, &bitrate_))); - set_has_bitrate(); + int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>( + input, &value))); + if (::Remote::MediaRequest_Prepare_AudioBitrate_IsValid(value)) { + set_audio_bitrate(static_cast< ::Remote::MediaRequest_Prepare_AudioBitrate >(value)); + } else { + mutable_unknown_fields()->AddVarint(3, value); + } } else { goto handle_uninterpreted; } - if (input->ExpectTag(32)) goto parse_offset_secs; + if (input->ExpectTag(32)) goto parse_video_bitrate; break; } - // optional uint32 offset_secs = 4; + // required .Remote.MediaRequest.Prepare.VideoBitrate video_bitrate = 4; case 4: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_video_bitrate: + int value; + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>( + input, &value))); + if (::Remote::MediaRequest_Prepare_VideoBitrate_IsValid(value)) { + set_video_bitrate(static_cast< ::Remote::MediaRequest_Prepare_VideoBitrate >(value)); + } else { + mutable_unknown_fields()->AddVarint(4, value); + } + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(40)) goto parse_offset_secs; + break; + } + + // optional uint32 offset_secs = 5; + case 5: { if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { parse_offset_secs: @@ -913,12 +1080,12 @@ bool MediaRequest_Prepare_Video::MergePartialFromCodedStream( } else { goto handle_uninterpreted; } - if (input->ExpectTag(40)) goto parse_audio_stream_idx; + if (input->ExpectTag(48)) goto parse_audio_stream_idx; break; } - // optional uint32 audio_stream_idx = 5; - case 5: { + // optional uint32 audio_stream_idx = 6; + case 6: { if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { parse_audio_stream_idx: @@ -929,12 +1096,12 @@ bool MediaRequest_Prepare_Video::MergePartialFromCodedStream( } else { goto handle_uninterpreted; } - if (input->ExpectTag(48)) goto parse_video_stream_idx; + if (input->ExpectTag(56)) goto parse_video_stream_idx; break; } - // optional uint32 video_stream_idx = 6; - case 6: { + // optional uint32 video_stream_idx = 7; + case 7: { if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { parse_video_stream_idx: @@ -945,12 +1112,12 @@ bool MediaRequest_Prepare_Video::MergePartialFromCodedStream( } else { goto handle_uninterpreted; } - if (input->ExpectTag(56)) goto parse_subtitle_stream_idx; + if (input->ExpectTag(64)) goto parse_subtitle_stream_idx; break; } - // optional uint32 subtitle_stream_idx = 7; - case 7: { + // optional uint32 subtitle_stream_idx = 8; + case 8: { if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { parse_subtitle_stream_idx: @@ -988,35 +1155,42 @@ void MediaRequest_Prepare_Video::SerializeWithCachedSizes( ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->video_id(), output); } - // optional .Remote.VideoCodecType codec_type = 2; + // required .Remote.MediaRequest.Prepare.VideoCodecType codec_type = 2; if (has_codec_type()) { ::google::protobuf::internal::WireFormatLite::WriteEnum( 2, this->codec_type(), output); } - // optional uint32 bitrate = 3; - if (has_bitrate()) { - ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->bitrate(), output); + // required .Remote.MediaRequest.Prepare.AudioBitrate audio_bitrate = 3; + if (has_audio_bitrate()) { + ::google::protobuf::internal::WireFormatLite::WriteEnum( + 3, this->audio_bitrate(), output); } - // optional uint32 offset_secs = 4; + // required .Remote.MediaRequest.Prepare.VideoBitrate video_bitrate = 4; + if (has_video_bitrate()) { + ::google::protobuf::internal::WireFormatLite::WriteEnum( + 4, this->video_bitrate(), output); + } + + // optional uint32 offset_secs = 5; if (has_offset_secs()) { - ::google::protobuf::internal::WireFormatLite::WriteUInt32(4, this->offset_secs(), output); + ::google::protobuf::internal::WireFormatLite::WriteUInt32(5, this->offset_secs(), output); } - // optional uint32 audio_stream_idx = 5; + // optional uint32 audio_stream_idx = 6; if (has_audio_stream_idx()) { - ::google::protobuf::internal::WireFormatLite::WriteUInt32(5, this->audio_stream_idx(), output); + ::google::protobuf::internal::WireFormatLite::WriteUInt32(6, this->audio_stream_idx(), output); } - // optional uint32 video_stream_idx = 6; + // optional uint32 video_stream_idx = 7; if (has_video_stream_idx()) { - ::google::protobuf::internal::WireFormatLite::WriteUInt32(6, this->video_stream_idx(), output); + ::google::protobuf::internal::WireFormatLite::WriteUInt32(7, this->video_stream_idx(), output); } - // optional uint32 subtitle_stream_idx = 7; + // optional uint32 subtitle_stream_idx = 8; if (has_subtitle_stream_idx()) { - ::google::protobuf::internal::WireFormatLite::WriteUInt32(7, this->subtitle_stream_idx(), output); + ::google::protobuf::internal::WireFormatLite::WriteUInt32(8, this->subtitle_stream_idx(), output); } if (!unknown_fields().empty()) { @@ -1032,35 +1206,42 @@ void MediaRequest_Prepare_Video::SerializeWithCachedSizes( target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->video_id(), target); } - // optional .Remote.VideoCodecType codec_type = 2; + // required .Remote.MediaRequest.Prepare.VideoCodecType codec_type = 2; if (has_codec_type()) { target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray( 2, this->codec_type(), target); } - // optional uint32 bitrate = 3; - if (has_bitrate()) { - target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(3, this->bitrate(), target); + // required .Remote.MediaRequest.Prepare.AudioBitrate audio_bitrate = 3; + if (has_audio_bitrate()) { + target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray( + 3, this->audio_bitrate(), target); } - // optional uint32 offset_secs = 4; + // required .Remote.MediaRequest.Prepare.VideoBitrate video_bitrate = 4; + if (has_video_bitrate()) { + target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray( + 4, this->video_bitrate(), target); + } + + // optional uint32 offset_secs = 5; if (has_offset_secs()) { - target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(4, this->offset_secs(), target); + target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(5, this->offset_secs(), target); } - // optional uint32 audio_stream_idx = 5; + // optional uint32 audio_stream_idx = 6; if (has_audio_stream_idx()) { - target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(5, this->audio_stream_idx(), target); + target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(6, this->audio_stream_idx(), target); } - // optional uint32 video_stream_idx = 6; + // optional uint32 video_stream_idx = 7; if (has_video_stream_idx()) { - target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(6, this->video_stream_idx(), target); + target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(7, this->video_stream_idx(), target); } - // optional uint32 subtitle_stream_idx = 7; + // optional uint32 subtitle_stream_idx = 8; if (has_subtitle_stream_idx()) { - target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(7, this->subtitle_stream_idx(), target); + target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(8, this->subtitle_stream_idx(), target); } if (!unknown_fields().empty()) { @@ -1081,41 +1262,46 @@ int MediaRequest_Prepare_Video::ByteSize() const { this->video_id()); } - // optional .Remote.VideoCodecType codec_type = 2; + // required .Remote.MediaRequest.Prepare.VideoCodecType codec_type = 2; if (has_codec_type()) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::EnumSize(this->codec_type()); } - // optional uint32 bitrate = 3; - if (has_bitrate()) { + // required .Remote.MediaRequest.Prepare.AudioBitrate audio_bitrate = 3; + if (has_audio_bitrate()) { total_size += 1 + - ::google::protobuf::internal::WireFormatLite::UInt32Size( - this->bitrate()); + ::google::protobuf::internal::WireFormatLite::EnumSize(this->audio_bitrate()); } - // optional uint32 offset_secs = 4; + // required .Remote.MediaRequest.Prepare.VideoBitrate video_bitrate = 4; + if (has_video_bitrate()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::EnumSize(this->video_bitrate()); + } + + // optional uint32 offset_secs = 5; if (has_offset_secs()) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::UInt32Size( this->offset_secs()); } - // optional uint32 audio_stream_idx = 5; + // optional uint32 audio_stream_idx = 6; if (has_audio_stream_idx()) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::UInt32Size( this->audio_stream_idx()); } - // optional uint32 video_stream_idx = 6; + // optional uint32 video_stream_idx = 7; if (has_video_stream_idx()) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::UInt32Size( this->video_stream_idx()); } - // optional uint32 subtitle_stream_idx = 7; + // optional uint32 subtitle_stream_idx = 8; if (has_subtitle_stream_idx()) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::UInt32Size( @@ -1155,8 +1341,11 @@ void MediaRequest_Prepare_Video::MergeFrom(const MediaRequest_Prepare_Video& fro if (from.has_codec_type()) { set_codec_type(from.codec_type()); } - if (from.has_bitrate()) { - set_bitrate(from.bitrate()); + if (from.has_audio_bitrate()) { + set_audio_bitrate(from.audio_bitrate()); + } + if (from.has_video_bitrate()) { + set_video_bitrate(from.video_bitrate()); } if (from.has_offset_secs()) { set_offset_secs(from.offset_secs()); @@ -1187,7 +1376,7 @@ void MediaRequest_Prepare_Video::CopyFrom(const MediaRequest_Prepare_Video& from } bool MediaRequest_Prepare_Video::IsInitialized() const { - if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false; + if ((_has_bits_[0] & 0x0000000f) != 0x0000000f) return false; return true; } @@ -1196,7 +1385,8 @@ void MediaRequest_Prepare_Video::Swap(MediaRequest_Prepare_Video* other) { if (other != this) { std::swap(video_id_, other->video_id_); std::swap(codec_type_, other->codec_type_); - std::swap(bitrate_, other->bitrate_); + std::swap(audio_bitrate_, other->audio_bitrate_); + std::swap(video_bitrate_, other->video_bitrate_); std::swap(offset_secs_, other->offset_secs_); std::swap(audio_stream_idx_, other->audio_stream_idx_); std::swap(video_stream_idx_, other->video_stream_idx_); @@ -1530,6 +1720,7 @@ void MediaRequest_Prepare::Swap(MediaRequest_Prepare* other) { // ------------------------------------------------------------------- #ifndef _MSC_VER +const int MediaRequest_GetPart::kHandleFieldNumber; const int MediaRequest_GetPart::kRequestedDataSizeFieldNumber; #endif // !_MSC_VER @@ -1549,6 +1740,7 @@ MediaRequest_GetPart::MediaRequest_GetPart(const MediaRequest_GetPart& from) void MediaRequest_GetPart::SharedCtor() { _cached_size_ = 0; + handle_ = 0u; requested_data_size_ = 0u; ::memset(_has_bits_, 0, sizeof(_has_bits_)); } @@ -1585,6 +1777,7 @@ MediaRequest_GetPart* MediaRequest_GetPart::New() const { void MediaRequest_GetPart::Clear() { if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) { + handle_ = 0u; requested_data_size_ = 0u; } ::memset(_has_bits_, 0, sizeof(_has_bits_)); @@ -1597,10 +1790,26 @@ bool MediaRequest_GetPart::MergePartialFromCodedStream( ::google::protobuf::uint32 tag; while ((tag = input->ReadTag()) != 0) { switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { - // required uint32 requested_data_size = 1; + // required uint32 handle = 1; case 1: { if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>( + input, &handle_))); + set_has_handle(); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(16)) goto parse_requested_data_size; + break; + } + + // required uint32 requested_data_size = 2; + case 2: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_requested_data_size: DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>( input, &requested_data_size_))); @@ -1630,9 +1839,14 @@ bool MediaRequest_GetPart::MergePartialFromCodedStream( void MediaRequest_GetPart::SerializeWithCachedSizes( ::google::protobuf::io::CodedOutputStream* output) const { - // required uint32 requested_data_size = 1; + // required uint32 handle = 1; + if (has_handle()) { + ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->handle(), output); + } + + // required uint32 requested_data_size = 2; if (has_requested_data_size()) { - ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->requested_data_size(), output); + ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->requested_data_size(), output); } if (!unknown_fields().empty()) { @@ -1643,9 +1857,14 @@ void MediaRequest_GetPart::SerializeWithCachedSizes( ::google::protobuf::uint8* MediaRequest_GetPart::SerializeWithCachedSizesToArray( ::google::protobuf::uint8* target) const { - // required uint32 requested_data_size = 1; + // required uint32 handle = 1; + if (has_handle()) { + target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->handle(), target); + } + + // required uint32 requested_data_size = 2; if (has_requested_data_size()) { - target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->requested_data_size(), target); + target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->requested_data_size(), target); } if (!unknown_fields().empty()) { @@ -1659,7 +1878,14 @@ int MediaRequest_GetPart::ByteSize() const { int total_size = 0; if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) { - // required uint32 requested_data_size = 1; + // required uint32 handle = 1; + if (has_handle()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::UInt32Size( + this->handle()); + } + + // required uint32 requested_data_size = 2; if (has_requested_data_size()) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::UInt32Size( @@ -1693,6 +1919,9 @@ void MediaRequest_GetPart::MergeFrom(const ::google::protobuf::Message& from) { void MediaRequest_GetPart::MergeFrom(const MediaRequest_GetPart& from) { GOOGLE_CHECK_NE(&from, this); if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) { + if (from.has_handle()) { + set_handle(from.handle()); + } if (from.has_requested_data_size()) { set_requested_data_size(from.requested_data_size()); } @@ -1713,13 +1942,14 @@ void MediaRequest_GetPart::CopyFrom(const MediaRequest_GetPart& from) { } bool MediaRequest_GetPart::IsInitialized() const { - if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false; + if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false; return true; } void MediaRequest_GetPart::Swap(MediaRequest_GetPart* other) { if (other != this) { + std::swap(handle_, other->handle_); std::swap(requested_data_size_, other->requested_data_size_); std::swap(_has_bits_[0], other->_has_bits_[0]); _unknown_fields_.Swap(&other->_unknown_fields_); @@ -1739,6 +1969,7 @@ void MediaRequest_GetPart::Swap(MediaRequest_GetPart* other) { // ------------------------------------------------------------------- #ifndef _MSC_VER +const int MediaRequest_Terminate::kHandleFieldNumber; #endif // !_MSC_VER MediaRequest_Terminate::MediaRequest_Terminate() @@ -1757,6 +1988,7 @@ MediaRequest_Terminate::MediaRequest_Terminate(const MediaRequest_Terminate& fro void MediaRequest_Terminate::SharedCtor() { _cached_size_ = 0; + handle_ = 0u; ::memset(_has_bits_, 0, sizeof(_has_bits_)); } @@ -1791,6 +2023,9 @@ MediaRequest_Terminate* MediaRequest_Terminate::New() const { } void MediaRequest_Terminate::Clear() { + if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) { + handle_ = 0u; + } ::memset(_has_bits_, 0, sizeof(_has_bits_)); mutable_unknown_fields()->Clear(); } @@ -1800,12 +2035,33 @@ bool MediaRequest_Terminate::MergePartialFromCodedStream( #define DO_(EXPRESSION) if (!(EXPRESSION)) return false ::google::protobuf::uint32 tag; while ((tag = input->ReadTag()) != 0) { - if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == - ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) { - return true; + switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { + // required uint32 handle = 1; + case 1: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>( + input, &handle_))); + set_has_handle(); + } else { + goto handle_uninterpreted; + } + if (input->ExpectAtEnd()) return true; + break; + } + + default: { + handle_uninterpreted: + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) { + return true; + } + DO_(::google::protobuf::internal::WireFormat::SkipField( + input, tag, mutable_unknown_fields())); + break; + } } - DO_(::google::protobuf::internal::WireFormat::SkipField( - input, tag, mutable_unknown_fields())); } return true; #undef DO_ @@ -1813,6 +2069,11 @@ bool MediaRequest_Terminate::MergePartialFromCodedStream( void MediaRequest_Terminate::SerializeWithCachedSizes( ::google::protobuf::io::CodedOutputStream* output) const { + // required uint32 handle = 1; + if (has_handle()) { + ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->handle(), output); + } + if (!unknown_fields().empty()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( unknown_fields(), output); @@ -1821,6 +2082,11 @@ void MediaRequest_Terminate::SerializeWithCachedSizes( ::google::protobuf::uint8* MediaRequest_Terminate::SerializeWithCachedSizesToArray( ::google::protobuf::uint8* target) const { + // required uint32 handle = 1; + if (has_handle()) { + target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->handle(), target); + } + if (!unknown_fields().empty()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( unknown_fields(), target); @@ -1831,6 +2097,15 @@ void MediaRequest_Terminate::SerializeWithCachedSizes( int MediaRequest_Terminate::ByteSize() const { int total_size = 0; + if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) { + // required uint32 handle = 1; + if (has_handle()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::UInt32Size( + this->handle()); + } + + } if (!unknown_fields().empty()) { total_size += ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize( @@ -1856,6 +2131,11 @@ void MediaRequest_Terminate::MergeFrom(const ::google::protobuf::Message& from) void MediaRequest_Terminate::MergeFrom(const MediaRequest_Terminate& from) { GOOGLE_CHECK_NE(&from, this); + if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) { + if (from.has_handle()) { + set_handle(from.handle()); + } + } mutable_unknown_fields()->MergeFrom(from.unknown_fields()); } @@ -1872,12 +2152,15 @@ void MediaRequest_Terminate::CopyFrom(const MediaRequest_Terminate& from) { } bool MediaRequest_Terminate::IsInitialized() const { + if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false; return true; } void MediaRequest_Terminate::Swap(MediaRequest_Terminate* other) { if (other != this) { + std::swap(handle_, other->handle_); + std::swap(_has_bits_[0], other->_has_bits_[0]); _unknown_fields_.Swap(&other->_unknown_fields_); std::swap(_cached_size_, other->_cached_size_); } @@ -2224,6 +2507,9 @@ bool MediaRequest::IsInitialized() const { if (has_get_part()) { if (!this->get_part().IsInitialized()) return false; } + if (has_terminate()) { + if (!this->terminate().IsInitialized()) return false; + } return true; } @@ -2258,6 +2544,7 @@ bool MediaResponse_Type_IsValid(int value) { switch(value) { case 1: case 2: + case 3: return true; default: return false; @@ -2265,41 +2552,250 @@ bool MediaResponse_Type_IsValid(int value) { } #ifndef _MSC_VER -const MediaResponse_Type MediaResponse::TypeError; -const MediaResponse_Type MediaResponse::TypePart; +const MediaResponse_Type MediaResponse::TypePrepareResult; +const MediaResponse_Type MediaResponse::TypePartResult; +const MediaResponse_Type MediaResponse::TypeTerminateResult; const MediaResponse_Type MediaResponse::Type_MIN; const MediaResponse_Type MediaResponse::Type_MAX; const int MediaResponse::Type_ARRAYSIZE; #endif // _MSC_VER #ifndef _MSC_VER -const int MediaResponse_Part::kDataFieldNumber; +const int MediaResponse_PrepareResult::kHandleFieldNumber; #endif // !_MSC_VER -MediaResponse_Part::MediaResponse_Part() +MediaResponse_PrepareResult::MediaResponse_PrepareResult() : ::google::protobuf::Message() { SharedCtor(); } -void MediaResponse_Part::InitAsDefaultInstance() { +void MediaResponse_PrepareResult::InitAsDefaultInstance() { } -MediaResponse_Part::MediaResponse_Part(const MediaResponse_Part& from) +MediaResponse_PrepareResult::MediaResponse_PrepareResult(const MediaResponse_PrepareResult& from) : ::google::protobuf::Message() { SharedCtor(); MergeFrom(from); } -void MediaResponse_Part::SharedCtor() { +void MediaResponse_PrepareResult::SharedCtor() { + _cached_size_ = 0; + handle_ = 0u; + ::memset(_has_bits_, 0, sizeof(_has_bits_)); +} + +MediaResponse_PrepareResult::~MediaResponse_PrepareResult() { + SharedDtor(); +} + +void MediaResponse_PrepareResult::SharedDtor() { + if (this != default_instance_) { + } +} + +void MediaResponse_PrepareResult::SetCachedSize(int size) const { + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN(); + _cached_size_ = size; + GOOGLE_SAFE_CONCURRENT_WRITES_END(); +} +const ::google::protobuf::Descriptor* MediaResponse_PrepareResult::descriptor() { + protobuf_AssignDescriptorsOnce(); + return MediaResponse_PrepareResult_descriptor_; +} + +const MediaResponse_PrepareResult& MediaResponse_PrepareResult::default_instance() { + if (default_instance_ == NULL) protobuf_AddDesc_media_2eproto(); + return *default_instance_; +} + +MediaResponse_PrepareResult* MediaResponse_PrepareResult::default_instance_ = NULL; + +MediaResponse_PrepareResult* MediaResponse_PrepareResult::New() const { + return new MediaResponse_PrepareResult; +} + +void MediaResponse_PrepareResult::Clear() { + if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) { + handle_ = 0u; + } + ::memset(_has_bits_, 0, sizeof(_has_bits_)); + mutable_unknown_fields()->Clear(); +} + +bool MediaResponse_PrepareResult::MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) { +#define DO_(EXPRESSION) if (!(EXPRESSION)) return false + ::google::protobuf::uint32 tag; + while ((tag = input->ReadTag()) != 0) { + switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { + // optional uint32 handle = 1; + case 1: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>( + input, &handle_))); + set_has_handle(); + } else { + goto handle_uninterpreted; + } + if (input->ExpectAtEnd()) return true; + break; + } + + default: { + handle_uninterpreted: + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) { + return true; + } + DO_(::google::protobuf::internal::WireFormat::SkipField( + input, tag, mutable_unknown_fields())); + break; + } + } + } + return true; +#undef DO_ +} + +void MediaResponse_PrepareResult::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // optional uint32 handle = 1; + if (has_handle()) { + ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->handle(), output); + } + + if (!unknown_fields().empty()) { + ::google::protobuf::internal::WireFormat::SerializeUnknownFields( + unknown_fields(), output); + } +} + +::google::protobuf::uint8* MediaResponse_PrepareResult::SerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + // optional uint32 handle = 1; + if (has_handle()) { + target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->handle(), target); + } + + if (!unknown_fields().empty()) { + target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( + unknown_fields(), target); + } + return target; +} + +int MediaResponse_PrepareResult::ByteSize() const { + int total_size = 0; + + if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) { + // optional uint32 handle = 1; + if (has_handle()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::UInt32Size( + this->handle()); + } + + } + if (!unknown_fields().empty()) { + total_size += + ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize( + unknown_fields()); + } + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN(); + _cached_size_ = total_size; + GOOGLE_SAFE_CONCURRENT_WRITES_END(); + return total_size; +} + +void MediaResponse_PrepareResult::MergeFrom(const ::google::protobuf::Message& from) { + GOOGLE_CHECK_NE(&from, this); + const MediaResponse_PrepareResult* source = + ::google::protobuf::internal::dynamic_cast_if_available( + &from); + if (source == NULL) { + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + MergeFrom(*source); + } +} + +void MediaResponse_PrepareResult::MergeFrom(const MediaResponse_PrepareResult& from) { + GOOGLE_CHECK_NE(&from, this); + if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) { + if (from.has_handle()) { + set_handle(from.handle()); + } + } + mutable_unknown_fields()->MergeFrom(from.unknown_fields()); +} + +void MediaResponse_PrepareResult::CopyFrom(const ::google::protobuf::Message& from) { + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void MediaResponse_PrepareResult::CopyFrom(const MediaResponse_PrepareResult& from) { + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool MediaResponse_PrepareResult::IsInitialized() const { + + return true; +} + +void MediaResponse_PrepareResult::Swap(MediaResponse_PrepareResult* other) { + if (other != this) { + std::swap(handle_, other->handle_); + std::swap(_has_bits_[0], other->_has_bits_[0]); + _unknown_fields_.Swap(&other->_unknown_fields_); + std::swap(_cached_size_, other->_cached_size_); + } +} + +::google::protobuf::Metadata MediaResponse_PrepareResult::GetMetadata() const { + protobuf_AssignDescriptorsOnce(); + ::google::protobuf::Metadata metadata; + metadata.descriptor = MediaResponse_PrepareResult_descriptor_; + metadata.reflection = MediaResponse_PrepareResult_reflection_; + return metadata; +} + + +// ------------------------------------------------------------------- + +#ifndef _MSC_VER +const int MediaResponse_PartResult::kDataFieldNumber; +#endif // !_MSC_VER + +MediaResponse_PartResult::MediaResponse_PartResult() + : ::google::protobuf::Message() { + SharedCtor(); +} + +void MediaResponse_PartResult::InitAsDefaultInstance() { +} + +MediaResponse_PartResult::MediaResponse_PartResult(const MediaResponse_PartResult& from) + : ::google::protobuf::Message() { + SharedCtor(); + MergeFrom(from); +} + +void MediaResponse_PartResult::SharedCtor() { _cached_size_ = 0; data_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString); ::memset(_has_bits_, 0, sizeof(_has_bits_)); } -MediaResponse_Part::~MediaResponse_Part() { +MediaResponse_PartResult::~MediaResponse_PartResult() { SharedDtor(); } -void MediaResponse_Part::SharedDtor() { +void MediaResponse_PartResult::SharedDtor() { if (data_ != &::google::protobuf::internal::kEmptyString) { delete data_; } @@ -2307,28 +2803,28 @@ void MediaResponse_Part::SharedDtor() { } } -void MediaResponse_Part::SetCachedSize(int size) const { +void MediaResponse_PartResult::SetCachedSize(int size) const { GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN(); _cached_size_ = size; GOOGLE_SAFE_CONCURRENT_WRITES_END(); } -const ::google::protobuf::Descriptor* MediaResponse_Part::descriptor() { +const ::google::protobuf::Descriptor* MediaResponse_PartResult::descriptor() { protobuf_AssignDescriptorsOnce(); - return MediaResponse_Part_descriptor_; + return MediaResponse_PartResult_descriptor_; } -const MediaResponse_Part& MediaResponse_Part::default_instance() { +const MediaResponse_PartResult& MediaResponse_PartResult::default_instance() { if (default_instance_ == NULL) protobuf_AddDesc_media_2eproto(); return *default_instance_; } -MediaResponse_Part* MediaResponse_Part::default_instance_ = NULL; +MediaResponse_PartResult* MediaResponse_PartResult::default_instance_ = NULL; -MediaResponse_Part* MediaResponse_Part::New() const { - return new MediaResponse_Part; +MediaResponse_PartResult* MediaResponse_PartResult::New() const { + return new MediaResponse_PartResult; } -void MediaResponse_Part::Clear() { +void MediaResponse_PartResult::Clear() { if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) { if (has_data()) { if (data_ != &::google::protobuf::internal::kEmptyString) { @@ -2340,14 +2836,14 @@ void MediaResponse_Part::Clear() { mutable_unknown_fields()->Clear(); } -bool MediaResponse_Part::MergePartialFromCodedStream( +bool MediaResponse_PartResult::MergePartialFromCodedStream( ::google::protobuf::io::CodedInputStream* input) { #define DO_(EXPRESSION) if (!(EXPRESSION)) return false ::google::protobuf::uint32 tag; while ((tag = input->ReadTag()) != 0) { switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { - // required bytes data = 1; - case 1: { + // optional bytes data = 2; + case 2: { if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) { DO_(::google::protobuf::internal::WireFormatLite::ReadBytes( @@ -2375,12 +2871,12 @@ bool MediaResponse_Part::MergePartialFromCodedStream( #undef DO_ } -void MediaResponse_Part::SerializeWithCachedSizes( +void MediaResponse_PartResult::SerializeWithCachedSizes( ::google::protobuf::io::CodedOutputStream* output) const { - // required bytes data = 1; + // optional bytes data = 2; if (has_data()) { ::google::protobuf::internal::WireFormatLite::WriteBytes( - 1, this->data(), output); + 2, this->data(), output); } if (!unknown_fields().empty()) { @@ -2389,13 +2885,13 @@ void MediaResponse_Part::SerializeWithCachedSizes( } } -::google::protobuf::uint8* MediaResponse_Part::SerializeWithCachedSizesToArray( +::google::protobuf::uint8* MediaResponse_PartResult::SerializeWithCachedSizesToArray( ::google::protobuf::uint8* target) const { - // required bytes data = 1; + // optional bytes data = 2; if (has_data()) { target = ::google::protobuf::internal::WireFormatLite::WriteBytesToArray( - 1, this->data(), target); + 2, this->data(), target); } if (!unknown_fields().empty()) { @@ -2405,11 +2901,11 @@ void MediaResponse_Part::SerializeWithCachedSizes( return target; } -int MediaResponse_Part::ByteSize() const { +int MediaResponse_PartResult::ByteSize() const { int total_size = 0; if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) { - // required bytes data = 1; + // optional bytes data = 2; if (has_data()) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize( @@ -2428,10 +2924,10 @@ int MediaResponse_Part::ByteSize() const { return total_size; } -void MediaResponse_Part::MergeFrom(const ::google::protobuf::Message& from) { +void MediaResponse_PartResult::MergeFrom(const ::google::protobuf::Message& from) { GOOGLE_CHECK_NE(&from, this); - const MediaResponse_Part* source = - ::google::protobuf::internal::dynamic_cast_if_available( + const MediaResponse_PartResult* source = + ::google::protobuf::internal::dynamic_cast_if_available( &from); if (source == NULL) { ::google::protobuf::internal::ReflectionOps::Merge(from, this); @@ -2440,7 +2936,7 @@ void MediaResponse_Part::MergeFrom(const ::google::protobuf::Message& from) { } } -void MediaResponse_Part::MergeFrom(const MediaResponse_Part& from) { +void MediaResponse_PartResult::MergeFrom(const MediaResponse_PartResult& from) { GOOGLE_CHECK_NE(&from, this); if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) { if (from.has_data()) { @@ -2450,25 +2946,24 @@ void MediaResponse_Part::MergeFrom(const MediaResponse_Part& from) { mutable_unknown_fields()->MergeFrom(from.unknown_fields()); } -void MediaResponse_Part::CopyFrom(const ::google::protobuf::Message& from) { +void MediaResponse_PartResult::CopyFrom(const ::google::protobuf::Message& from) { if (&from == this) return; Clear(); MergeFrom(from); } -void MediaResponse_Part::CopyFrom(const MediaResponse_Part& from) { +void MediaResponse_PartResult::CopyFrom(const MediaResponse_PartResult& from) { if (&from == this) return; Clear(); MergeFrom(from); } -bool MediaResponse_Part::IsInitialized() const { - if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false; +bool MediaResponse_PartResult::IsInitialized() const { return true; } -void MediaResponse_Part::Swap(MediaResponse_Part* other) { +void MediaResponse_PartResult::Swap(MediaResponse_PartResult* other) { if (other != this) { std::swap(data_, other->data_); std::swap(_has_bits_[0], other->_has_bits_[0]); @@ -2477,11 +2972,167 @@ void MediaResponse_Part::Swap(MediaResponse_Part* other) { } } -::google::protobuf::Metadata MediaResponse_Part::GetMetadata() const { +::google::protobuf::Metadata MediaResponse_PartResult::GetMetadata() const { protobuf_AssignDescriptorsOnce(); ::google::protobuf::Metadata metadata; - metadata.descriptor = MediaResponse_Part_descriptor_; - metadata.reflection = MediaResponse_Part_reflection_; + metadata.descriptor = MediaResponse_PartResult_descriptor_; + metadata.reflection = MediaResponse_PartResult_reflection_; + return metadata; +} + + +// ------------------------------------------------------------------- + +#ifndef _MSC_VER +#endif // !_MSC_VER + +MediaResponse_TerminateResult::MediaResponse_TerminateResult() + : ::google::protobuf::Message() { + SharedCtor(); +} + +void MediaResponse_TerminateResult::InitAsDefaultInstance() { +} + +MediaResponse_TerminateResult::MediaResponse_TerminateResult(const MediaResponse_TerminateResult& from) + : ::google::protobuf::Message() { + SharedCtor(); + MergeFrom(from); +} + +void MediaResponse_TerminateResult::SharedCtor() { + _cached_size_ = 0; + ::memset(_has_bits_, 0, sizeof(_has_bits_)); +} + +MediaResponse_TerminateResult::~MediaResponse_TerminateResult() { + SharedDtor(); +} + +void MediaResponse_TerminateResult::SharedDtor() { + if (this != default_instance_) { + } +} + +void MediaResponse_TerminateResult::SetCachedSize(int size) const { + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN(); + _cached_size_ = size; + GOOGLE_SAFE_CONCURRENT_WRITES_END(); +} +const ::google::protobuf::Descriptor* MediaResponse_TerminateResult::descriptor() { + protobuf_AssignDescriptorsOnce(); + return MediaResponse_TerminateResult_descriptor_; +} + +const MediaResponse_TerminateResult& MediaResponse_TerminateResult::default_instance() { + if (default_instance_ == NULL) protobuf_AddDesc_media_2eproto(); + return *default_instance_; +} + +MediaResponse_TerminateResult* MediaResponse_TerminateResult::default_instance_ = NULL; + +MediaResponse_TerminateResult* MediaResponse_TerminateResult::New() const { + return new MediaResponse_TerminateResult; +} + +void MediaResponse_TerminateResult::Clear() { + ::memset(_has_bits_, 0, sizeof(_has_bits_)); + mutable_unknown_fields()->Clear(); +} + +bool MediaResponse_TerminateResult::MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) { +#define DO_(EXPRESSION) if (!(EXPRESSION)) return false + ::google::protobuf::uint32 tag; + while ((tag = input->ReadTag()) != 0) { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) { + return true; + } + DO_(::google::protobuf::internal::WireFormat::SkipField( + input, tag, mutable_unknown_fields())); + } + return true; +#undef DO_ +} + +void MediaResponse_TerminateResult::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + if (!unknown_fields().empty()) { + ::google::protobuf::internal::WireFormat::SerializeUnknownFields( + unknown_fields(), output); + } +} + +::google::protobuf::uint8* MediaResponse_TerminateResult::SerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + if (!unknown_fields().empty()) { + target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( + unknown_fields(), target); + } + return target; +} + +int MediaResponse_TerminateResult::ByteSize() const { + int total_size = 0; + + if (!unknown_fields().empty()) { + total_size += + ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize( + unknown_fields()); + } + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN(); + _cached_size_ = total_size; + GOOGLE_SAFE_CONCURRENT_WRITES_END(); + return total_size; +} + +void MediaResponse_TerminateResult::MergeFrom(const ::google::protobuf::Message& from) { + GOOGLE_CHECK_NE(&from, this); + const MediaResponse_TerminateResult* source = + ::google::protobuf::internal::dynamic_cast_if_available( + &from); + if (source == NULL) { + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + MergeFrom(*source); + } +} + +void MediaResponse_TerminateResult::MergeFrom(const MediaResponse_TerminateResult& from) { + GOOGLE_CHECK_NE(&from, this); + mutable_unknown_fields()->MergeFrom(from.unknown_fields()); +} + +void MediaResponse_TerminateResult::CopyFrom(const ::google::protobuf::Message& from) { + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void MediaResponse_TerminateResult::CopyFrom(const MediaResponse_TerminateResult& from) { + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool MediaResponse_TerminateResult::IsInitialized() const { + + return true; +} + +void MediaResponse_TerminateResult::Swap(MediaResponse_TerminateResult* other) { + if (other != this) { + _unknown_fields_.Swap(&other->_unknown_fields_); + std::swap(_cached_size_, other->_cached_size_); + } +} + +::google::protobuf::Metadata MediaResponse_TerminateResult::GetMetadata() const { + protobuf_AssignDescriptorsOnce(); + ::google::protobuf::Metadata metadata; + metadata.descriptor = MediaResponse_TerminateResult_descriptor_; + metadata.reflection = MediaResponse_TerminateResult_reflection_; return metadata; } @@ -2490,8 +3141,9 @@ void MediaResponse_Part::Swap(MediaResponse_Part* other) { #ifndef _MSC_VER const int MediaResponse::kTypeFieldNumber; -const int MediaResponse::kErrorFieldNumber; -const int MediaResponse::kPartFieldNumber; +const int MediaResponse::kPrepareResultFieldNumber; +const int MediaResponse::kPartResultFieldNumber; +const int MediaResponse::kTerminateResultFieldNumber; #endif // !_MSC_VER MediaResponse::MediaResponse() @@ -2500,8 +3152,9 @@ MediaResponse::MediaResponse() } void MediaResponse::InitAsDefaultInstance() { - error_ = const_cast< ::Remote::Error*>(&::Remote::Error::default_instance()); - part_ = const_cast< ::Remote::MediaResponse_Part*>(&::Remote::MediaResponse_Part::default_instance()); + prepare_result_ = const_cast< ::Remote::MediaResponse_PrepareResult*>(&::Remote::MediaResponse_PrepareResult::default_instance()); + part_result_ = const_cast< ::Remote::MediaResponse_PartResult*>(&::Remote::MediaResponse_PartResult::default_instance()); + terminate_result_ = const_cast< ::Remote::MediaResponse_TerminateResult*>(&::Remote::MediaResponse_TerminateResult::default_instance()); } MediaResponse::MediaResponse(const MediaResponse& from) @@ -2513,8 +3166,9 @@ MediaResponse::MediaResponse(const MediaResponse& from) void MediaResponse::SharedCtor() { _cached_size_ = 0; type_ = 1; - error_ = NULL; - part_ = NULL; + prepare_result_ = NULL; + part_result_ = NULL; + terminate_result_ = NULL; ::memset(_has_bits_, 0, sizeof(_has_bits_)); } @@ -2524,8 +3178,9 @@ MediaResponse::~MediaResponse() { void MediaResponse::SharedDtor() { if (this != default_instance_) { - delete error_; - delete part_; + delete prepare_result_; + delete part_result_; + delete terminate_result_; } } @@ -2553,11 +3208,14 @@ MediaResponse* MediaResponse::New() const { void MediaResponse::Clear() { if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) { type_ = 1; - if (has_error()) { - if (error_ != NULL) error_->::Remote::Error::Clear(); + if (has_prepare_result()) { + if (prepare_result_ != NULL) prepare_result_->::Remote::MediaResponse_PrepareResult::Clear(); } - if (has_part()) { - if (part_ != NULL) part_->::Remote::MediaResponse_Part::Clear(); + if (has_part_result()) { + if (part_result_ != NULL) part_result_->::Remote::MediaResponse_PartResult::Clear(); + } + if (has_terminate_result()) { + if (terminate_result_ != NULL) terminate_result_->::Remote::MediaResponse_TerminateResult::Clear(); } } ::memset(_has_bits_, 0, sizeof(_has_bits_)); @@ -2586,31 +3244,45 @@ bool MediaResponse::MergePartialFromCodedStream( } else { goto handle_uninterpreted; } - if (input->ExpectTag(18)) goto parse_error; + if (input->ExpectTag(18)) goto parse_prepare_result; break; } - // optional .Remote.Error error = 2; + // optional .Remote.MediaResponse.PrepareResult prepare_result = 2; case 2: { if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) { - parse_error: + parse_prepare_result: DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual( - input, mutable_error())); + input, mutable_prepare_result())); } else { goto handle_uninterpreted; } - if (input->ExpectTag(26)) goto parse_part; + if (input->ExpectTag(26)) goto parse_part_result; break; } - // optional .Remote.MediaResponse.Part part = 3; + // optional .Remote.MediaResponse.PartResult part_result = 3; case 3: { if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) { - parse_part: + parse_part_result: DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual( - input, mutable_part())); + input, mutable_part_result())); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(34)) goto parse_terminate_result; + break; + } + + // optional .Remote.MediaResponse.TerminateResult terminate_result = 4; + case 4: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) { + parse_terminate_result: + DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual( + input, mutable_terminate_result())); } else { goto handle_uninterpreted; } @@ -2642,16 +3314,22 @@ void MediaResponse::SerializeWithCachedSizes( 1, this->type(), output); } - // optional .Remote.Error error = 2; - if (has_error()) { + // optional .Remote.MediaResponse.PrepareResult prepare_result = 2; + if (has_prepare_result()) { ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( - 2, this->error(), output); + 2, this->prepare_result(), output); } - // optional .Remote.MediaResponse.Part part = 3; - if (has_part()) { + // optional .Remote.MediaResponse.PartResult part_result = 3; + if (has_part_result()) { ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( - 3, this->part(), output); + 3, this->part_result(), output); + } + + // optional .Remote.MediaResponse.TerminateResult terminate_result = 4; + if (has_terminate_result()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 4, this->terminate_result(), output); } if (!unknown_fields().empty()) { @@ -2668,18 +3346,25 @@ void MediaResponse::SerializeWithCachedSizes( 1, this->type(), target); } - // optional .Remote.Error error = 2; - if (has_error()) { + // optional .Remote.MediaResponse.PrepareResult prepare_result = 2; + if (has_prepare_result()) { target = ::google::protobuf::internal::WireFormatLite:: WriteMessageNoVirtualToArray( - 2, this->error(), target); + 2, this->prepare_result(), target); } - // optional .Remote.MediaResponse.Part part = 3; - if (has_part()) { + // optional .Remote.MediaResponse.PartResult part_result = 3; + if (has_part_result()) { target = ::google::protobuf::internal::WireFormatLite:: WriteMessageNoVirtualToArray( - 3, this->part(), target); + 3, this->part_result(), target); + } + + // optional .Remote.MediaResponse.TerminateResult terminate_result = 4; + if (has_terminate_result()) { + target = ::google::protobuf::internal::WireFormatLite:: + WriteMessageNoVirtualToArray( + 4, this->terminate_result(), target); } if (!unknown_fields().empty()) { @@ -2699,18 +3384,25 @@ int MediaResponse::ByteSize() const { ::google::protobuf::internal::WireFormatLite::EnumSize(this->type()); } - // optional .Remote.Error error = 2; - if (has_error()) { + // optional .Remote.MediaResponse.PrepareResult prepare_result = 2; + if (has_prepare_result()) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual( - this->error()); + this->prepare_result()); } - // optional .Remote.MediaResponse.Part part = 3; - if (has_part()) { + // optional .Remote.MediaResponse.PartResult part_result = 3; + if (has_part_result()) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual( - this->part()); + this->part_result()); + } + + // optional .Remote.MediaResponse.TerminateResult terminate_result = 4; + if (has_terminate_result()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual( + this->terminate_result()); } } @@ -2743,11 +3435,14 @@ void MediaResponse::MergeFrom(const MediaResponse& from) { if (from.has_type()) { set_type(from.type()); } - if (from.has_error()) { - mutable_error()->::Remote::Error::MergeFrom(from.error()); + if (from.has_prepare_result()) { + mutable_prepare_result()->::Remote::MediaResponse_PrepareResult::MergeFrom(from.prepare_result()); } - if (from.has_part()) { - mutable_part()->::Remote::MediaResponse_Part::MergeFrom(from.part()); + if (from.has_part_result()) { + mutable_part_result()->::Remote::MediaResponse_PartResult::MergeFrom(from.part_result()); + } + if (from.has_terminate_result()) { + mutable_terminate_result()->::Remote::MediaResponse_TerminateResult::MergeFrom(from.terminate_result()); } } mutable_unknown_fields()->MergeFrom(from.unknown_fields()); @@ -2768,20 +3463,15 @@ void MediaResponse::CopyFrom(const MediaResponse& from) { bool MediaResponse::IsInitialized() const { if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false; - if (has_error()) { - if (!this->error().IsInitialized()) return false; - } - if (has_part()) { - if (!this->part().IsInitialized()) return false; - } return true; } void MediaResponse::Swap(MediaResponse* other) { if (other != this) { std::swap(type_, other->type_); - std::swap(error_, other->error_); - std::swap(part_, other->part_); + std::swap(prepare_result_, other->prepare_result_); + std::swap(part_result_, other->part_result_); + std::swap(terminate_result_, other->terminate_result_); std::swap(_has_bits_[0], other->_has_bits_[0]); _unknown_fields_.Swap(&other->_unknown_fields_); std::swap(_cached_size_, other->_cached_size_); diff --git a/remote/messages/media.pb.h b/remote/messages/media.pb.h index 679be240..68956f67 100644 --- a/remote/messages/media.pb.h +++ b/remote/messages/media.pb.h @@ -42,8 +42,87 @@ class MediaRequest_Prepare_Video; class MediaRequest_GetPart; class MediaRequest_Terminate; class MediaResponse; -class MediaResponse_Part; +class MediaResponse_PrepareResult; +class MediaResponse_PartResult; +class MediaResponse_TerminateResult; +enum MediaRequest_Prepare_AudioCodecType { + MediaRequest_Prepare_AudioCodecType_AudioCodecTypeOGA = 1 +}; +bool MediaRequest_Prepare_AudioCodecType_IsValid(int value); +const MediaRequest_Prepare_AudioCodecType MediaRequest_Prepare_AudioCodecType_AudioCodecType_MIN = MediaRequest_Prepare_AudioCodecType_AudioCodecTypeOGA; +const MediaRequest_Prepare_AudioCodecType MediaRequest_Prepare_AudioCodecType_AudioCodecType_MAX = MediaRequest_Prepare_AudioCodecType_AudioCodecTypeOGA; +const int MediaRequest_Prepare_AudioCodecType_AudioCodecType_ARRAYSIZE = MediaRequest_Prepare_AudioCodecType_AudioCodecType_MAX + 1; + +const ::google::protobuf::EnumDescriptor* MediaRequest_Prepare_AudioCodecType_descriptor(); +inline const ::std::string& MediaRequest_Prepare_AudioCodecType_Name(MediaRequest_Prepare_AudioCodecType value) { + return ::google::protobuf::internal::NameOfEnum( + MediaRequest_Prepare_AudioCodecType_descriptor(), value); +} +inline bool MediaRequest_Prepare_AudioCodecType_Parse( + const ::std::string& name, MediaRequest_Prepare_AudioCodecType* value) { + return ::google::protobuf::internal::ParseNamedEnum( + MediaRequest_Prepare_AudioCodecType_descriptor(), name, value); +} +enum MediaRequest_Prepare_AudioBitrate { + MediaRequest_Prepare_AudioBitrate_AudioBitrate_32_kbps = 1, + MediaRequest_Prepare_AudioBitrate_AudioBitrate_64_kbps = 2, + MediaRequest_Prepare_AudioBitrate_AudioBitrate_96_kbps = 3, + MediaRequest_Prepare_AudioBitrate_AudioBitrate_128_kbps = 4, + MediaRequest_Prepare_AudioBitrate_AudioBitrate_192_kbps = 5, + MediaRequest_Prepare_AudioBitrate_AudioBitrate_256_kbps = 6 +}; +bool MediaRequest_Prepare_AudioBitrate_IsValid(int value); +const MediaRequest_Prepare_AudioBitrate MediaRequest_Prepare_AudioBitrate_AudioBitrate_MIN = MediaRequest_Prepare_AudioBitrate_AudioBitrate_32_kbps; +const MediaRequest_Prepare_AudioBitrate MediaRequest_Prepare_AudioBitrate_AudioBitrate_MAX = MediaRequest_Prepare_AudioBitrate_AudioBitrate_256_kbps; +const int MediaRequest_Prepare_AudioBitrate_AudioBitrate_ARRAYSIZE = MediaRequest_Prepare_AudioBitrate_AudioBitrate_MAX + 1; + +const ::google::protobuf::EnumDescriptor* MediaRequest_Prepare_AudioBitrate_descriptor(); +inline const ::std::string& MediaRequest_Prepare_AudioBitrate_Name(MediaRequest_Prepare_AudioBitrate value) { + return ::google::protobuf::internal::NameOfEnum( + MediaRequest_Prepare_AudioBitrate_descriptor(), value); +} +inline bool MediaRequest_Prepare_AudioBitrate_Parse( + const ::std::string& name, MediaRequest_Prepare_AudioBitrate* value) { + return ::google::protobuf::internal::ParseNamedEnum( + MediaRequest_Prepare_AudioBitrate_descriptor(), name, value); +} +enum MediaRequest_Prepare_VideoCodecType { + MediaRequest_Prepare_VideoCodecType_VideoCodecTypeOGV = 1 +}; +bool MediaRequest_Prepare_VideoCodecType_IsValid(int value); +const MediaRequest_Prepare_VideoCodecType MediaRequest_Prepare_VideoCodecType_VideoCodecType_MIN = MediaRequest_Prepare_VideoCodecType_VideoCodecTypeOGV; +const MediaRequest_Prepare_VideoCodecType MediaRequest_Prepare_VideoCodecType_VideoCodecType_MAX = MediaRequest_Prepare_VideoCodecType_VideoCodecTypeOGV; +const int MediaRequest_Prepare_VideoCodecType_VideoCodecType_ARRAYSIZE = MediaRequest_Prepare_VideoCodecType_VideoCodecType_MAX + 1; + +const ::google::protobuf::EnumDescriptor* MediaRequest_Prepare_VideoCodecType_descriptor(); +inline const ::std::string& MediaRequest_Prepare_VideoCodecType_Name(MediaRequest_Prepare_VideoCodecType value) { + return ::google::protobuf::internal::NameOfEnum( + MediaRequest_Prepare_VideoCodecType_descriptor(), value); +} +inline bool MediaRequest_Prepare_VideoCodecType_Parse( + const ::std::string& name, MediaRequest_Prepare_VideoCodecType* value) { + return ::google::protobuf::internal::ParseNamedEnum( + MediaRequest_Prepare_VideoCodecType_descriptor(), name, value); +} +enum MediaRequest_Prepare_VideoBitrate { + MediaRequest_Prepare_VideoBitrate_VideoBitrate_512_kbps = 1 +}; +bool MediaRequest_Prepare_VideoBitrate_IsValid(int value); +const MediaRequest_Prepare_VideoBitrate MediaRequest_Prepare_VideoBitrate_VideoBitrate_MIN = MediaRequest_Prepare_VideoBitrate_VideoBitrate_512_kbps; +const MediaRequest_Prepare_VideoBitrate MediaRequest_Prepare_VideoBitrate_VideoBitrate_MAX = MediaRequest_Prepare_VideoBitrate_VideoBitrate_512_kbps; +const int MediaRequest_Prepare_VideoBitrate_VideoBitrate_ARRAYSIZE = MediaRequest_Prepare_VideoBitrate_VideoBitrate_MAX + 1; + +const ::google::protobuf::EnumDescriptor* MediaRequest_Prepare_VideoBitrate_descriptor(); +inline const ::std::string& MediaRequest_Prepare_VideoBitrate_Name(MediaRequest_Prepare_VideoBitrate value) { + return ::google::protobuf::internal::NameOfEnum( + MediaRequest_Prepare_VideoBitrate_descriptor(), value); +} +inline bool MediaRequest_Prepare_VideoBitrate_Parse( + const ::std::string& name, MediaRequest_Prepare_VideoBitrate* value) { + return ::google::protobuf::internal::ParseNamedEnum( + MediaRequest_Prepare_VideoBitrate_descriptor(), name, value); +} enum MediaRequest_Prepare_Type { MediaRequest_Prepare_Type_AudioRequest = 1, MediaRequest_Prepare_Type_VideoRequest = 2 @@ -84,12 +163,13 @@ inline bool MediaRequest_Type_Parse( MediaRequest_Type_descriptor(), name, value); } enum MediaResponse_Type { - MediaResponse_Type_TypeError = 1, - MediaResponse_Type_TypePart = 2 + MediaResponse_Type_TypePrepareResult = 1, + MediaResponse_Type_TypePartResult = 2, + MediaResponse_Type_TypeTerminateResult = 3 }; bool MediaResponse_Type_IsValid(int value); -const MediaResponse_Type MediaResponse_Type_Type_MIN = MediaResponse_Type_TypeError; -const MediaResponse_Type MediaResponse_Type_Type_MAX = MediaResponse_Type_TypePart; +const MediaResponse_Type MediaResponse_Type_Type_MIN = MediaResponse_Type_TypePrepareResult; +const MediaResponse_Type MediaResponse_Type_Type_MAX = MediaResponse_Type_TypeTerminateResult; const int MediaResponse_Type_Type_ARRAYSIZE = MediaResponse_Type_Type_MAX + 1; const ::google::protobuf::EnumDescriptor* MediaResponse_Type_descriptor(); @@ -102,42 +182,6 @@ inline bool MediaResponse_Type_Parse( return ::google::protobuf::internal::ParseNamedEnum( MediaResponse_Type_descriptor(), name, value); } -enum AudioCodecType { - CodecTypeOGA = 1 -}; -bool AudioCodecType_IsValid(int value); -const AudioCodecType AudioCodecType_MIN = CodecTypeOGA; -const AudioCodecType AudioCodecType_MAX = CodecTypeOGA; -const int AudioCodecType_ARRAYSIZE = AudioCodecType_MAX + 1; - -const ::google::protobuf::EnumDescriptor* AudioCodecType_descriptor(); -inline const ::std::string& AudioCodecType_Name(AudioCodecType value) { - return ::google::protobuf::internal::NameOfEnum( - AudioCodecType_descriptor(), value); -} -inline bool AudioCodecType_Parse( - const ::std::string& name, AudioCodecType* value) { - return ::google::protobuf::internal::ParseNamedEnum( - AudioCodecType_descriptor(), name, value); -} -enum VideoCodecType { - CodecTypeOGV = 1 -}; -bool VideoCodecType_IsValid(int value); -const VideoCodecType VideoCodecType_MIN = CodecTypeOGV; -const VideoCodecType VideoCodecType_MAX = CodecTypeOGV; -const int VideoCodecType_ARRAYSIZE = VideoCodecType_MAX + 1; - -const ::google::protobuf::EnumDescriptor* VideoCodecType_descriptor(); -inline const ::std::string& VideoCodecType_Name(VideoCodecType value) { - return ::google::protobuf::internal::NameOfEnum( - VideoCodecType_descriptor(), value); -} -inline bool VideoCodecType_Parse( - const ::std::string& name, VideoCodecType* value) { - return ::google::protobuf::internal::ParseNamedEnum( - VideoCodecType_descriptor(), name, value); -} // =================================================================== class MediaRequest_Prepare_Audio : public ::google::protobuf::Message { @@ -201,19 +245,19 @@ class MediaRequest_Prepare_Audio : public ::google::protobuf::Message { inline ::google::protobuf::int64 track_id() const; inline void set_track_id(::google::protobuf::int64 value); - // optional .Remote.AudioCodecType codec_type = 2; + // required .Remote.MediaRequest.Prepare.AudioCodecType codec_type = 2; inline bool has_codec_type() const; inline void clear_codec_type(); static const int kCodecTypeFieldNumber = 2; - inline ::Remote::AudioCodecType codec_type() const; - inline void set_codec_type(::Remote::AudioCodecType value); + inline ::Remote::MediaRequest_Prepare_AudioCodecType codec_type() const; + inline void set_codec_type(::Remote::MediaRequest_Prepare_AudioCodecType value); - // optional uint32 bitrate = 3; + // required .Remote.MediaRequest.Prepare.AudioBitrate bitrate = 3; inline bool has_bitrate() const; inline void clear_bitrate(); static const int kBitrateFieldNumber = 3; - inline ::google::protobuf::uint32 bitrate() const; - inline void set_bitrate(::google::protobuf::uint32 value); + inline ::Remote::MediaRequest_Prepare_AudioBitrate bitrate() const; + inline void set_bitrate(::Remote::MediaRequest_Prepare_AudioBitrate value); // optional uint32 stream_idx = 4; inline bool has_stream_idx() const; @@ -246,7 +290,7 @@ class MediaRequest_Prepare_Audio : public ::google::protobuf::Message { ::google::protobuf::int64 track_id_; int codec_type_; - ::google::protobuf::uint32 bitrate_; + int bitrate_; ::google::protobuf::uint32 stream_idx_; ::google::protobuf::uint32 offset_secs_; @@ -323,45 +367,52 @@ class MediaRequest_Prepare_Video : public ::google::protobuf::Message { inline ::google::protobuf::int64 video_id() const; inline void set_video_id(::google::protobuf::int64 value); - // optional .Remote.VideoCodecType codec_type = 2; + // required .Remote.MediaRequest.Prepare.VideoCodecType codec_type = 2; inline bool has_codec_type() const; inline void clear_codec_type(); static const int kCodecTypeFieldNumber = 2; - inline ::Remote::VideoCodecType codec_type() const; - inline void set_codec_type(::Remote::VideoCodecType value); + inline ::Remote::MediaRequest_Prepare_VideoCodecType codec_type() const; + inline void set_codec_type(::Remote::MediaRequest_Prepare_VideoCodecType value); - // optional uint32 bitrate = 3; - inline bool has_bitrate() const; - inline void clear_bitrate(); - static const int kBitrateFieldNumber = 3; - inline ::google::protobuf::uint32 bitrate() const; - inline void set_bitrate(::google::protobuf::uint32 value); + // required .Remote.MediaRequest.Prepare.AudioBitrate audio_bitrate = 3; + inline bool has_audio_bitrate() const; + inline void clear_audio_bitrate(); + static const int kAudioBitrateFieldNumber = 3; + inline ::Remote::MediaRequest_Prepare_AudioBitrate audio_bitrate() const; + inline void set_audio_bitrate(::Remote::MediaRequest_Prepare_AudioBitrate value); - // optional uint32 offset_secs = 4; + // required .Remote.MediaRequest.Prepare.VideoBitrate video_bitrate = 4; + inline bool has_video_bitrate() const; + inline void clear_video_bitrate(); + static const int kVideoBitrateFieldNumber = 4; + inline ::Remote::MediaRequest_Prepare_VideoBitrate video_bitrate() const; + inline void set_video_bitrate(::Remote::MediaRequest_Prepare_VideoBitrate value); + + // optional uint32 offset_secs = 5; inline bool has_offset_secs() const; inline void clear_offset_secs(); - static const int kOffsetSecsFieldNumber = 4; + static const int kOffsetSecsFieldNumber = 5; inline ::google::protobuf::uint32 offset_secs() const; inline void set_offset_secs(::google::protobuf::uint32 value); - // optional uint32 audio_stream_idx = 5; + // optional uint32 audio_stream_idx = 6; inline bool has_audio_stream_idx() const; inline void clear_audio_stream_idx(); - static const int kAudioStreamIdxFieldNumber = 5; + static const int kAudioStreamIdxFieldNumber = 6; inline ::google::protobuf::uint32 audio_stream_idx() const; inline void set_audio_stream_idx(::google::protobuf::uint32 value); - // optional uint32 video_stream_idx = 6; + // optional uint32 video_stream_idx = 7; inline bool has_video_stream_idx() const; inline void clear_video_stream_idx(); - static const int kVideoStreamIdxFieldNumber = 6; + static const int kVideoStreamIdxFieldNumber = 7; inline ::google::protobuf::uint32 video_stream_idx() const; inline void set_video_stream_idx(::google::protobuf::uint32 value); - // optional uint32 subtitle_stream_idx = 7; + // optional uint32 subtitle_stream_idx = 8; inline bool has_subtitle_stream_idx() const; inline void clear_subtitle_stream_idx(); - static const int kSubtitleStreamIdxFieldNumber = 7; + static const int kSubtitleStreamIdxFieldNumber = 8; inline ::google::protobuf::uint32 subtitle_stream_idx() const; inline void set_subtitle_stream_idx(::google::protobuf::uint32 value); @@ -371,8 +422,10 @@ class MediaRequest_Prepare_Video : public ::google::protobuf::Message { inline void clear_has_video_id(); inline void set_has_codec_type(); inline void clear_has_codec_type(); - inline void set_has_bitrate(); - inline void clear_has_bitrate(); + inline void set_has_audio_bitrate(); + inline void clear_has_audio_bitrate(); + inline void set_has_video_bitrate(); + inline void clear_has_video_bitrate(); inline void set_has_offset_secs(); inline void clear_has_offset_secs(); inline void set_has_audio_stream_idx(); @@ -386,14 +439,15 @@ class MediaRequest_Prepare_Video : public ::google::protobuf::Message { ::google::protobuf::int64 video_id_; int codec_type_; - ::google::protobuf::uint32 bitrate_; + int audio_bitrate_; + int video_bitrate_; ::google::protobuf::uint32 offset_secs_; ::google::protobuf::uint32 audio_stream_idx_; ::google::protobuf::uint32 video_stream_idx_; ::google::protobuf::uint32 subtitle_stream_idx_; mutable int _cached_size_; - ::google::protobuf::uint32 _has_bits_[(7 + 31) / 32]; + ::google::protobuf::uint32 _has_bits_[(8 + 31) / 32]; friend void protobuf_AddDesc_media_2eproto(); friend void protobuf_AssignDesc_media_2eproto(); @@ -459,6 +513,103 @@ class MediaRequest_Prepare : public ::google::protobuf::Message { typedef MediaRequest_Prepare_Audio Audio; typedef MediaRequest_Prepare_Video Video; + typedef MediaRequest_Prepare_AudioCodecType AudioCodecType; + static const AudioCodecType AudioCodecTypeOGA = MediaRequest_Prepare_AudioCodecType_AudioCodecTypeOGA; + static inline bool AudioCodecType_IsValid(int value) { + return MediaRequest_Prepare_AudioCodecType_IsValid(value); + } + static const AudioCodecType AudioCodecType_MIN = + MediaRequest_Prepare_AudioCodecType_AudioCodecType_MIN; + static const AudioCodecType AudioCodecType_MAX = + MediaRequest_Prepare_AudioCodecType_AudioCodecType_MAX; + static const int AudioCodecType_ARRAYSIZE = + MediaRequest_Prepare_AudioCodecType_AudioCodecType_ARRAYSIZE; + static inline const ::google::protobuf::EnumDescriptor* + AudioCodecType_descriptor() { + return MediaRequest_Prepare_AudioCodecType_descriptor(); + } + static inline const ::std::string& AudioCodecType_Name(AudioCodecType value) { + return MediaRequest_Prepare_AudioCodecType_Name(value); + } + static inline bool AudioCodecType_Parse(const ::std::string& name, + AudioCodecType* value) { + return MediaRequest_Prepare_AudioCodecType_Parse(name, value); + } + + typedef MediaRequest_Prepare_AudioBitrate AudioBitrate; + static const AudioBitrate AudioBitrate_32_kbps = MediaRequest_Prepare_AudioBitrate_AudioBitrate_32_kbps; + static const AudioBitrate AudioBitrate_64_kbps = MediaRequest_Prepare_AudioBitrate_AudioBitrate_64_kbps; + static const AudioBitrate AudioBitrate_96_kbps = MediaRequest_Prepare_AudioBitrate_AudioBitrate_96_kbps; + static const AudioBitrate AudioBitrate_128_kbps = MediaRequest_Prepare_AudioBitrate_AudioBitrate_128_kbps; + static const AudioBitrate AudioBitrate_192_kbps = MediaRequest_Prepare_AudioBitrate_AudioBitrate_192_kbps; + static const AudioBitrate AudioBitrate_256_kbps = MediaRequest_Prepare_AudioBitrate_AudioBitrate_256_kbps; + static inline bool AudioBitrate_IsValid(int value) { + return MediaRequest_Prepare_AudioBitrate_IsValid(value); + } + static const AudioBitrate AudioBitrate_MIN = + MediaRequest_Prepare_AudioBitrate_AudioBitrate_MIN; + static const AudioBitrate AudioBitrate_MAX = + MediaRequest_Prepare_AudioBitrate_AudioBitrate_MAX; + static const int AudioBitrate_ARRAYSIZE = + MediaRequest_Prepare_AudioBitrate_AudioBitrate_ARRAYSIZE; + static inline const ::google::protobuf::EnumDescriptor* + AudioBitrate_descriptor() { + return MediaRequest_Prepare_AudioBitrate_descriptor(); + } + static inline const ::std::string& AudioBitrate_Name(AudioBitrate value) { + return MediaRequest_Prepare_AudioBitrate_Name(value); + } + static inline bool AudioBitrate_Parse(const ::std::string& name, + AudioBitrate* value) { + return MediaRequest_Prepare_AudioBitrate_Parse(name, value); + } + + typedef MediaRequest_Prepare_VideoCodecType VideoCodecType; + static const VideoCodecType VideoCodecTypeOGV = MediaRequest_Prepare_VideoCodecType_VideoCodecTypeOGV; + static inline bool VideoCodecType_IsValid(int value) { + return MediaRequest_Prepare_VideoCodecType_IsValid(value); + } + static const VideoCodecType VideoCodecType_MIN = + MediaRequest_Prepare_VideoCodecType_VideoCodecType_MIN; + static const VideoCodecType VideoCodecType_MAX = + MediaRequest_Prepare_VideoCodecType_VideoCodecType_MAX; + static const int VideoCodecType_ARRAYSIZE = + MediaRequest_Prepare_VideoCodecType_VideoCodecType_ARRAYSIZE; + static inline const ::google::protobuf::EnumDescriptor* + VideoCodecType_descriptor() { + return MediaRequest_Prepare_VideoCodecType_descriptor(); + } + static inline const ::std::string& VideoCodecType_Name(VideoCodecType value) { + return MediaRequest_Prepare_VideoCodecType_Name(value); + } + static inline bool VideoCodecType_Parse(const ::std::string& name, + VideoCodecType* value) { + return MediaRequest_Prepare_VideoCodecType_Parse(name, value); + } + + typedef MediaRequest_Prepare_VideoBitrate VideoBitrate; + static const VideoBitrate VideoBitrate_512_kbps = MediaRequest_Prepare_VideoBitrate_VideoBitrate_512_kbps; + static inline bool VideoBitrate_IsValid(int value) { + return MediaRequest_Prepare_VideoBitrate_IsValid(value); + } + static const VideoBitrate VideoBitrate_MIN = + MediaRequest_Prepare_VideoBitrate_VideoBitrate_MIN; + static const VideoBitrate VideoBitrate_MAX = + MediaRequest_Prepare_VideoBitrate_VideoBitrate_MAX; + static const int VideoBitrate_ARRAYSIZE = + MediaRequest_Prepare_VideoBitrate_VideoBitrate_ARRAYSIZE; + static inline const ::google::protobuf::EnumDescriptor* + VideoBitrate_descriptor() { + return MediaRequest_Prepare_VideoBitrate_descriptor(); + } + static inline const ::std::string& VideoBitrate_Name(VideoBitrate value) { + return MediaRequest_Prepare_VideoBitrate_Name(value); + } + static inline bool VideoBitrate_Parse(const ::std::string& name, + VideoBitrate* value) { + return MediaRequest_Prepare_VideoBitrate_Parse(name, value); + } + typedef MediaRequest_Prepare_Type Type; static const Type AudioRequest = MediaRequest_Prepare_Type_AudioRequest; static const Type VideoRequest = MediaRequest_Prepare_Type_VideoRequest; @@ -591,24 +742,34 @@ class MediaRequest_GetPart : public ::google::protobuf::Message { // accessors ------------------------------------------------------- - // required uint32 requested_data_size = 1; + // required uint32 handle = 1; + inline bool has_handle() const; + inline void clear_handle(); + static const int kHandleFieldNumber = 1; + inline ::google::protobuf::uint32 handle() const; + inline void set_handle(::google::protobuf::uint32 value); + + // required uint32 requested_data_size = 2; inline bool has_requested_data_size() const; inline void clear_requested_data_size(); - static const int kRequestedDataSizeFieldNumber = 1; + static const int kRequestedDataSizeFieldNumber = 2; inline ::google::protobuf::uint32 requested_data_size() const; inline void set_requested_data_size(::google::protobuf::uint32 value); // @@protoc_insertion_point(class_scope:Remote.MediaRequest.GetPart) private: + inline void set_has_handle(); + inline void clear_has_handle(); inline void set_has_requested_data_size(); inline void clear_has_requested_data_size(); ::google::protobuf::UnknownFieldSet _unknown_fields_; + ::google::protobuf::uint32 handle_; ::google::protobuf::uint32 requested_data_size_; mutable int _cached_size_; - ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32]; + ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32]; friend void protobuf_AddDesc_media_2eproto(); friend void protobuf_AssignDesc_media_2eproto(); @@ -673,14 +834,24 @@ class MediaRequest_Terminate : public ::google::protobuf::Message { // accessors ------------------------------------------------------- + // required uint32 handle = 1; + inline bool has_handle() const; + inline void clear_handle(); + static const int kHandleFieldNumber = 1; + inline ::google::protobuf::uint32 handle() const; + inline void set_handle(::google::protobuf::uint32 value); + // @@protoc_insertion_point(class_scope:Remote.MediaRequest.Terminate) private: + inline void set_has_handle(); + inline void clear_has_handle(); ::google::protobuf::UnknownFieldSet _unknown_fields_; + ::google::protobuf::uint32 handle_; mutable int _cached_size_; - ::google::protobuf::uint32 _has_bits_[1]; + ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32]; friend void protobuf_AddDesc_media_2eproto(); friend void protobuf_AssignDesc_media_2eproto(); @@ -838,14 +1009,14 @@ class MediaRequest : public ::google::protobuf::Message { }; // ------------------------------------------------------------------- -class MediaResponse_Part : public ::google::protobuf::Message { +class MediaResponse_PrepareResult : public ::google::protobuf::Message { public: - MediaResponse_Part(); - virtual ~MediaResponse_Part(); + MediaResponse_PrepareResult(); + virtual ~MediaResponse_PrepareResult(); - MediaResponse_Part(const MediaResponse_Part& from); + MediaResponse_PrepareResult(const MediaResponse_PrepareResult& from); - inline MediaResponse_Part& operator=(const MediaResponse_Part& from) { + inline MediaResponse_PrepareResult& operator=(const MediaResponse_PrepareResult& from) { CopyFrom(from); return *this; } @@ -859,17 +1030,17 @@ class MediaResponse_Part : public ::google::protobuf::Message { } static const ::google::protobuf::Descriptor* descriptor(); - static const MediaResponse_Part& default_instance(); + static const MediaResponse_PrepareResult& default_instance(); - void Swap(MediaResponse_Part* other); + void Swap(MediaResponse_PrepareResult* other); // implements Message ---------------------------------------------- - MediaResponse_Part* New() const; + MediaResponse_PrepareResult* New() const; void CopyFrom(const ::google::protobuf::Message& from); void MergeFrom(const ::google::protobuf::Message& from); - void CopyFrom(const MediaResponse_Part& from); - void MergeFrom(const MediaResponse_Part& from); + void CopyFrom(const MediaResponse_PrepareResult& from); + void MergeFrom(const MediaResponse_PrepareResult& from); void Clear(); bool IsInitialized() const; @@ -892,10 +1063,92 @@ class MediaResponse_Part : public ::google::protobuf::Message { // accessors ------------------------------------------------------- - // required bytes data = 1; + // optional uint32 handle = 1; + inline bool has_handle() const; + inline void clear_handle(); + static const int kHandleFieldNumber = 1; + inline ::google::protobuf::uint32 handle() const; + inline void set_handle(::google::protobuf::uint32 value); + + // @@protoc_insertion_point(class_scope:Remote.MediaResponse.PrepareResult) + private: + inline void set_has_handle(); + inline void clear_has_handle(); + + ::google::protobuf::UnknownFieldSet _unknown_fields_; + + ::google::protobuf::uint32 handle_; + + mutable int _cached_size_; + ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32]; + + friend void protobuf_AddDesc_media_2eproto(); + friend void protobuf_AssignDesc_media_2eproto(); + friend void protobuf_ShutdownFile_media_2eproto(); + + void InitAsDefaultInstance(); + static MediaResponse_PrepareResult* default_instance_; +}; +// ------------------------------------------------------------------- + +class MediaResponse_PartResult : public ::google::protobuf::Message { + public: + MediaResponse_PartResult(); + virtual ~MediaResponse_PartResult(); + + MediaResponse_PartResult(const MediaResponse_PartResult& from); + + inline MediaResponse_PartResult& operator=(const MediaResponse_PartResult& from) { + CopyFrom(from); + return *this; + } + + inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const { + return _unknown_fields_; + } + + inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() { + return &_unknown_fields_; + } + + static const ::google::protobuf::Descriptor* descriptor(); + static const MediaResponse_PartResult& default_instance(); + + void Swap(MediaResponse_PartResult* other); + + // implements Message ---------------------------------------------- + + MediaResponse_PartResult* New() const; + void CopyFrom(const ::google::protobuf::Message& from); + void MergeFrom(const ::google::protobuf::Message& from); + void CopyFrom(const MediaResponse_PartResult& from); + void MergeFrom(const MediaResponse_PartResult& from); + void Clear(); + bool IsInitialized() const; + + int ByteSize() const; + bool MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input); + void SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const; + ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const; + int GetCachedSize() const { return _cached_size_; } + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const; + public: + + ::google::protobuf::Metadata GetMetadata() const; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // optional bytes data = 2; inline bool has_data() const; inline void clear_data(); - static const int kDataFieldNumber = 1; + static const int kDataFieldNumber = 2; inline const ::std::string& data() const; inline void set_data(const ::std::string& value); inline void set_data(const char* value); @@ -904,7 +1157,7 @@ class MediaResponse_Part : public ::google::protobuf::Message { inline ::std::string* release_data(); inline void set_allocated_data(::std::string* data); - // @@protoc_insertion_point(class_scope:Remote.MediaResponse.Part) + // @@protoc_insertion_point(class_scope:Remote.MediaResponse.PartResult) private: inline void set_has_data(); inline void clear_has_data(); @@ -921,7 +1174,79 @@ class MediaResponse_Part : public ::google::protobuf::Message { friend void protobuf_ShutdownFile_media_2eproto(); void InitAsDefaultInstance(); - static MediaResponse_Part* default_instance_; + static MediaResponse_PartResult* default_instance_; +}; +// ------------------------------------------------------------------- + +class MediaResponse_TerminateResult : public ::google::protobuf::Message { + public: + MediaResponse_TerminateResult(); + virtual ~MediaResponse_TerminateResult(); + + MediaResponse_TerminateResult(const MediaResponse_TerminateResult& from); + + inline MediaResponse_TerminateResult& operator=(const MediaResponse_TerminateResult& from) { + CopyFrom(from); + return *this; + } + + inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const { + return _unknown_fields_; + } + + inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() { + return &_unknown_fields_; + } + + static const ::google::protobuf::Descriptor* descriptor(); + static const MediaResponse_TerminateResult& default_instance(); + + void Swap(MediaResponse_TerminateResult* other); + + // implements Message ---------------------------------------------- + + MediaResponse_TerminateResult* New() const; + void CopyFrom(const ::google::protobuf::Message& from); + void MergeFrom(const ::google::protobuf::Message& from); + void CopyFrom(const MediaResponse_TerminateResult& from); + void MergeFrom(const MediaResponse_TerminateResult& from); + void Clear(); + bool IsInitialized() const; + + int ByteSize() const; + bool MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input); + void SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const; + ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const; + int GetCachedSize() const { return _cached_size_; } + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const; + public: + + ::google::protobuf::Metadata GetMetadata() const; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // @@protoc_insertion_point(class_scope:Remote.MediaResponse.TerminateResult) + private: + + ::google::protobuf::UnknownFieldSet _unknown_fields_; + + + mutable int _cached_size_; + ::google::protobuf::uint32 _has_bits_[1]; + + friend void protobuf_AddDesc_media_2eproto(); + friend void protobuf_AssignDesc_media_2eproto(); + friend void protobuf_ShutdownFile_media_2eproto(); + + void InitAsDefaultInstance(); + static MediaResponse_TerminateResult* default_instance_; }; // ------------------------------------------------------------------- @@ -977,11 +1302,14 @@ class MediaResponse : public ::google::protobuf::Message { // nested types ---------------------------------------------------- - typedef MediaResponse_Part Part; + typedef MediaResponse_PrepareResult PrepareResult; + typedef MediaResponse_PartResult PartResult; + typedef MediaResponse_TerminateResult TerminateResult; typedef MediaResponse_Type Type; - static const Type TypeError = MediaResponse_Type_TypeError; - static const Type TypePart = MediaResponse_Type_TypePart; + static const Type TypePrepareResult = MediaResponse_Type_TypePrepareResult; + static const Type TypePartResult = MediaResponse_Type_TypePartResult; + static const Type TypeTerminateResult = MediaResponse_Type_TypeTerminateResult; static inline bool Type_IsValid(int value) { return MediaResponse_Type_IsValid(value); } @@ -1012,41 +1340,53 @@ class MediaResponse : public ::google::protobuf::Message { inline ::Remote::MediaResponse_Type type() const; inline void set_type(::Remote::MediaResponse_Type value); - // optional .Remote.Error error = 2; - inline bool has_error() const; - inline void clear_error(); - static const int kErrorFieldNumber = 2; - inline const ::Remote::Error& error() const; - inline ::Remote::Error* mutable_error(); - inline ::Remote::Error* release_error(); - inline void set_allocated_error(::Remote::Error* error); + // optional .Remote.MediaResponse.PrepareResult prepare_result = 2; + inline bool has_prepare_result() const; + inline void clear_prepare_result(); + static const int kPrepareResultFieldNumber = 2; + inline const ::Remote::MediaResponse_PrepareResult& prepare_result() const; + inline ::Remote::MediaResponse_PrepareResult* mutable_prepare_result(); + inline ::Remote::MediaResponse_PrepareResult* release_prepare_result(); + inline void set_allocated_prepare_result(::Remote::MediaResponse_PrepareResult* prepare_result); - // optional .Remote.MediaResponse.Part part = 3; - inline bool has_part() const; - inline void clear_part(); - static const int kPartFieldNumber = 3; - inline const ::Remote::MediaResponse_Part& part() const; - inline ::Remote::MediaResponse_Part* mutable_part(); - inline ::Remote::MediaResponse_Part* release_part(); - inline void set_allocated_part(::Remote::MediaResponse_Part* part); + // optional .Remote.MediaResponse.PartResult part_result = 3; + inline bool has_part_result() const; + inline void clear_part_result(); + static const int kPartResultFieldNumber = 3; + inline const ::Remote::MediaResponse_PartResult& part_result() const; + inline ::Remote::MediaResponse_PartResult* mutable_part_result(); + inline ::Remote::MediaResponse_PartResult* release_part_result(); + inline void set_allocated_part_result(::Remote::MediaResponse_PartResult* part_result); + + // optional .Remote.MediaResponse.TerminateResult terminate_result = 4; + inline bool has_terminate_result() const; + inline void clear_terminate_result(); + static const int kTerminateResultFieldNumber = 4; + inline const ::Remote::MediaResponse_TerminateResult& terminate_result() const; + inline ::Remote::MediaResponse_TerminateResult* mutable_terminate_result(); + inline ::Remote::MediaResponse_TerminateResult* release_terminate_result(); + inline void set_allocated_terminate_result(::Remote::MediaResponse_TerminateResult* terminate_result); // @@protoc_insertion_point(class_scope:Remote.MediaResponse) private: inline void set_has_type(); inline void clear_has_type(); - inline void set_has_error(); - inline void clear_has_error(); - inline void set_has_part(); - inline void clear_has_part(); + inline void set_has_prepare_result(); + inline void clear_has_prepare_result(); + inline void set_has_part_result(); + inline void clear_has_part_result(); + inline void set_has_terminate_result(); + inline void clear_has_terminate_result(); ::google::protobuf::UnknownFieldSet _unknown_fields_; - ::Remote::Error* error_; - ::Remote::MediaResponse_Part* part_; + ::Remote::MediaResponse_PrepareResult* prepare_result_; + ::Remote::MediaResponse_PartResult* part_result_; + ::Remote::MediaResponse_TerminateResult* terminate_result_; int type_; mutable int _cached_size_; - ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32]; + ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32]; friend void protobuf_AddDesc_media_2eproto(); friend void protobuf_AssignDesc_media_2eproto(); @@ -1084,7 +1424,7 @@ inline void MediaRequest_Prepare_Audio::set_track_id(::google::protobuf::int64 v track_id_ = value; } -// optional .Remote.AudioCodecType codec_type = 2; +// required .Remote.MediaRequest.Prepare.AudioCodecType codec_type = 2; inline bool MediaRequest_Prepare_Audio::has_codec_type() const { return (_has_bits_[0] & 0x00000002u) != 0; } @@ -1098,16 +1438,16 @@ inline void MediaRequest_Prepare_Audio::clear_codec_type() { codec_type_ = 1; clear_has_codec_type(); } -inline ::Remote::AudioCodecType MediaRequest_Prepare_Audio::codec_type() const { - return static_cast< ::Remote::AudioCodecType >(codec_type_); +inline ::Remote::MediaRequest_Prepare_AudioCodecType MediaRequest_Prepare_Audio::codec_type() const { + return static_cast< ::Remote::MediaRequest_Prepare_AudioCodecType >(codec_type_); } -inline void MediaRequest_Prepare_Audio::set_codec_type(::Remote::AudioCodecType value) { - assert(::Remote::AudioCodecType_IsValid(value)); +inline void MediaRequest_Prepare_Audio::set_codec_type(::Remote::MediaRequest_Prepare_AudioCodecType value) { + assert(::Remote::MediaRequest_Prepare_AudioCodecType_IsValid(value)); set_has_codec_type(); codec_type_ = value; } -// optional uint32 bitrate = 3; +// required .Remote.MediaRequest.Prepare.AudioBitrate bitrate = 3; inline bool MediaRequest_Prepare_Audio::has_bitrate() const { return (_has_bits_[0] & 0x00000004u) != 0; } @@ -1118,13 +1458,14 @@ inline void MediaRequest_Prepare_Audio::clear_has_bitrate() { _has_bits_[0] &= ~0x00000004u; } inline void MediaRequest_Prepare_Audio::clear_bitrate() { - bitrate_ = 0u; + bitrate_ = 1; clear_has_bitrate(); } -inline ::google::protobuf::uint32 MediaRequest_Prepare_Audio::bitrate() const { - return bitrate_; +inline ::Remote::MediaRequest_Prepare_AudioBitrate MediaRequest_Prepare_Audio::bitrate() const { + return static_cast< ::Remote::MediaRequest_Prepare_AudioBitrate >(bitrate_); } -inline void MediaRequest_Prepare_Audio::set_bitrate(::google::protobuf::uint32 value) { +inline void MediaRequest_Prepare_Audio::set_bitrate(::Remote::MediaRequest_Prepare_AudioBitrate value) { + assert(::Remote::MediaRequest_Prepare_AudioBitrate_IsValid(value)); set_has_bitrate(); bitrate_ = value; } @@ -1199,7 +1540,7 @@ inline void MediaRequest_Prepare_Video::set_video_id(::google::protobuf::int64 v video_id_ = value; } -// optional .Remote.VideoCodecType codec_type = 2; +// required .Remote.MediaRequest.Prepare.VideoCodecType codec_type = 2; inline bool MediaRequest_Prepare_Video::has_codec_type() const { return (_has_bits_[0] & 0x00000002u) != 0; } @@ -1213,47 +1554,71 @@ inline void MediaRequest_Prepare_Video::clear_codec_type() { codec_type_ = 1; clear_has_codec_type(); } -inline ::Remote::VideoCodecType MediaRequest_Prepare_Video::codec_type() const { - return static_cast< ::Remote::VideoCodecType >(codec_type_); +inline ::Remote::MediaRequest_Prepare_VideoCodecType MediaRequest_Prepare_Video::codec_type() const { + return static_cast< ::Remote::MediaRequest_Prepare_VideoCodecType >(codec_type_); } -inline void MediaRequest_Prepare_Video::set_codec_type(::Remote::VideoCodecType value) { - assert(::Remote::VideoCodecType_IsValid(value)); +inline void MediaRequest_Prepare_Video::set_codec_type(::Remote::MediaRequest_Prepare_VideoCodecType value) { + assert(::Remote::MediaRequest_Prepare_VideoCodecType_IsValid(value)); set_has_codec_type(); codec_type_ = value; } -// optional uint32 bitrate = 3; -inline bool MediaRequest_Prepare_Video::has_bitrate() const { +// required .Remote.MediaRequest.Prepare.AudioBitrate audio_bitrate = 3; +inline bool MediaRequest_Prepare_Video::has_audio_bitrate() const { return (_has_bits_[0] & 0x00000004u) != 0; } -inline void MediaRequest_Prepare_Video::set_has_bitrate() { +inline void MediaRequest_Prepare_Video::set_has_audio_bitrate() { _has_bits_[0] |= 0x00000004u; } -inline void MediaRequest_Prepare_Video::clear_has_bitrate() { +inline void MediaRequest_Prepare_Video::clear_has_audio_bitrate() { _has_bits_[0] &= ~0x00000004u; } -inline void MediaRequest_Prepare_Video::clear_bitrate() { - bitrate_ = 0u; - clear_has_bitrate(); +inline void MediaRequest_Prepare_Video::clear_audio_bitrate() { + audio_bitrate_ = 1; + clear_has_audio_bitrate(); } -inline ::google::protobuf::uint32 MediaRequest_Prepare_Video::bitrate() const { - return bitrate_; +inline ::Remote::MediaRequest_Prepare_AudioBitrate MediaRequest_Prepare_Video::audio_bitrate() const { + return static_cast< ::Remote::MediaRequest_Prepare_AudioBitrate >(audio_bitrate_); } -inline void MediaRequest_Prepare_Video::set_bitrate(::google::protobuf::uint32 value) { - set_has_bitrate(); - bitrate_ = value; +inline void MediaRequest_Prepare_Video::set_audio_bitrate(::Remote::MediaRequest_Prepare_AudioBitrate value) { + assert(::Remote::MediaRequest_Prepare_AudioBitrate_IsValid(value)); + set_has_audio_bitrate(); + audio_bitrate_ = value; } -// optional uint32 offset_secs = 4; -inline bool MediaRequest_Prepare_Video::has_offset_secs() const { +// required .Remote.MediaRequest.Prepare.VideoBitrate video_bitrate = 4; +inline bool MediaRequest_Prepare_Video::has_video_bitrate() const { return (_has_bits_[0] & 0x00000008u) != 0; } -inline void MediaRequest_Prepare_Video::set_has_offset_secs() { +inline void MediaRequest_Prepare_Video::set_has_video_bitrate() { _has_bits_[0] |= 0x00000008u; } -inline void MediaRequest_Prepare_Video::clear_has_offset_secs() { +inline void MediaRequest_Prepare_Video::clear_has_video_bitrate() { _has_bits_[0] &= ~0x00000008u; } +inline void MediaRequest_Prepare_Video::clear_video_bitrate() { + video_bitrate_ = 1; + clear_has_video_bitrate(); +} +inline ::Remote::MediaRequest_Prepare_VideoBitrate MediaRequest_Prepare_Video::video_bitrate() const { + return static_cast< ::Remote::MediaRequest_Prepare_VideoBitrate >(video_bitrate_); +} +inline void MediaRequest_Prepare_Video::set_video_bitrate(::Remote::MediaRequest_Prepare_VideoBitrate value) { + assert(::Remote::MediaRequest_Prepare_VideoBitrate_IsValid(value)); + set_has_video_bitrate(); + video_bitrate_ = value; +} + +// optional uint32 offset_secs = 5; +inline bool MediaRequest_Prepare_Video::has_offset_secs() const { + return (_has_bits_[0] & 0x00000010u) != 0; +} +inline void MediaRequest_Prepare_Video::set_has_offset_secs() { + _has_bits_[0] |= 0x00000010u; +} +inline void MediaRequest_Prepare_Video::clear_has_offset_secs() { + _has_bits_[0] &= ~0x00000010u; +} inline void MediaRequest_Prepare_Video::clear_offset_secs() { offset_secs_ = 0u; clear_has_offset_secs(); @@ -1266,15 +1631,15 @@ inline void MediaRequest_Prepare_Video::set_offset_secs(::google::protobuf::uint offset_secs_ = value; } -// optional uint32 audio_stream_idx = 5; +// optional uint32 audio_stream_idx = 6; inline bool MediaRequest_Prepare_Video::has_audio_stream_idx() const { - return (_has_bits_[0] & 0x00000010u) != 0; + return (_has_bits_[0] & 0x00000020u) != 0; } inline void MediaRequest_Prepare_Video::set_has_audio_stream_idx() { - _has_bits_[0] |= 0x00000010u; + _has_bits_[0] |= 0x00000020u; } inline void MediaRequest_Prepare_Video::clear_has_audio_stream_idx() { - _has_bits_[0] &= ~0x00000010u; + _has_bits_[0] &= ~0x00000020u; } inline void MediaRequest_Prepare_Video::clear_audio_stream_idx() { audio_stream_idx_ = 0u; @@ -1288,15 +1653,15 @@ inline void MediaRequest_Prepare_Video::set_audio_stream_idx(::google::protobuf: audio_stream_idx_ = value; } -// optional uint32 video_stream_idx = 6; +// optional uint32 video_stream_idx = 7; inline bool MediaRequest_Prepare_Video::has_video_stream_idx() const { - return (_has_bits_[0] & 0x00000020u) != 0; + return (_has_bits_[0] & 0x00000040u) != 0; } inline void MediaRequest_Prepare_Video::set_has_video_stream_idx() { - _has_bits_[0] |= 0x00000020u; + _has_bits_[0] |= 0x00000040u; } inline void MediaRequest_Prepare_Video::clear_has_video_stream_idx() { - _has_bits_[0] &= ~0x00000020u; + _has_bits_[0] &= ~0x00000040u; } inline void MediaRequest_Prepare_Video::clear_video_stream_idx() { video_stream_idx_ = 0u; @@ -1310,15 +1675,15 @@ inline void MediaRequest_Prepare_Video::set_video_stream_idx(::google::protobuf: video_stream_idx_ = value; } -// optional uint32 subtitle_stream_idx = 7; +// optional uint32 subtitle_stream_idx = 8; inline bool MediaRequest_Prepare_Video::has_subtitle_stream_idx() const { - return (_has_bits_[0] & 0x00000040u) != 0; + return (_has_bits_[0] & 0x00000080u) != 0; } inline void MediaRequest_Prepare_Video::set_has_subtitle_stream_idx() { - _has_bits_[0] |= 0x00000040u; + _has_bits_[0] |= 0x00000080u; } inline void MediaRequest_Prepare_Video::clear_has_subtitle_stream_idx() { - _has_bits_[0] &= ~0x00000040u; + _has_bits_[0] &= ~0x00000080u; } inline void MediaRequest_Prepare_Video::clear_subtitle_stream_idx() { subtitle_stream_idx_ = 0u; @@ -1439,16 +1804,38 @@ inline void MediaRequest_Prepare::set_allocated_video(::Remote::MediaRequest_Pre // MediaRequest_GetPart -// required uint32 requested_data_size = 1; -inline bool MediaRequest_GetPart::has_requested_data_size() const { +// required uint32 handle = 1; +inline bool MediaRequest_GetPart::has_handle() const { return (_has_bits_[0] & 0x00000001u) != 0; } -inline void MediaRequest_GetPart::set_has_requested_data_size() { +inline void MediaRequest_GetPart::set_has_handle() { _has_bits_[0] |= 0x00000001u; } -inline void MediaRequest_GetPart::clear_has_requested_data_size() { +inline void MediaRequest_GetPart::clear_has_handle() { _has_bits_[0] &= ~0x00000001u; } +inline void MediaRequest_GetPart::clear_handle() { + handle_ = 0u; + clear_has_handle(); +} +inline ::google::protobuf::uint32 MediaRequest_GetPart::handle() const { + return handle_; +} +inline void MediaRequest_GetPart::set_handle(::google::protobuf::uint32 value) { + set_has_handle(); + handle_ = value; +} + +// required uint32 requested_data_size = 2; +inline bool MediaRequest_GetPart::has_requested_data_size() const { + return (_has_bits_[0] & 0x00000002u) != 0; +} +inline void MediaRequest_GetPart::set_has_requested_data_size() { + _has_bits_[0] |= 0x00000002u; +} +inline void MediaRequest_GetPart::clear_has_requested_data_size() { + _has_bits_[0] &= ~0x00000002u; +} inline void MediaRequest_GetPart::clear_requested_data_size() { requested_data_size_ = 0u; clear_has_requested_data_size(); @@ -1465,6 +1852,28 @@ inline void MediaRequest_GetPart::set_requested_data_size(::google::protobuf::ui // MediaRequest_Terminate +// required uint32 handle = 1; +inline bool MediaRequest_Terminate::has_handle() const { + return (_has_bits_[0] & 0x00000001u) != 0; +} +inline void MediaRequest_Terminate::set_has_handle() { + _has_bits_[0] |= 0x00000001u; +} +inline void MediaRequest_Terminate::clear_has_handle() { + _has_bits_[0] &= ~0x00000001u; +} +inline void MediaRequest_Terminate::clear_handle() { + handle_ = 0u; + clear_has_handle(); +} +inline ::google::protobuf::uint32 MediaRequest_Terminate::handle() const { + return handle_; +} +inline void MediaRequest_Terminate::set_handle(::google::protobuf::uint32 value) { + set_has_handle(); + handle_ = value; +} + // ------------------------------------------------------------------- // MediaRequest @@ -1608,56 +2017,82 @@ inline void MediaRequest::set_allocated_terminate(::Remote::MediaRequest_Termina // ------------------------------------------------------------------- -// MediaResponse_Part +// MediaResponse_PrepareResult -// required bytes data = 1; -inline bool MediaResponse_Part::has_data() const { +// optional uint32 handle = 1; +inline bool MediaResponse_PrepareResult::has_handle() const { return (_has_bits_[0] & 0x00000001u) != 0; } -inline void MediaResponse_Part::set_has_data() { +inline void MediaResponse_PrepareResult::set_has_handle() { _has_bits_[0] |= 0x00000001u; } -inline void MediaResponse_Part::clear_has_data() { +inline void MediaResponse_PrepareResult::clear_has_handle() { _has_bits_[0] &= ~0x00000001u; } -inline void MediaResponse_Part::clear_data() { +inline void MediaResponse_PrepareResult::clear_handle() { + handle_ = 0u; + clear_has_handle(); +} +inline ::google::protobuf::uint32 MediaResponse_PrepareResult::handle() const { + return handle_; +} +inline void MediaResponse_PrepareResult::set_handle(::google::protobuf::uint32 value) { + set_has_handle(); + handle_ = value; +} + +// ------------------------------------------------------------------- + +// MediaResponse_PartResult + +// optional bytes data = 2; +inline bool MediaResponse_PartResult::has_data() const { + return (_has_bits_[0] & 0x00000001u) != 0; +} +inline void MediaResponse_PartResult::set_has_data() { + _has_bits_[0] |= 0x00000001u; +} +inline void MediaResponse_PartResult::clear_has_data() { + _has_bits_[0] &= ~0x00000001u; +} +inline void MediaResponse_PartResult::clear_data() { if (data_ != &::google::protobuf::internal::kEmptyString) { data_->clear(); } clear_has_data(); } -inline const ::std::string& MediaResponse_Part::data() const { +inline const ::std::string& MediaResponse_PartResult::data() const { return *data_; } -inline void MediaResponse_Part::set_data(const ::std::string& value) { +inline void MediaResponse_PartResult::set_data(const ::std::string& value) { set_has_data(); if (data_ == &::google::protobuf::internal::kEmptyString) { data_ = new ::std::string; } data_->assign(value); } -inline void MediaResponse_Part::set_data(const char* value) { +inline void MediaResponse_PartResult::set_data(const char* value) { set_has_data(); if (data_ == &::google::protobuf::internal::kEmptyString) { data_ = new ::std::string; } data_->assign(value); } -inline void MediaResponse_Part::set_data(const void* value, size_t size) { +inline void MediaResponse_PartResult::set_data(const void* value, size_t size) { set_has_data(); if (data_ == &::google::protobuf::internal::kEmptyString) { data_ = new ::std::string; } data_->assign(reinterpret_cast(value), size); } -inline ::std::string* MediaResponse_Part::mutable_data() { +inline ::std::string* MediaResponse_PartResult::mutable_data() { set_has_data(); if (data_ == &::google::protobuf::internal::kEmptyString) { data_ = new ::std::string; } return data_; } -inline ::std::string* MediaResponse_Part::release_data() { +inline ::std::string* MediaResponse_PartResult::release_data() { clear_has_data(); if (data_ == &::google::protobuf::internal::kEmptyString) { return NULL; @@ -1667,7 +2102,7 @@ inline ::std::string* MediaResponse_Part::release_data() { return temp; } } -inline void MediaResponse_Part::set_allocated_data(::std::string* data) { +inline void MediaResponse_PartResult::set_allocated_data(::std::string* data) { if (data_ != &::google::protobuf::internal::kEmptyString) { delete data_; } @@ -1682,6 +2117,10 @@ inline void MediaResponse_Part::set_allocated_data(::std::string* data) { // ------------------------------------------------------------------- +// MediaResponse_TerminateResult + +// ------------------------------------------------------------------- + // MediaResponse // required .Remote.MediaResponse.Type type = 1; @@ -1707,79 +2146,117 @@ inline void MediaResponse::set_type(::Remote::MediaResponse_Type value) { type_ = value; } -// optional .Remote.Error error = 2; -inline bool MediaResponse::has_error() const { +// optional .Remote.MediaResponse.PrepareResult prepare_result = 2; +inline bool MediaResponse::has_prepare_result() const { return (_has_bits_[0] & 0x00000002u) != 0; } -inline void MediaResponse::set_has_error() { +inline void MediaResponse::set_has_prepare_result() { _has_bits_[0] |= 0x00000002u; } -inline void MediaResponse::clear_has_error() { +inline void MediaResponse::clear_has_prepare_result() { _has_bits_[0] &= ~0x00000002u; } -inline void MediaResponse::clear_error() { - if (error_ != NULL) error_->::Remote::Error::Clear(); - clear_has_error(); +inline void MediaResponse::clear_prepare_result() { + if (prepare_result_ != NULL) prepare_result_->::Remote::MediaResponse_PrepareResult::Clear(); + clear_has_prepare_result(); } -inline const ::Remote::Error& MediaResponse::error() const { - return error_ != NULL ? *error_ : *default_instance_->error_; +inline const ::Remote::MediaResponse_PrepareResult& MediaResponse::prepare_result() const { + return prepare_result_ != NULL ? *prepare_result_ : *default_instance_->prepare_result_; } -inline ::Remote::Error* MediaResponse::mutable_error() { - set_has_error(); - if (error_ == NULL) error_ = new ::Remote::Error; - return error_; +inline ::Remote::MediaResponse_PrepareResult* MediaResponse::mutable_prepare_result() { + set_has_prepare_result(); + if (prepare_result_ == NULL) prepare_result_ = new ::Remote::MediaResponse_PrepareResult; + return prepare_result_; } -inline ::Remote::Error* MediaResponse::release_error() { - clear_has_error(); - ::Remote::Error* temp = error_; - error_ = NULL; +inline ::Remote::MediaResponse_PrepareResult* MediaResponse::release_prepare_result() { + clear_has_prepare_result(); + ::Remote::MediaResponse_PrepareResult* temp = prepare_result_; + prepare_result_ = NULL; return temp; } -inline void MediaResponse::set_allocated_error(::Remote::Error* error) { - delete error_; - error_ = error; - if (error) { - set_has_error(); +inline void MediaResponse::set_allocated_prepare_result(::Remote::MediaResponse_PrepareResult* prepare_result) { + delete prepare_result_; + prepare_result_ = prepare_result; + if (prepare_result) { + set_has_prepare_result(); } else { - clear_has_error(); + clear_has_prepare_result(); } } -// optional .Remote.MediaResponse.Part part = 3; -inline bool MediaResponse::has_part() const { +// optional .Remote.MediaResponse.PartResult part_result = 3; +inline bool MediaResponse::has_part_result() const { return (_has_bits_[0] & 0x00000004u) != 0; } -inline void MediaResponse::set_has_part() { +inline void MediaResponse::set_has_part_result() { _has_bits_[0] |= 0x00000004u; } -inline void MediaResponse::clear_has_part() { +inline void MediaResponse::clear_has_part_result() { _has_bits_[0] &= ~0x00000004u; } -inline void MediaResponse::clear_part() { - if (part_ != NULL) part_->::Remote::MediaResponse_Part::Clear(); - clear_has_part(); +inline void MediaResponse::clear_part_result() { + if (part_result_ != NULL) part_result_->::Remote::MediaResponse_PartResult::Clear(); + clear_has_part_result(); } -inline const ::Remote::MediaResponse_Part& MediaResponse::part() const { - return part_ != NULL ? *part_ : *default_instance_->part_; +inline const ::Remote::MediaResponse_PartResult& MediaResponse::part_result() const { + return part_result_ != NULL ? *part_result_ : *default_instance_->part_result_; } -inline ::Remote::MediaResponse_Part* MediaResponse::mutable_part() { - set_has_part(); - if (part_ == NULL) part_ = new ::Remote::MediaResponse_Part; - return part_; +inline ::Remote::MediaResponse_PartResult* MediaResponse::mutable_part_result() { + set_has_part_result(); + if (part_result_ == NULL) part_result_ = new ::Remote::MediaResponse_PartResult; + return part_result_; } -inline ::Remote::MediaResponse_Part* MediaResponse::release_part() { - clear_has_part(); - ::Remote::MediaResponse_Part* temp = part_; - part_ = NULL; +inline ::Remote::MediaResponse_PartResult* MediaResponse::release_part_result() { + clear_has_part_result(); + ::Remote::MediaResponse_PartResult* temp = part_result_; + part_result_ = NULL; return temp; } -inline void MediaResponse::set_allocated_part(::Remote::MediaResponse_Part* part) { - delete part_; - part_ = part; - if (part) { - set_has_part(); +inline void MediaResponse::set_allocated_part_result(::Remote::MediaResponse_PartResult* part_result) { + delete part_result_; + part_result_ = part_result; + if (part_result) { + set_has_part_result(); } else { - clear_has_part(); + clear_has_part_result(); + } +} + +// optional .Remote.MediaResponse.TerminateResult terminate_result = 4; +inline bool MediaResponse::has_terminate_result() const { + return (_has_bits_[0] & 0x00000008u) != 0; +} +inline void MediaResponse::set_has_terminate_result() { + _has_bits_[0] |= 0x00000008u; +} +inline void MediaResponse::clear_has_terminate_result() { + _has_bits_[0] &= ~0x00000008u; +} +inline void MediaResponse::clear_terminate_result() { + if (terminate_result_ != NULL) terminate_result_->::Remote::MediaResponse_TerminateResult::Clear(); + clear_has_terminate_result(); +} +inline const ::Remote::MediaResponse_TerminateResult& MediaResponse::terminate_result() const { + return terminate_result_ != NULL ? *terminate_result_ : *default_instance_->terminate_result_; +} +inline ::Remote::MediaResponse_TerminateResult* MediaResponse::mutable_terminate_result() { + set_has_terminate_result(); + if (terminate_result_ == NULL) terminate_result_ = new ::Remote::MediaResponse_TerminateResult; + return terminate_result_; +} +inline ::Remote::MediaResponse_TerminateResult* MediaResponse::release_terminate_result() { + clear_has_terminate_result(); + ::Remote::MediaResponse_TerminateResult* temp = terminate_result_; + terminate_result_ = NULL; + return temp; +} +inline void MediaResponse::set_allocated_terminate_result(::Remote::MediaResponse_TerminateResult* terminate_result) { + delete terminate_result_; + terminate_result_ = terminate_result; + if (terminate_result) { + set_has_terminate_result(); + } else { + clear_has_terminate_result(); } } @@ -1792,6 +2269,22 @@ inline void MediaResponse::set_allocated_part(::Remote::MediaResponse_Part* part namespace google { namespace protobuf { +template <> +inline const EnumDescriptor* GetEnumDescriptor< ::Remote::MediaRequest_Prepare_AudioCodecType>() { + return ::Remote::MediaRequest_Prepare_AudioCodecType_descriptor(); +} +template <> +inline const EnumDescriptor* GetEnumDescriptor< ::Remote::MediaRequest_Prepare_AudioBitrate>() { + return ::Remote::MediaRequest_Prepare_AudioBitrate_descriptor(); +} +template <> +inline const EnumDescriptor* GetEnumDescriptor< ::Remote::MediaRequest_Prepare_VideoCodecType>() { + return ::Remote::MediaRequest_Prepare_VideoCodecType_descriptor(); +} +template <> +inline const EnumDescriptor* GetEnumDescriptor< ::Remote::MediaRequest_Prepare_VideoBitrate>() { + return ::Remote::MediaRequest_Prepare_VideoBitrate_descriptor(); +} template <> inline const EnumDescriptor* GetEnumDescriptor< ::Remote::MediaRequest_Prepare_Type>() { return ::Remote::MediaRequest_Prepare_Type_descriptor(); @@ -1804,14 +2297,6 @@ template <> inline const EnumDescriptor* GetEnumDescriptor< ::Remote::MediaResponse_Type>() { return ::Remote::MediaResponse_Type_descriptor(); } -template <> -inline const EnumDescriptor* GetEnumDescriptor< ::Remote::AudioCodecType>() { - return ::Remote::AudioCodecType_descriptor(); -} -template <> -inline const EnumDescriptor* GetEnumDescriptor< ::Remote::VideoCodecType>() { - return ::Remote::VideoCodecType_descriptor(); -} } // namespace google } // namespace protobuf diff --git a/remote/proto/media.proto b/remote/proto/media.proto index b020b9d7..acb5d787 100644 --- a/remote/proto/media.proto +++ b/remote/proto/media.proto @@ -2,15 +2,6 @@ import "common.proto"; package Remote; -enum AudioCodecType -{ - CodecTypeOGA = 1; -} - -enum VideoCodecType -{ - CodecTypeOGV = 1; -} message MediaRequest @@ -19,11 +10,32 @@ message MediaRequest message Prepare { + enum AudioCodecType + { + AudioCodecTypeOGA = 1; + } + enum AudioBitrate { + AudioBitrate_32_kbps = 1; + AudioBitrate_64_kbps = 2; + AudioBitrate_96_kbps = 3; + AudioBitrate_128_kbps = 4; + AudioBitrate_192_kbps = 5; + AudioBitrate_256_kbps = 6; + } + + enum VideoCodecType + { + VideoCodecTypeOGV = 1; + } + enum VideoBitrate { + VideoBitrate_512_kbps = 1; + } + message Audio { required int64 track_id = 1; // Id if the media - optional AudioCodecType codec_type = 2; - optional uint32 bitrate = 3; + required AudioCodecType codec_type = 2; + required AudioBitrate bitrate = 3; optional uint32 stream_idx = 4; optional uint32 offset_secs = 5; } @@ -31,12 +43,13 @@ message MediaRequest message Video { required int64 video_id = 1; // Id if the media - optional VideoCodecType codec_type = 2; - optional uint32 bitrate = 3; - optional uint32 offset_secs = 4; - optional uint32 audio_stream_idx = 5; - optional uint32 video_stream_idx = 6; - optional uint32 subtitle_stream_idx = 7; + required VideoCodecType codec_type = 2; + required AudioBitrate audio_bitrate = 3; + required VideoBitrate video_bitrate = 4; + optional uint32 offset_secs = 5; + optional uint32 audio_stream_idx = 6; + optional uint32 video_stream_idx = 7; + optional uint32 subtitle_stream_idx = 8; } enum Type { @@ -52,12 +65,13 @@ message MediaRequest message GetPart { - required uint32 requested_data_size = 1; // Amount of data requested. May receive more or less. May receive 0 byte if complete + required uint32 handle = 1; // handle that uniquely identify the media. Get using the Prepare request + required uint32 requested_data_size = 2; // Amount of data requested. May receive more or less. May receive 0 byte if complete } message Terminate { - + required uint32 handle = 1; } enum Type @@ -77,20 +91,32 @@ message MediaRequest message MediaResponse { - message Part + + message PrepareResult + { + optional uint32 handle = 1; // handle iif prepare request was ok + } + + message PartResult + { + optional bytes data = 2; // 0 bytes when the media is over, nothing when the request is ill formed + } + + message TerminateResult { - required bytes data = 1; } enum Type { - TypeError = 1; - TypePart = 2; + TypePrepareResult = 1; + TypePartResult = 2; + TypeTerminateResult = 3; } required Type type = 1; - optional Error error = 2; - optional Part part = 3; + optional PrepareResult prepare_result = 2; + optional PartResult part_result = 3; + optional TerminateResult terminate_result = 4; } diff --git a/remote/server/MediaRequestHandler.cpp b/remote/server/MediaRequestHandler.cpp index d76c12ac..b4278dbc 100644 --- a/remote/server/MediaRequestHandler.cpp +++ b/remote/server/MediaRequestHandler.cpp @@ -23,12 +23,14 @@ MediaRequestHandler::process(const MediaRequest& request, MediaResponse& respons if (request.has_prepare()) { if (request.prepare().has_audio()) - res = processAudioPrepare(request.prepare().audio(), response); + res = processAudioPrepare(request.prepare().audio(), *response.mutable_prepare_result()); else if (request.prepare().has_video()) LMS_LOG(MOD_REMOTE, SEV_ERROR) << "Video prepare not supported!"; else LMS_LOG(MOD_REMOTE, SEV_ERROR) << "Bad MediaRequest::TypeMediaPrepare!"; + if (res) + response.set_type(MediaResponse::TypePrepareResult); } else LMS_LOG(MOD_REMOTE, SEV_ERROR) << "Bad MediaRequest::TypeMediaPrepare!"; @@ -36,16 +38,26 @@ MediaRequestHandler::process(const MediaRequest& request, MediaResponse& respons case MediaRequest::TypeMediaGetPart: if (request.has_get_part()) - res = processGetPart(request.get_part(), response); + { + res = processGetPart(request.get_part(), *response.mutable_part_result()); + if (res) + response.set_type(MediaResponse::TypePartResult); + } else LMS_LOG(MOD_REMOTE, SEV_ERROR) << "Bad MediaRequest::TypeMediaGet!"; + break; case MediaRequest::TypeMediaTerminate: if (request.has_terminate()) - res = processTerminate(request.terminate(), response); + { + res = processTerminate(request.terminate(), *response.mutable_terminate_result()); + if (res) + response.set_type(MediaResponse::TypePartResult); + } else LMS_LOG(MOD_REMOTE, SEV_ERROR) << "Bad MediaRequest::TypeMediaTerminate!"; + break; default: @@ -56,117 +68,128 @@ MediaRequestHandler::process(const MediaRequest& request, MediaResponse& respons } bool -MediaRequestHandler::processAudioPrepare(const MediaRequest::Prepare::Audio& request, MediaResponse& response) +MediaRequestHandler::processAudioPrepare(const MediaRequest::Prepare::Audio& request, MediaResponse::PrepareResult& response) { - // TODO, get user default values - Transcode::Format::Encoding format = Transcode::Format::OGA; - std::size_t bitrate = 128000; + std::size_t bitrate; + Transcode::Format::Encoding format; - if (request.has_codec_type()) + switch( request.codec_type()) { - switch( request.codec_type()) - { - case AudioCodecType::CodecTypeOGA: - format = Transcode::Format::OGA; - break; - default: - LMS_LOG(MOD_REMOTE, SEV_ERROR) << "Unhandled codec type = " << request.codec_type(); - return false; - } - } - if (request.has_bitrate()) - bitrate = request.bitrate(); - - if (_transcoder) - { - response.mutable_error()->set_error(true); - response.mutable_error()->set_message("Transcode already in progress"); - response.set_type(MediaResponse::TypeError); - return true; + case MediaRequest::Prepare::AudioCodecTypeOGA: format = Transcode::Format::OGA; break; + default: + LMS_LOG(MOD_REMOTE, SEV_ERROR) << "Unhandled codec type = " << request.codec_type(); + return false; } - Wt::Dbo::Transaction transaction( _db.getSession()); - - Database::Track::pointer track = Database::Track::getById( _db.getSession(), request.track_id() ); - - if (!track) + switch( request.bitrate() ) { - response.mutable_error()->set_error(true); - response.mutable_error()->set_message("Cannot find requested track!"); - response.set_type(MediaResponse::TypeError); + case MediaRequest::Prepare::AudioBitrate_32_kbps: bitrate = 32000; break; + case MediaRequest::Prepare::AudioBitrate_64_kbps: bitrate = 64000; break; + case MediaRequest::Prepare::AudioBitrate_96_kbps: bitrate = 96000; break; + case MediaRequest::Prepare::AudioBitrate_128_kbps: bitrate = 128000; break; + case MediaRequest::Prepare::AudioBitrate_192_kbps: bitrate = 192000; break; + case MediaRequest::Prepare::AudioBitrate_256_kbps: bitrate = 256000; break; + default: + LMS_LOG(MOD_REMOTE, SEV_ERROR) << "Unhandled bitrate type = " << request.bitrate(); + return false; + } + + // TODO use user's bitrate limits! + // TODO limit transcoder number by user? + + if (_transcoders.size() + 1 > _maxTranscoders) + { + LMS_LOG(MOD_REMOTE, SEV_ERROR) << "Transcoder limit reached!" << std::endl; + // Just answer an empty response, dont delete existing trasncode jobs return true; } try { + Wt::Dbo::Transaction transaction( _db.getSession()); + + Database::Track::pointer track = Database::Track::getById( _db.getSession(), request.track_id() ); + if (!track) + { + LMS_LOG(MOD_REMOTE, SEV_ERROR) << "Requested track does not exist" << std::endl; + // Track does no longer exist, just answer an empty response + return true; + } + Transcode::InputMediaFile inputFile(track->getPath()); Transcode::Parameters parameters(inputFile, Transcode::Format::get( format )); parameters.setBitrate( Transcode::Stream::Audio, bitrate); - _transcoder = std::make_shared( parameters ); + std::shared_ptr transcoder = std::make_shared( parameters ); - response.mutable_error()->set_error(false); - response.mutable_error()->set_message(""); - response.set_type(MediaResponse::TypeError); + // now get a unique id (relative to this connection!) + uint32_t handle = _curHandle++; + assert(_transcoders.find(handle) == _transcoders.end()); + + _transcoders[handle] = transcoder; + + response.set_handle(handle); + + LMS_LOG(MOD_REMOTE, SEV_DEBUG) << "Set up new transcode, handle = " << handle; } catch(std::exception& e) { LMS_LOG(MOD_REMOTE, SEV_ERROR) << "Caught exception: " << e.what(); - response.mutable_error()->set_error(true); - response.mutable_error()->set_message("exception: " + std::string(e.what())); - response.set_type(MediaResponse::TypeError); + return false; } return true; } bool -MediaRequestHandler::processGetPart(const MediaRequest::GetPart& request, MediaResponse& response) +MediaRequestHandler::processGetPart(const MediaRequest::GetPart& request, MediaResponse::PartResult& response) { - std::size_t dataSize = request.requested_data_size(); + std::size_t dataSize = request.requested_data_size(); if (dataSize > _maxPartSize) dataSize = _maxPartSize; - if (!_transcoder) + if (_transcoders.find(request.handle()) == _transcoders.end()) { - response.mutable_error()->set_error(true); - response.mutable_error()->set_message("No transcoder set!"); - response.set_type(MediaResponse::TypeError); + LMS_LOG(MOD_REMOTE, SEV_ERROR) << "No transcoder found for handle " << request.handle(); return true; } - while (!_transcoder->isComplete() && _transcoder->getOutputData().size() < dataSize) - _transcoder->process(); + std::shared_ptr transcoder = _transcoders[request.handle()]; - LMS_LOG(MOD_REMOTE, SEV_DEBUG) << "MediaRequestHandler::processGetPart, isComplete = " << std::boolalpha << _transcoder->isComplete() << ", size = " << _transcoder->getOutputData().size(); + while (!transcoder->isComplete() && transcoder->getOutputData().size() < dataSize) + transcoder->process(); + + LMS_LOG(MOD_REMOTE, SEV_DEBUG) << "MediaRequestHandler::processGetPart, handle = " << request.handle() << ", isComplete = " << std::boolalpha << transcoder->isComplete() << ", size = " << transcoder->getOutputData().size(); Transcode::AvConvTranscoder::data_type::iterator itEnd; - if (_transcoder->getOutputData().size() > dataSize) - itEnd = _transcoder->getOutputData().begin() + dataSize; + if (transcoder->getOutputData().size() > dataSize) + itEnd = transcoder->getOutputData().begin() + dataSize; else - itEnd = _transcoder->getOutputData().end(); + itEnd = transcoder->getOutputData().end(); - response.set_type(MediaResponse::TypePart); - std::copy(_transcoder->getOutputData().begin(), itEnd, std::back_inserter(*response.mutable_part()->mutable_data())); + std::copy(transcoder->getOutputData().begin(), itEnd, std::back_inserter(*response.mutable_data())); // Consume sent bytes - _transcoder->getOutputData().erase(_transcoder->getOutputData().begin(), itEnd); + transcoder->getOutputData().erase(transcoder->getOutputData().begin(), itEnd); return true; } bool -MediaRequestHandler::processTerminate(const MediaRequest::Terminate& /*request*/, MediaResponse& response) +MediaRequestHandler::processTerminate(const MediaRequest::Terminate& request, MediaResponse::TerminateResult& response) { - LMS_LOG(MOD_REMOTE, SEV_DEBUG) << "MediaRequestHandler: resetting transcoder"; - _transcoder.reset(); + LMS_LOG(MOD_REMOTE, SEV_DEBUG) << "MediaRequestHandler: resetting transcoder for handle " << request.handle(); - assert(!_transcoder); - - response.mutable_error()->set_error(false); - response.mutable_error()->set_message(""); - response.set_type(MediaResponse::TypeError); + if (_transcoders.find(request.handle()) == _transcoders.end()) + { + LMS_LOG(MOD_REMOTE, SEV_ERROR) << "No transcoder found for handle " << request.handle(); + return true; + } + else + { + _transcoders.erase(request.handle()); + } return true; } diff --git a/remote/server/MediaRequestHandler.hpp b/remote/server/MediaRequestHandler.hpp index df39c894..ee4b5e04 100644 --- a/remote/server/MediaRequestHandler.hpp +++ b/remote/server/MediaRequestHandler.hpp @@ -1,6 +1,7 @@ #ifndef REMOTE_MEDIA_REQUEST_HANDLER #define REMOTE_MEDIA_REQUEST_HANDLER +#include #include #include "messages/media.pb.h" @@ -20,17 +21,20 @@ class MediaRequestHandler private: - bool processAudioPrepare(const MediaRequest::Prepare::Audio& request, MediaResponse& response); - bool processGetPart(const MediaRequest::GetPart& request, MediaResponse& response); - bool processTerminate(const MediaRequest::Terminate& request, MediaResponse& response); + bool processAudioPrepare(const MediaRequest::Prepare::Audio& request, MediaResponse::PrepareResult& response); + bool processGetPart(const MediaRequest::GetPart& request, MediaResponse::PartResult& response); + bool processTerminate(const MediaRequest::Terminate& request, MediaResponse::TerminateResult& response); // bool processVideoPrepare(const AudioCollectionRequest::GetGenreList& request, AudioCollectionResponse::GenreList& response); - std::shared_ptr _transcoder; + std::map > _transcoders; Database::Handler& _db; + uint32_t _curHandle = 0; + static const std::size_t _maxPartSize = 65536 - 128; + static const std::size_t _maxTranscoders = 1; }; } // namespace Remote diff --git a/service/ServiceManager.cpp b/service/ServiceManager.cpp index a401720e..ebe8180c 100644 --- a/service/ServiceManager.cpp +++ b/service/ServiceManager.cpp @@ -33,6 +33,7 @@ ServiceManager::ServiceManager() ServiceManager::~ServiceManager() { + LMS_LOG(MOD_SERVICE, SEV_NOTICE) << "Stopping services..."; stopServices(); } @@ -92,6 +93,7 @@ ServiceManager::stopServices(void) void ServiceManager::restartServices(void) { + LMS_LOG(MOD_SERVICE, SEV_NOTICE) << "Restarting services..."; BOOST_FOREACH(Service::pointer service, _services) service->restart(); } @@ -106,19 +108,17 @@ ServiceManager::handleSignal(boost::system::error_code /*ec*/, int signo) case SIGINT: case SIGTERM: case SIGQUIT: - LMS_LOG(MOD_SERVICE, SEV_NOTICE) << "Stopping services..."; stopServices(); // Do not listen for signals, this will make the ioservice.run return break; case SIGHUP: - LMS_LOG(MOD_SERVICE, SEV_NOTICE) << "Restarting services..."; - restartServices(); + asyncWaitSignals(); break; default: - assert(0); + LMS_LOG(MOD_SERVICE, SEV_NOTICE) << "Unhandled signal " << signo; } } diff --git a/test/CheckDatabaseBasics.cpp b/test/CheckDatabaseBasics.cpp deleted file mode 100644 index f3d0e37a..00000000 --- a/test/CheckDatabaseBasics.cpp +++ /dev/null @@ -1,92 +0,0 @@ -#include -#include - -#include "database/DatabaseHandler.hpp" - -#include "database/FileTypes.hpp" -#include "database/MediaDirectory.hpp" - -int main(void) -{ - - try { - - boost::filesystem::remove("test2.db"); - - // Set up the long living database session - Database::Handler database("test2.db"); - - Wt::Dbo::Transaction transaction(database.getSession()); - - std::cout << "Creating objects..." << std::endl; - - assert( Database::Path::getRoots(database.getSession()).empty() ); - - Database::Path::pointer parentPath = database.getSession().add(new Database::Path("/PARENT") ); - - assert( Database::Path::getRoots(database.getSession()).size() == 1); - - for (std::size_t i = 0; i < 5; ++i) - { - std::ostringstream oss; oss << "/PARENT/toto" << i << ".mp4"; - Database::Path::pointer childPath = database.getSession().add(new Database::Path( oss.str()) ); - - { - std::ostringstream oss; oss << "/PARENT/toto" << i << "_dir"; - Database::Path::pointer childDirPath = database.getSession().add(new Database::Path( oss.str()) ); - for (std::size_t j = 0; j < 6; ++j) { - - std::ostringstream oss2; oss2 << "/PARENT/toto" << i << "_dir/" << j << ".mp4"; - Database::Path::pointer childPath2 = database.getSession().add(new Database::Path( oss2.str()) ); - - childDirPath.modify()->addChild( childPath2 ); - } - - childDirPath.modify()->addChild( childDirPath ); - } - - parentPath.modify()->addChild( childPath ); - - assert( childPath->getParent()); - } - - { - std::vector roots = Database::Path::getRoots(database.getSession()); - - std::cout << "There are now " << roots.size() << " roots!" << std::endl; - BOOST_FOREACH(Database::Path::pointer root, roots) - { - std::cout << "ROOT Path = " << root->getPath() << std::endl; - } - } - - assert( !parentPath->getParent() ); - - std::cout << "PRINT objects..." << std::endl; - - std::vector< Database::Path::pointer > pathes = parentPath->getChilds(); - BOOST_FOREACH(Database::Path::pointer path, pathes) - { - std::cout << "Found a child: " << path->getPath() << std::endl; - std::cout << "Parent's = " << path->getParent()->getPath() << std::endl; - } - - // Update last update - Database::MediaDirectorySettings::pointer settings = Database::MediaDirectorySettings::get(database.getSession()); - settings.modify()->setLastUpdate(boost::posix_time::second_clock::local_time()); - - std::cout << "last update = " << settings->getLastUpdated() << std::endl; - - // make some empty root dirs - - transaction.commit(); - - } - catch(std::exception& e) - { - std::cerr << "Caught exception " << e.what() << std::endl; - return EXIT_FAILURE; - } - - return EXIT_SUCCESS; -} diff --git a/test/Makefile.am b/test/Makefile.am index 127f9e72..96f91281 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1,7 +1,7 @@ -TESTS = database-integrity sql-query database-basics database-user remote +TESTS = database-integrity sql-query database-user remote -check_PROGRAMS = database-integrity sql-query database-basics database-user remote +check_PROGRAMS = database-integrity sql-query database-user remote remote_SOURCES = \ $(srcdir)/RemoteClientServer.cpp \ @@ -17,9 +17,9 @@ remote_SOURCES = \ $(top_srcdir)/database/Release.cpp \ $(top_srcdir)/database/Track.cpp \ $(top_srcdir)/database/DatabaseHandler.cpp \ + $(top_srcdir)/database/MediaDirectory.cpp \ $(top_srcdir)/database/SqlQuery.cpp \ $(top_srcdir)/database/User.cpp \ - $(top_srcdir)/database/Path.cpp \ $(top_srcdir)/database/Video.cpp remote_CXXFLAGS=-std=c++11 -Wall -Wextra -DBOOST_LOG_DYN_LINK -I$(top_srcdir) -I$(top_srcdir)/remote -I$(top_srcdir)/boost @@ -32,8 +32,8 @@ database_user_SOURCES = \ $(top_srcdir)/database/Release.cpp \ $(top_srcdir)/database/Track.cpp \ $(top_srcdir)/database/DatabaseHandler.cpp \ + $(top_srcdir)/database/MediaDirectory.cpp \ $(top_srcdir)/database/SqlQuery.cpp \ - $(top_srcdir)/database/Path.cpp \ $(top_srcdir)/database/User.cpp \ $(top_srcdir)/database/Video.cpp @@ -48,30 +48,13 @@ database_integrity_SOURCES = \ $(top_srcdir)/database/Release.cpp \ $(top_srcdir)/database/Track.cpp \ $(top_srcdir)/database/DatabaseHandler.cpp \ + $(top_srcdir)/database/MediaDirectory.cpp \ $(top_srcdir)/database/SqlQuery.cpp \ - $(top_srcdir)/database/Path.cpp \ $(top_srcdir)/database/User.cpp \ $(top_srcdir)/database/Video.cpp database_integrity_CXXFLAGS=-std=c++11 -Wall -Wextra -DBOOST_LOG_DYN_LINK -I$(top_srcdir) -database_basics_SOURCES = \ - $(srcdir)/CheckDatabaseBasics.cpp \ - $(top_srcdir)/logger/Logger.cpp \ - $(top_srcdir)/database/Artist.cpp \ - $(top_srcdir)/database/Genre.cpp \ - $(top_srcdir)/database/Release.cpp \ - $(top_srcdir)/database/Track.cpp \ - $(top_srcdir)/database/DatabaseHandler.cpp \ - $(top_srcdir)/database/MediaDirectory.cpp \ - $(top_srcdir)/database/SqlQuery.cpp \ - $(top_srcdir)/database/Path.cpp \ - $(top_srcdir)/database/User.cpp \ - $(top_srcdir)/database/Video.cpp - -database_basics_CXXFLAGS=-std=c++11 -Wall -Wextra -DBOOST_LOG_DYN_LINK -I$(top_srcdir) - - sql_query_SOURCES = \ $(srcdir)/CheckSqlQuery.cpp \ $(top_srcdir)/database/SqlQuery.cpp diff --git a/test/RemoteClientServer.cpp b/test/RemoteClientServer.cpp index 3c7e4369..3e628386 100644 --- a/test/RemoteClientServer.cpp +++ b/test/RemoteClientServer.cpp @@ -63,6 +63,8 @@ struct TrackInfo std::string name; boost::posix_time::time_duration duration; + + TrackInfo(): id(0), release_id(0), artist_id(0), disc_number(0), track_number(0) {} }; std::ostream& operator<<(std::ostream& os, const TrackInfo& info) @@ -320,6 +322,12 @@ class TestClient track.id = response.audio_collection_response().track_list().tracks(i).id(); track.name = response.audio_collection_response().track_list().tracks(i).name(); track.duration = boost::posix_time::seconds(response.audio_collection_response().track_list().tracks(i).duration_secs()); + if (response.audio_collection_response().track_list().tracks(i).has_track_number()) + track.track_number = response.audio_collection_response().track_list().tracks(i).track_number(); + + if (response.audio_collection_response().track_list().tracks(i).has_disc_number()) + track.disc_number = response.audio_collection_response().track_list().tracks(i).disc_number(); + tracks.push_back( track ); nbAdded++; @@ -333,13 +341,13 @@ class TestClient { // Prepare - mediaAudioPrepare( audioId ); + uint32_t handle = mediaAudioPrepare( audioId ); // Get while available - mediaGet( data ); + mediaGet( handle, data ); // Terminate - mediaTerminate(); + mediaTerminate( handle ); } void getCoverTrack(std::vector& coverArt, uint64_t trackId) @@ -487,7 +495,7 @@ class TestClient return true; // preverified; } - void mediaAudioPrepare(uint64_t audioId) + uint32_t mediaAudioPrepare(uint64_t audioId) { // Send request @@ -500,6 +508,8 @@ class TestClient // Set fields request.mutable_media_request()->mutable_prepare()->mutable_audio()->set_track_id( audioId ); + request.mutable_media_request()->mutable_prepare()->mutable_audio()->set_codec_type( Remote::MediaRequest::Prepare::AudioCodecTypeOGA ); + request.mutable_media_request()->mutable_prepare()->mutable_audio()->set_bitrate( Remote::MediaRequest::Prepare::AudioBitrate_64_kbps ); std::cout << "Sending prepare request" << std::endl; sendMsg(request); @@ -515,22 +525,23 @@ class TestClient if (!response.has_media_response()) throw std::runtime_error("Preapre: not an media reponse!"); - if (!response.media_response().has_error()) - throw std::runtime_error("Prepare: not an error msg!"); + if (!response.media_response().has_prepare_result()) + throw std::runtime_error("Prepare: not an prepare result msg!"); - if (response.media_response().error().error()) - throw std::runtime_error("Prepare failed: '" + response.media_response().error().message() + "'"); + if (!response.media_response().prepare_result().has_handle()) + throw std::runtime_error("Prepare: cannot get handle"); + return response.media_response().prepare_result().handle(); } - void mediaGet(std::vector& data) + void mediaGet(uint32_t handle, std::vector& data) { - while (mediaGetPart(data) > 0) + while (mediaGetPart(handle, data) > 0) ; } - std::size_t mediaGetPart(std::vector& data) + std::size_t mediaGetPart(uint32_t handle, std::vector& data) { // Send request Remote::ClientMessage request; @@ -538,6 +549,7 @@ class TestClient request.set_type( Remote::ClientMessage::MediaRequest); request.mutable_media_request()->set_type( Remote::MediaRequest::TypeMediaGetPart); + request.mutable_media_request()->mutable_get_part()->set_handle(handle); request.mutable_media_request()->mutable_get_part()->set_requested_data_size(65536); std::cout << "Sending GetPart request" << std::endl; @@ -554,40 +566,18 @@ class TestClient throw std::runtime_error("not an media response"); // Process message - switch( response.media_response().type()) - { - case Remote::MediaResponse::TypeError: - { - std::string msg; - if (response.media_response().has_error()) - { - if (response.media_response().error().has_message()) - throw std::runtime_error("Error spotted: '" + response.media_response().error().message()+ "'"); - else - throw std::runtime_error("Error spotted, no msg"); - } - else - throw std::runtime_error("Error spotted but no error message"); - } - break; + if (response.media_response().type() != Remote::MediaResponse::TypePartResult) + throw std::runtime_error("GetPart: not a Part response!"); - case Remote::MediaResponse::TypePart: - if (!response.media_response().has_part()) - throw std::runtime_error("not an media part"); + if (!response.media_response().has_part_result()) + throw std::runtime_error("GetPart: does not have a Part result!"); - std::copy(response.media_response().part().data().begin(), response.media_response().part().data().end(), std::back_inserter(data)); + std::copy(response.media_response().part_result().data().begin(), response.media_response().part_result().data().end(), std::back_inserter(data)); - return response.media_response().part().data().size(); - break; - - default: - throw std::runtime_error("Unhandled response.media_response().type()!"); - } - - return 0; + return response.media_response().part_result().data().size(); } - void mediaTerminate(void) + void mediaTerminate( uint32_t handle ) { // Send request Remote::ClientMessage request; @@ -595,8 +585,7 @@ class TestClient request.set_type( Remote::ClientMessage::MediaRequest); request.mutable_media_request()->set_type( Remote::MediaRequest::TypeMediaTerminate); - request.mutable_media_request()->mutable_terminate(); - + request.mutable_media_request()->mutable_terminate()->set_handle(handle); sendMsg(request); @@ -609,11 +598,8 @@ class TestClient if (!response.has_media_response()) throw std::runtime_error("Terminate: not an media response"); - if (!response.media_response().has_error()) - throw std::runtime_error("Terminate: not an error msg!"); - - if (response.media_response().error().error()) - throw std::runtime_error("Terminate failed: '" + response.media_response().error().message() + "'"); + if (!response.media_response().has_terminate_result()) + throw std::runtime_error("Terminate: not an terminate msg!"); } @@ -725,7 +711,7 @@ int main() TestClient client( boost::asio::ip::tcp::endpoint( boost::asio::ip::address_v4::loopback(), 5080)); // Use a dumb account in order to test the login - if (!client.login("toto", "Tot&3131")) + if (!client.login("admin", "admin")) throw std::runtime_error("login failed!"); // **** REVISION *** @@ -809,19 +795,13 @@ int main() } // ****** Transcode test ******** + const std::vector mediaIds = {14000, 14001}; + BOOST_FOREACH(uint64_t mediaId, mediaIds) { std::vector data; - client.getMediaAudio(30000, data); - + client.getMediaAudio(mediaId, data); std::cout << "Media size = " << data.size() << std::endl; } -/* { - std::vector data; - client.getMediaAudio(100, data); - - std::cout << "Media size = " << data.size() << std::endl; - }*/ - std::cout << "End of tests!" << std::endl; }