// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: nageru_midi_mapping.proto
// Protobuf C++ Version: 7.36.0

#include "nageru_midi_mapping.pb.h"

#include <algorithm>
#include <type_traits>
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/generated_message_tctable_impl.h"
#include "google/protobuf/internal_visibility.h"
#include "google/protobuf/extension_set.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/wire_format_lite.h"
#include "google/protobuf/descriptor.h"
#include "google/protobuf/generated_message_reflection.h"
#include "google/protobuf/reflection_ops.h"
#include "google/protobuf/wire_format.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"
PROTOBUF_PRAGMA_INIT_SEG
namespace _pb = ::google::protobuf;
namespace _pbi = ::google::protobuf::internal;
namespace _fl = ::google::protobuf::internal::field_layout;
#ifdef PROTOBUF_MESSAGE_GLOBALS
namespace {
PROTOBUF_CONSTINIT ::google::protobuf::internal::ReflectionData
    file_reflection_data[] = {
        // ::MIDIMappingBusProto
        {&::_pbi::kDescriptorMethods, &::descriptor_table_nageru_5fmidi_5fmapping_2eproto, /* tracker*/ nullptr,},
        // ::MIDIMappingProto
        {&::_pbi::kDescriptorMethods, &::descriptor_table_nageru_5fmidi_5fmapping_2eproto, /* tracker*/ nullptr,},
};
}  // namespace
#endif
class MIDIMappingBusProto::_Internal {
 public:
  using HasBits = decltype(::std::declval<MIDIMappingBusProto>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_._has_bits_);
};

constexpr MIDIMappingBusProto::ParseTableT_ MIDIMappingBusProto::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_._has_bits_),
      0, // no _extensions_
      43, 248,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      1,  // skipmap
      offsetof(ParseTableT_, field_entries),
      42,  // num_field_entries
      42,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::MpUnknownFields,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::MIDIMappingBusProto>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      // optional .MIDIControllerProto treble = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.treble_)}},
      // optional .MIDIControllerProto mid = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 1, 1,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.mid_)}},
      // optional .MIDIControllerProto bass = 4;
      {::_pbi::TcParser::FastMtS1,
       {34, 2, 2,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.bass_)}},
      // optional .MIDIControllerProto gain = 5;
      {::_pbi::TcParser::FastMtS1,
       {42, 3, 3,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.gain_)}},
      // optional .MIDIControllerProto compressor_threshold = 6;
      {::_pbi::TcParser::FastMtS1,
       {50, 4, 4,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.compressor_threshold_)}},
      // optional .MIDIControllerProto fader = 7;
      {::_pbi::TcParser::FastMtS1,
       {58, 5, 5,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.fader_)}},
      // optional .MIDIButtonProto toggle_mute = 8;
      {::_pbi::TcParser::FastMtS1,
       {66, 6, 6,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.toggle_mute_)}},
      // optional .MIDIButtonProto toggle_locut = 9;
      {::_pbi::TcParser::FastMtS1,
       {74, 7, 7,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.toggle_locut_)}},
      // optional .MIDIButtonProto toggle_auto_gain_staging = 10;
      {::_pbi::TcParser::FastMtS1,
       {82, 8, 8,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.toggle_auto_gain_staging_)}},
      // optional .MIDIButtonProto toggle_compressor = 11;
      {::_pbi::TcParser::FastMtS1,
       {90, 9, 9,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.toggle_compressor_)}},
      // optional .MIDIButtonProto clear_peak = 12;
      {::_pbi::TcParser::FastMtS1,
       {98, 10, 10,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.clear_peak_)}},
      // optional .MIDIButtonProto prev_bank = 13;
      {::_pbi::TcParser::FastMtS1,
       {106, 11, 11,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.prev_bank_)}},
      // optional .MIDIButtonProto next_bank = 14;
      {::_pbi::TcParser::FastMtS1,
       {114, 12, 12,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.next_bank_)}},
      // optional .MIDIButtonProto select_bank_1 = 15;
      {::_pbi::TcParser::FastMtS1,
       {122, 13, 13,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.select_bank_1_)}},
      // optional .MIDIButtonProto select_bank_2 = 16;
      {::_pbi::TcParser::FastMtS2,
       {386, 14, 14,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.select_bank_2_)}},
      // optional .MIDIButtonProto select_bank_3 = 17;
      {::_pbi::TcParser::FastMtS2,
       {394, 15, 15,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.select_bank_3_)}},
      // optional .MIDIButtonProto select_bank_4 = 18;
      {::_pbi::TcParser::FastMtS2,
       {402, 16, 16,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.select_bank_4_)}},
      // optional .MIDIButtonProto select_bank_5 = 19;
      {::_pbi::TcParser::FastMtS2,
       {410, 17, 17,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.select_bank_5_)}},
      // optional .MIDIButtonProto toggle_limiter = 20;
      {::_pbi::TcParser::FastMtS2,
       {418, 18, 18,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.toggle_limiter_)}},
      // optional .MIDIButtonProto toggle_auto_makeup_gain = 21;
      {::_pbi::TcParser::FastMtS2,
       {426, 19, 19,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.toggle_auto_makeup_gain_)}},
      // optional .MIDIControllerProto locut = 22;
      {::_pbi::TcParser::FastMtS2,
       {434, 20, 20,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.locut_)}},
      // optional .MIDIControllerProto limiter_threshold = 23;
      {::_pbi::TcParser::FastMtS2,
       {442, 21, 21,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.limiter_threshold_)}},
      // optional .MIDIControllerProto makeup_gain = 24;
      {::_pbi::TcParser::FastMtS2,
       {450, 22, 22,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.makeup_gain_)}},
      // optional .MIDILightProto is_muted = 25;
      {::_pbi::TcParser::FastMtS2,
       {458, 23, 23,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.is_muted_)}},
      // optional .MIDILightProto locut_is_on = 26;
      {::_pbi::TcParser::FastMtS2,
       {466, 24, 24,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.locut_is_on_)}},
      // optional .MIDILightProto auto_gain_staging_is_on = 27;
      {::_pbi::TcParser::FastMtS2,
       {474, 25, 25,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.auto_gain_staging_is_on_)}},
      // optional .MIDILightProto compressor_is_on = 28;
      {::_pbi::TcParser::FastMtS2,
       {482, 26, 26,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.compressor_is_on_)}},
      // optional .MIDILightProto has_peaked = 29;
      {::_pbi::TcParser::FastMtS2,
       {490, 27, 27,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.has_peaked_)}},
      // optional .MIDILightProto bank_1_is_selected = 30;
      {::_pbi::TcParser::FastMtS2,
       {498, 28, 28,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.bank_1_is_selected_)}},
      // optional .MIDILightProto bank_2_is_selected = 31;
      {::_pbi::TcParser::FastMtS2,
       {506, 29, 29,
        PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.bank_2_is_selected_)}},
    }}, {{
      33, 0, 1,
      63488, 31,
      65535, 65535
    }}, {{
      // optional .MIDIControllerProto treble = 2;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.treble_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIControllerProto mid = 3;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.mid_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIControllerProto bass = 4;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.bass_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIControllerProto gain = 5;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.gain_), _Internal::kHasBitsOffset + 3, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIControllerProto compressor_threshold = 6;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.compressor_threshold_), _Internal::kHasBitsOffset + 4, 4, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIControllerProto fader = 7;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.fader_), _Internal::kHasBitsOffset + 5, 5, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIButtonProto toggle_mute = 8;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.toggle_mute_), _Internal::kHasBitsOffset + 6, 6, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIButtonProto toggle_locut = 9;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.toggle_locut_), _Internal::kHasBitsOffset + 7, 7, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIButtonProto toggle_auto_gain_staging = 10;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.toggle_auto_gain_staging_), _Internal::kHasBitsOffset + 8, 8, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIButtonProto toggle_compressor = 11;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.toggle_compressor_), _Internal::kHasBitsOffset + 9, 9, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIButtonProto clear_peak = 12;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.clear_peak_), _Internal::kHasBitsOffset + 10, 10, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIButtonProto prev_bank = 13;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.prev_bank_), _Internal::kHasBitsOffset + 11, 11, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIButtonProto next_bank = 14;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.next_bank_), _Internal::kHasBitsOffset + 12, 12, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIButtonProto select_bank_1 = 15;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.select_bank_1_), _Internal::kHasBitsOffset + 13, 13, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIButtonProto select_bank_2 = 16;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.select_bank_2_), _Internal::kHasBitsOffset + 14, 14, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIButtonProto select_bank_3 = 17;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.select_bank_3_), _Internal::kHasBitsOffset + 15, 15, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIButtonProto select_bank_4 = 18;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.select_bank_4_), _Internal::kHasBitsOffset + 16, 16, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIButtonProto select_bank_5 = 19;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.select_bank_5_), _Internal::kHasBitsOffset + 17, 17, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIButtonProto toggle_limiter = 20;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.toggle_limiter_), _Internal::kHasBitsOffset + 18, 18, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIButtonProto toggle_auto_makeup_gain = 21;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.toggle_auto_makeup_gain_), _Internal::kHasBitsOffset + 19, 19, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIControllerProto locut = 22;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.locut_), _Internal::kHasBitsOffset + 20, 20, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIControllerProto limiter_threshold = 23;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.limiter_threshold_), _Internal::kHasBitsOffset + 21, 21, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIControllerProto makeup_gain = 24;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.makeup_gain_), _Internal::kHasBitsOffset + 22, 22, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDILightProto is_muted = 25;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.is_muted_), _Internal::kHasBitsOffset + 23, 23, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDILightProto locut_is_on = 26;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.locut_is_on_), _Internal::kHasBitsOffset + 24, 24, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDILightProto auto_gain_staging_is_on = 27;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.auto_gain_staging_is_on_), _Internal::kHasBitsOffset + 25, 25, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDILightProto compressor_is_on = 28;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.compressor_is_on_), _Internal::kHasBitsOffset + 26, 26, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDILightProto has_peaked = 29;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.has_peaked_), _Internal::kHasBitsOffset + 27, 27, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDILightProto bank_1_is_selected = 30;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.bank_1_is_selected_), _Internal::kHasBitsOffset + 28, 28, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDILightProto bank_2_is_selected = 31;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.bank_2_is_selected_), _Internal::kHasBitsOffset + 29, 29, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDILightProto bank_3_is_selected = 32;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.bank_3_is_selected_), _Internal::kHasBitsOffset + 30, 30, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDILightProto bank_4_is_selected = 33;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.bank_4_is_selected_), _Internal::kHasBitsOffset + 31, 31, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDILightProto bank_5_is_selected = 34;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.bank_5_is_selected_), _Internal::kHasBitsOffset + 32, 32, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDILightProto limiter_is_on = 35;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.limiter_is_on_), _Internal::kHasBitsOffset + 33, 33, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDILightProto auto_makeup_gain_is_on = 36;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.auto_makeup_gain_is_on_), _Internal::kHasBitsOffset + 34, 34, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIControllerProto stereo_width = 37;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.stereo_width_), _Internal::kHasBitsOffset + 35, 35, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIButtonProto switch_video_channel = 38;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.switch_video_channel_), _Internal::kHasBitsOffset + 36, 36, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIButtonProto apply_transition = 39;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.apply_transition_), _Internal::kHasBitsOffset + 37, 37, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIButtonProto prev_audio_view = 40;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.prev_audio_view_), _Internal::kHasBitsOffset + 38, 38, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIButtonProto next_audio_view = 41;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.next_audio_view_), _Internal::kHasBitsOffset + 39, 39, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIButtonProto begin_new_video_segment = 42;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.begin_new_video_segment_), _Internal::kHasBitsOffset + 40, 40, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .MIDIButtonProto exit = 43;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.exit_), _Internal::kHasBitsOffset + 41, 41, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIControllerProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIControllerProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIControllerProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIControllerProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIControllerProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIControllerProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIControllerProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIControllerProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIControllerProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIControllerProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIControllerProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIControllerProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIButtonProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIButtonProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIButtonProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIButtonProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIButtonProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIButtonProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIButtonProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIButtonProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIButtonProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIButtonProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIButtonProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIButtonProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIButtonProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIButtonProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIButtonProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIButtonProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIButtonProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIButtonProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIButtonProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIButtonProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIButtonProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIButtonProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIButtonProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIButtonProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIButtonProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIButtonProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIButtonProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIButtonProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIControllerProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIControllerProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIControllerProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIControllerProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIControllerProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIControllerProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDILightProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDILightProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDILightProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDILightProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDILightProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDILightProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDILightProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDILightProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDILightProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDILightProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDILightProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDILightProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDILightProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDILightProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDILightProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDILightProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDILightProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDILightProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDILightProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDILightProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDILightProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDILightProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDILightProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDILightProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIControllerProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIControllerProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIButtonProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIButtonProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIButtonProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIButtonProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIButtonProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIButtonProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIButtonProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIButtonProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIButtonProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIButtonProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIButtonProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIButtonProto_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr MIDIMappingBusProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : treble_{nullptr},
        mid_{nullptr},
        bass_{nullptr},
        gain_{nullptr},
        compressor_threshold_{nullptr},
        fader_{nullptr},
        toggle_mute_{nullptr},
        toggle_locut_{nullptr},
        toggle_auto_gain_staging_{nullptr},
        toggle_compressor_{nullptr},
        clear_peak_{nullptr},
        prev_bank_{nullptr},
        next_bank_{nullptr},
        select_bank_1_{nullptr},
        select_bank_2_{nullptr},
        select_bank_3_{nullptr},
        select_bank_4_{nullptr},
        select_bank_5_{nullptr},
        toggle_limiter_{nullptr},
        toggle_auto_makeup_gain_{nullptr},
        locut_{nullptr},
        limiter_threshold_{nullptr},
        makeup_gain_{nullptr},
        is_muted_{nullptr},
        locut_is_on_{nullptr},
        auto_gain_staging_is_on_{nullptr},
        compressor_is_on_{nullptr},
        has_peaked_{nullptr},
        bank_1_is_selected_{nullptr},
        bank_2_is_selected_{nullptr},
        bank_3_is_selected_{nullptr},
        bank_4_is_selected_{nullptr},
        bank_5_is_selected_{nullptr},
        limiter_is_on_{nullptr},
        auto_makeup_gain_is_on_{nullptr},
        stereo_width_{nullptr},
        switch_video_channel_{nullptr},
        apply_transition_{nullptr},
        prev_audio_view_{nullptr},
        next_audio_view_{nullptr},
        begin_new_video_segment_{nullptr},
        exit_{nullptr} {}

template <typename>
constexpr MIDIMappingBusProto::MIDIMappingBusProto(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : Super_(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL MIDIMappingBusProto::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) MIDIMappingBusProto(arena);
}
constexpr auto MIDIMappingBusProto::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(MIDIMappingBusProto), alignof(MIDIMappingBusProto));
}
constexpr auto MIDIMappingBusProto::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          MIDIMappingBusProto::IsInitializedImpl,
          &MIDIMappingBusProto::MergeImpl,
          Super_::GetNewImpl<MIDIMappingBusProto>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &MIDIMappingBusProto::SharedDtor,
          Super_::GetClearImpl<MIDIMappingBusProto>(), &MIDIMappingBusProto::ByteSizeLong,
              &MIDIMappingBusProto::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[0],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_nageru_5fmidi_5fmapping_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct MIDIMappingBusProtoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr MIDIMappingBusProtoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 MIDIMappingBusProto_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(MIDIMappingBusProto::InternalGenerateClassData_(
            _default, &MIDIMappingBusProto_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<MIDIMappingBusProto>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~MIDIMappingBusProtoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) MIDIMappingBusProto _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<MIDIMappingBusProto>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(MIDIMappingBusProtoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST MIDIMappingBusProtoGlobalsTypeInternal MIDIMappingBusProto_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* MIDIMappingBusProto_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return MIDIMappingBusProto_globals_.GetClassData();
#else
  return MIDIMappingBusProto_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class MIDIMappingProto::_Internal {
 public:
  using HasBits = decltype(::std::declval<MIDIMappingProto>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_._has_bits_);
};

constexpr MIDIMappingProto::ParseTableT_ MIDIMappingProto::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_._has_bits_),
      0, // no _extensions_
      25, 248,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4261412864,  // skipmap
      offsetof(ParseTableT_, field_entries),
      25,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::MpUnknownFields,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::MIDIMappingProto>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional int32 num_controller_banks = 1 [default = 0];
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MIDIMappingProto, _impl_.num_controller_banks_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.num_controller_banks_)}},
      // optional int32 treble_bank = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MIDIMappingProto, _impl_.treble_bank_), 2>(),
       {16, 2, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.treble_bank_)}},
      // optional int32 mid_bank = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MIDIMappingProto, _impl_.mid_bank_), 3>(),
       {24, 3, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.mid_bank_)}},
      // optional int32 bass_bank = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MIDIMappingProto, _impl_.bass_bank_), 4>(),
       {32, 4, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.bass_bank_)}},
      // optional int32 gain_bank = 5;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MIDIMappingProto, _impl_.gain_bank_), 5>(),
       {40, 5, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.gain_bank_)}},
      // optional int32 compressor_threshold_bank = 6;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MIDIMappingProto, _impl_.compressor_threshold_bank_), 6>(),
       {48, 6, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.compressor_threshold_bank_)}},
      // optional int32 fader_bank = 7;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MIDIMappingProto, _impl_.fader_bank_), 7>(),
       {56, 7, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.fader_bank_)}},
      // optional int32 toggle_mute_bank = 8;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MIDIMappingProto, _impl_.toggle_mute_bank_), 8>(),
       {64, 8, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.toggle_mute_bank_)}},
      // optional int32 toggle_locut_bank = 9;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MIDIMappingProto, _impl_.toggle_locut_bank_), 9>(),
       {72, 9, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.toggle_locut_bank_)}},
      // optional int32 toggle_auto_gain_staging_bank = 10;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MIDIMappingProto, _impl_.toggle_auto_gain_staging_bank_), 10>(),
       {80, 10, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.toggle_auto_gain_staging_bank_)}},
      // optional int32 toggle_compressor_bank = 11;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MIDIMappingProto, _impl_.toggle_compressor_bank_), 11>(),
       {88, 11, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.toggle_compressor_bank_)}},
      // optional int32 clear_peak_bank = 12;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MIDIMappingProto, _impl_.clear_peak_bank_), 12>(),
       {96, 12, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.clear_peak_bank_)}},
      // optional int32 locut_bank = 13;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MIDIMappingProto, _impl_.locut_bank_), 13>(),
       {104, 13, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.locut_bank_)}},
      // optional int32 limiter_threshold_bank = 14;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MIDIMappingProto, _impl_.limiter_threshold_bank_), 14>(),
       {112, 14, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.limiter_threshold_bank_)}},
      // optional int32 makeup_gain_bank = 15;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MIDIMappingProto, _impl_.makeup_gain_bank_), 15>(),
       {120, 15, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.makeup_gain_bank_)}},
      // optional int32 toggle_limiter_bank = 16;
      {::_pbi::TcParser::FastV32S2,
       {384, 16, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.toggle_limiter_bank_)}},
      // optional int32 toggle_auto_makeup_gain_bank = 17;
      {::_pbi::TcParser::FastV32S2,
       {392, 17, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.toggle_auto_makeup_gain_bank_)}},
      // repeated .MIDIMappingBusProto bus_mapping = 18;
      {::_pbi::TcParser::FastMtR2,
       {402, 0, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.bus_mapping_)}},
      // optional int32 stereo_width_bank = 19;
      {::_pbi::TcParser::FastV32S2,
       {408, 18, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.stereo_width_bank_)}},
      // optional int32 prev_audio_view_bank = 20;
      {::_pbi::TcParser::FastV32S2,
       {416, 19, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.prev_audio_view_bank_)}},
      // optional int32 next_audio_view_bank = 21;
      {::_pbi::TcParser::FastV32S2,
       {424, 20, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.next_audio_view_bank_)}},
      // optional int32 begin_new_video_segment_bank = 22;
      {::_pbi::TcParser::FastV32S2,
       {432, 21, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.begin_new_video_segment_bank_)}},
      // optional int32 exit_bank = 23;
      {::_pbi::TcParser::FastV32S2,
       {440, 22, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.exit_bank_)}},
      // optional int32 switch_video_channel_bank = 24;
      {::_pbi::TcParser::FastV32S2,
       {448, 23, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.switch_video_channel_bank_)}},
      // optional int32 apply_transition_bank = 25;
      {::_pbi::TcParser::FastV32S2,
       {456, 24, 0,
        PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.apply_transition_bank_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // optional int32 num_controller_banks = 1 [default = 0];
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.num_controller_banks_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 treble_bank = 2;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.treble_bank_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 mid_bank = 3;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.mid_bank_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 bass_bank = 4;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.bass_bank_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 gain_bank = 5;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.gain_bank_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 compressor_threshold_bank = 6;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.compressor_threshold_bank_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 fader_bank = 7;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.fader_bank_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 toggle_mute_bank = 8;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.toggle_mute_bank_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 toggle_locut_bank = 9;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.toggle_locut_bank_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 toggle_auto_gain_staging_bank = 10;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.toggle_auto_gain_staging_bank_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 toggle_compressor_bank = 11;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.toggle_compressor_bank_), _Internal::kHasBitsOffset + 11, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 clear_peak_bank = 12;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.clear_peak_bank_), _Internal::kHasBitsOffset + 12, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 locut_bank = 13;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.locut_bank_), _Internal::kHasBitsOffset + 13, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 limiter_threshold_bank = 14;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.limiter_threshold_bank_), _Internal::kHasBitsOffset + 14, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 makeup_gain_bank = 15;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.makeup_gain_bank_), _Internal::kHasBitsOffset + 15, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 toggle_limiter_bank = 16;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.toggle_limiter_bank_), _Internal::kHasBitsOffset + 16, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 toggle_auto_makeup_gain_bank = 17;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.toggle_auto_makeup_gain_bank_), _Internal::kHasBitsOffset + 17, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // repeated .MIDIMappingBusProto bus_mapping = 18;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.bus_mapping_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional int32 stereo_width_bank = 19;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.stereo_width_bank_), _Internal::kHasBitsOffset + 18, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 prev_audio_view_bank = 20;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.prev_audio_view_bank_), _Internal::kHasBitsOffset + 19, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 next_audio_view_bank = 21;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.next_audio_view_bank_), _Internal::kHasBitsOffset + 20, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 begin_new_video_segment_bank = 22;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.begin_new_video_segment_bank_), _Internal::kHasBitsOffset + 21, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 exit_bank = 23;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.exit_bank_), _Internal::kHasBitsOffset + 22, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 switch_video_channel_bank = 24;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.switch_video_channel_bank_), _Internal::kHasBitsOffset + 23, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 apply_transition_bank = 25;
      {PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.apply_transition_bank_), _Internal::kHasBitsOffset + 24, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::MIDIMappingBusProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::MIDIMappingBusProto_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr MIDIMappingProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : bus_mapping_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::MIDIMappingProto,
            PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.bus_mapping_)>()
         }
        ,
        num_controller_banks_{0},
        treble_bank_{0},
        mid_bank_{0},
        bass_bank_{0},
        gain_bank_{0},
        compressor_threshold_bank_{0},
        fader_bank_{0},
        toggle_mute_bank_{0},
        toggle_locut_bank_{0},
        toggle_auto_gain_staging_bank_{0},
        toggle_compressor_bank_{0},
        clear_peak_bank_{0},
        locut_bank_{0},
        limiter_threshold_bank_{0},
        makeup_gain_bank_{0},
        toggle_limiter_bank_{0},
        toggle_auto_makeup_gain_bank_{0},
        stereo_width_bank_{0},
        prev_audio_view_bank_{0},
        next_audio_view_bank_{0},
        begin_new_video_segment_bank_{0},
        exit_bank_{0},
        switch_video_channel_bank_{0},
        apply_transition_bank_{0} {}

template <typename>
constexpr MIDIMappingProto::MIDIMappingProto(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : Super_(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL MIDIMappingProto::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) MIDIMappingProto(arena);
}
constexpr auto MIDIMappingProto::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(MIDIMappingProto), alignof(MIDIMappingProto));
}
constexpr auto MIDIMappingProto::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          MIDIMappingProto::IsInitializedImpl,
          &MIDIMappingProto::MergeImpl,
          Super_::GetNewImpl<MIDIMappingProto>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &MIDIMappingProto::SharedDtor,
          Super_::GetClearImpl<MIDIMappingProto>(), &MIDIMappingProto::ByteSizeLong,
              &MIDIMappingProto::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[1],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_nageru_5fmidi_5fmapping_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct MIDIMappingProtoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr MIDIMappingProtoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 MIDIMappingProto_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(MIDIMappingProto::InternalGenerateClassData_(
            _default, &MIDIMappingProto_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<MIDIMappingProto>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~MIDIMappingProtoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) MIDIMappingProto _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<MIDIMappingProto>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(MIDIMappingProtoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST MIDIMappingProtoGlobalsTypeInternal MIDIMappingProto_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* MIDIMappingProto_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return MIDIMappingProto_globals_.GetClassData();
#else
  return MIDIMappingProto_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
static constexpr const ::_pb::EnumDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE
    file_level_enum_descriptors_nageru_5fmidi_5fmapping_2eproto = nullptr;
static constexpr const ::_pb::ServiceDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE
    file_level_service_descriptors_nageru_5fmidi_5fmapping_2eproto = nullptr;
const ::uint32_t
    TableStruct_nageru_5fmidi_5fmapping_2eproto::offsets[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
        protodesc_cold) = {
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_._has_bits_),
        45, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.stereo_width_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.treble_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.mid_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.bass_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.gain_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.compressor_threshold_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.fader_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.toggle_mute_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.toggle_locut_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.toggle_auto_gain_staging_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.toggle_compressor_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.clear_peak_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.prev_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.next_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.select_bank_1_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.select_bank_2_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.select_bank_3_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.select_bank_4_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.select_bank_5_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.toggle_limiter_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.toggle_auto_makeup_gain_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.switch_video_channel_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.apply_transition_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.prev_audio_view_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.next_audio_view_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.begin_new_video_segment_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.exit_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.locut_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.limiter_threshold_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.makeup_gain_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.is_muted_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.locut_is_on_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.auto_gain_staging_is_on_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.compressor_is_on_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.has_peaked_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.bank_1_is_selected_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.bank_2_is_selected_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.bank_3_is_selected_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.bank_4_is_selected_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.bank_5_is_selected_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.limiter_is_on_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingBusProto, _impl_.auto_makeup_gain_is_on_),
        35,
        0,
        1,
        2,
        3,
        4,
        5,
        6,
        7,
        8,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        36,
        37,
        38,
        39,
        40,
        41,
        20,
        21,
        22,
        23,
        24,
        25,
        26,
        27,
        28,
        29,
        30,
        31,
        32,
        33,
        34,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_._has_bits_),
        28, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.num_controller_banks_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.stereo_width_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.treble_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.mid_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.bass_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.gain_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.compressor_threshold_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.fader_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.toggle_mute_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.toggle_locut_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.toggle_auto_gain_staging_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.toggle_compressor_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.clear_peak_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.switch_video_channel_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.apply_transition_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.locut_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.limiter_threshold_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.makeup_gain_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.toggle_limiter_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.toggle_auto_makeup_gain_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.prev_audio_view_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.next_audio_view_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.begin_new_video_segment_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.exit_bank_),
        PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.bus_mapping_),
        1,
        18,
        2,
        3,
        4,
        5,
        6,
        7,
        8,
        9,
        10,
        11,
        12,
        23,
        24,
        13,
        14,
        15,
        16,
        17,
        19,
        20,
        21,
        22,
        0,
};

static const ::_pbi::MigrationSchema
    schemas[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
        {0, sizeof(::MIDIMappingBusProto)},
        {87, sizeof(::MIDIMappingProto)},
};
static const ::_pbi::MessageGlobalsBase* PROTOBUF_NONNULL const
    file_message_globals[] = {
        &::MIDIMappingBusProto_globals_,
        &::MIDIMappingProto_globals_,
};
const char descriptor_table_protodef_nageru_5fmidi_5fmapping_2eproto[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
    protodesc_cold) = {
    "\n\031nageru_midi_mapping.proto\032\022midi_mappin"
    "g.proto\"\200\016\n\023MIDIMappingBusProto\022*\n\014stere"
    "o_width\030% \001(\0132\024.MIDIControllerProto\022$\n\006t"
    "reble\030\002 \001(\0132\024.MIDIControllerProto\022!\n\003mid"
    "\030\003 \001(\0132\024.MIDIControllerProto\022\"\n\004bass\030\004 \001"
    "(\0132\024.MIDIControllerProto\022\"\n\004gain\030\005 \001(\0132\024"
    ".MIDIControllerProto\0222\n\024compressor_thres"
    "hold\030\006 \001(\0132\024.MIDIControllerProto\022#\n\005fade"
    "r\030\007 \001(\0132\024.MIDIControllerProto\022%\n\013toggle_"
    "mute\030\010 \001(\0132\020.MIDIButtonProto\022&\n\014toggle_l"
    "ocut\030\t \001(\0132\020.MIDIButtonProto\0222\n\030toggle_a"
    "uto_gain_staging\030\n \001(\0132\020.MIDIButtonProto"
    "\022+\n\021toggle_compressor\030\013 \001(\0132\020.MIDIButton"
    "Proto\022$\n\nclear_peak\030\014 \001(\0132\020.MIDIButtonPr"
    "oto\022#\n\tprev_bank\030\r \001(\0132\020.MIDIButtonProto"
    "\022#\n\tnext_bank\030\016 \001(\0132\020.MIDIButtonProto\022\'\n"
    "\rselect_bank_1\030\017 \001(\0132\020.MIDIButtonProto\022\'"
    "\n\rselect_bank_2\030\020 \001(\0132\020.MIDIButtonProto\022"
    "\'\n\rselect_bank_3\030\021 \001(\0132\020.MIDIButtonProto"
    "\022\'\n\rselect_bank_4\030\022 \001(\0132\020.MIDIButtonProt"
    "o\022\'\n\rselect_bank_5\030\023 \001(\0132\020.MIDIButtonPro"
    "to\022(\n\016toggle_limiter\030\024 \001(\0132\020.MIDIButtonP"
    "roto\0221\n\027toggle_auto_makeup_gain\030\025 \001(\0132\020."
    "MIDIButtonProto\022.\n\024switch_video_channel\030"
    "& \001(\0132\020.MIDIButtonProto\022*\n\020apply_transit"
    "ion\030\' \001(\0132\020.MIDIButtonProto\022)\n\017prev_audi"
    "o_view\030( \001(\0132\020.MIDIButtonProto\022)\n\017next_a"
    "udio_view\030) \001(\0132\020.MIDIButtonProto\0221\n\027beg"
    "in_new_video_segment\030* \001(\0132\020.MIDIButtonP"
    "roto\022\036\n\004exit\030+ \001(\0132\020.MIDIButtonProto\022#\n\005"
    "locut\030\026 \001(\0132\024.MIDIControllerProto\022/\n\021lim"
    "iter_threshold\030\027 \001(\0132\024.MIDIControllerPro"
    "to\022)\n\013makeup_gain\030\030 \001(\0132\024.MIDIController"
    "Proto\022!\n\010is_muted\030\031 \001(\0132\017.MIDILightProto"
    "\022$\n\013locut_is_on\030\032 \001(\0132\017.MIDILightProto\0220"
    "\n\027auto_gain_staging_is_on\030\033 \001(\0132\017.MIDILi"
    "ghtProto\022)\n\020compressor_is_on\030\034 \001(\0132\017.MID"
    "ILightProto\022#\n\nhas_peaked\030\035 \001(\0132\017.MIDILi"
    "ghtProto\022+\n\022bank_1_is_selected\030\036 \001(\0132\017.M"
    "IDILightProto\022+\n\022bank_2_is_selected\030\037 \001("
    "\0132\017.MIDILightProto\022+\n\022bank_3_is_selected"
    "\030  \001(\0132\017.MIDILightProto\022+\n\022bank_4_is_sel"
    "ected\030! \001(\0132\017.MIDILightProto\022+\n\022bank_5_i"
    "s_selected\030\" \001(\0132\017.MIDILightProto\022&\n\rlim"
    "iter_is_on\030# \001(\0132\017.MIDILightProto\022/\n\026aut"
    "o_makeup_gain_is_on\030$ \001(\0132\017.MIDILightPro"
    "to\"\332\005\n\020MIDIMappingProto\022\037\n\024num_controlle"
    "r_banks\030\001 \001(\005:\0010\022\031\n\021stereo_width_bank\030\023 "
    "\001(\005\022\023\n\013treble_bank\030\002 \001(\005\022\020\n\010mid_bank\030\003 \001"
    "(\005\022\021\n\tbass_bank\030\004 \001(\005\022\021\n\tgain_bank\030\005 \001(\005"
    "\022!\n\031compressor_threshold_bank\030\006 \001(\005\022\022\n\nf"
    "ader_bank\030\007 \001(\005\022\030\n\020toggle_mute_bank\030\010 \001("
    "\005\022\031\n\021toggle_locut_bank\030\t \001(\005\022%\n\035toggle_a"
    "uto_gain_staging_bank\030\n \001(\005\022\036\n\026toggle_co"
    "mpressor_bank\030\013 \001(\005\022\027\n\017clear_peak_bank\030\014"
    " \001(\005\022!\n\031switch_video_channel_bank\030\030 \001(\005\022"
    "\035\n\025apply_transition_bank\030\031 \001(\005\022\022\n\nlocut_"
    "bank\030\r \001(\005\022\036\n\026limiter_threshold_bank\030\016 \001"
    "(\005\022\030\n\020makeup_gain_bank\030\017 \001(\005\022\033\n\023toggle_l"
    "imiter_bank\030\020 \001(\005\022$\n\034toggle_auto_makeup_"
    "gain_bank\030\021 \001(\005\022\034\n\024prev_audio_view_bank\030"
    "\024 \001(\005\022\034\n\024next_audio_view_bank\030\025 \001(\005\022$\n\034b"
    "egin_new_video_segment_bank\030\026 \001(\005\022\021\n\texi"
    "t_bank\030\027 \001(\005\022)\n\013bus_mapping\030\022 \003(\0132\024.MIDI"
    "MappingBusProto"
};
static const ::_pbi::DescriptorTable* PROTOBUF_NONNULL const
    descriptor_table_nageru_5fmidi_5fmapping_2eproto_deps[1] = {
        &::descriptor_table_midi_5fmapping_2eproto,
};
static ::absl::once_flag descriptor_table_nageru_5fmidi_5fmapping_2eproto_once;
PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_nageru_5fmidi_5fmapping_2eproto = {
    false,
    false,
    2575,
    descriptor_table_protodef_nageru_5fmidi_5fmapping_2eproto,
    "nageru_midi_mapping.proto",
    &descriptor_table_nageru_5fmidi_5fmapping_2eproto_once,
    descriptor_table_nageru_5fmidi_5fmapping_2eproto_deps,
    1,
    2,
    schemas,
    file_message_globals,
    TableStruct_nageru_5fmidi_5fmapping_2eproto::offsets,
    file_level_enum_descriptors_nageru_5fmidi_5fmapping_2eproto,
    file_level_service_descriptors_nageru_5fmidi_5fmapping_2eproto,
};
// ===================================================================

void MIDIMappingBusProto::clear_stereo_width() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.stereo_width_ != nullptr) _impl_.stereo_width_->Clear();
  ClearHasBit(_impl_._has_bits_[1], 0x00000008U);
}
void MIDIMappingBusProto::clear_treble() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.treble_ != nullptr) _impl_.treble_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
void MIDIMappingBusProto::clear_mid() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.mid_ != nullptr) _impl_.mid_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
void MIDIMappingBusProto::clear_bass() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.bass_ != nullptr) _impl_.bass_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
void MIDIMappingBusProto::clear_gain() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.gain_ != nullptr) _impl_.gain_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
void MIDIMappingBusProto::clear_compressor_threshold() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.compressor_threshold_ != nullptr) _impl_.compressor_threshold_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
void MIDIMappingBusProto::clear_fader() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.fader_ != nullptr) _impl_.fader_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
void MIDIMappingBusProto::clear_toggle_mute() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.toggle_mute_ != nullptr) _impl_.toggle_mute_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
void MIDIMappingBusProto::clear_toggle_locut() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.toggle_locut_ != nullptr) _impl_.toggle_locut_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
void MIDIMappingBusProto::clear_toggle_auto_gain_staging() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.toggle_auto_gain_staging_ != nullptr) _impl_.toggle_auto_gain_staging_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
void MIDIMappingBusProto::clear_toggle_compressor() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.toggle_compressor_ != nullptr) _impl_.toggle_compressor_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
void MIDIMappingBusProto::clear_clear_peak() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.clear_peak_ != nullptr) _impl_.clear_peak_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
void MIDIMappingBusProto::clear_prev_bank() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.prev_bank_ != nullptr) _impl_.prev_bank_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
}
void MIDIMappingBusProto::clear_next_bank() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.next_bank_ != nullptr) _impl_.next_bank_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00001000U);
}
void MIDIMappingBusProto::clear_select_bank_1() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.select_bank_1_ != nullptr) _impl_.select_bank_1_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00002000U);
}
void MIDIMappingBusProto::clear_select_bank_2() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.select_bank_2_ != nullptr) _impl_.select_bank_2_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00004000U);
}
void MIDIMappingBusProto::clear_select_bank_3() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.select_bank_3_ != nullptr) _impl_.select_bank_3_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00008000U);
}
void MIDIMappingBusProto::clear_select_bank_4() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.select_bank_4_ != nullptr) _impl_.select_bank_4_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00010000U);
}
void MIDIMappingBusProto::clear_select_bank_5() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.select_bank_5_ != nullptr) _impl_.select_bank_5_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00020000U);
}
void MIDIMappingBusProto::clear_toggle_limiter() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.toggle_limiter_ != nullptr) _impl_.toggle_limiter_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00040000U);
}
void MIDIMappingBusProto::clear_toggle_auto_makeup_gain() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.toggle_auto_makeup_gain_ != nullptr) _impl_.toggle_auto_makeup_gain_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00080000U);
}
void MIDIMappingBusProto::clear_switch_video_channel() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.switch_video_channel_ != nullptr) _impl_.switch_video_channel_->Clear();
  ClearHasBit(_impl_._has_bits_[1], 0x00000010U);
}
void MIDIMappingBusProto::clear_apply_transition() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.apply_transition_ != nullptr) _impl_.apply_transition_->Clear();
  ClearHasBit(_impl_._has_bits_[1], 0x00000020U);
}
void MIDIMappingBusProto::clear_prev_audio_view() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.prev_audio_view_ != nullptr) _impl_.prev_audio_view_->Clear();
  ClearHasBit(_impl_._has_bits_[1], 0x00000040U);
}
void MIDIMappingBusProto::clear_next_audio_view() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.next_audio_view_ != nullptr) _impl_.next_audio_view_->Clear();
  ClearHasBit(_impl_._has_bits_[1], 0x00000080U);
}
void MIDIMappingBusProto::clear_begin_new_video_segment() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.begin_new_video_segment_ != nullptr) _impl_.begin_new_video_segment_->Clear();
  ClearHasBit(_impl_._has_bits_[1], 0x00000100U);
}
void MIDIMappingBusProto::clear_exit() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.exit_ != nullptr) _impl_.exit_->Clear();
  ClearHasBit(_impl_._has_bits_[1], 0x00000200U);
}
void MIDIMappingBusProto::clear_locut() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.locut_ != nullptr) _impl_.locut_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00100000U);
}
void MIDIMappingBusProto::clear_limiter_threshold() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.limiter_threshold_ != nullptr) _impl_.limiter_threshold_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00200000U);
}
void MIDIMappingBusProto::clear_makeup_gain() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.makeup_gain_ != nullptr) _impl_.makeup_gain_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00400000U);
}
void MIDIMappingBusProto::clear_is_muted() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.is_muted_ != nullptr) _impl_.is_muted_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00800000U);
}
void MIDIMappingBusProto::clear_locut_is_on() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.locut_is_on_ != nullptr) _impl_.locut_is_on_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x01000000U);
}
void MIDIMappingBusProto::clear_auto_gain_staging_is_on() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.auto_gain_staging_is_on_ != nullptr) _impl_.auto_gain_staging_is_on_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x02000000U);
}
void MIDIMappingBusProto::clear_compressor_is_on() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.compressor_is_on_ != nullptr) _impl_.compressor_is_on_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x04000000U);
}
void MIDIMappingBusProto::clear_has_peaked() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.has_peaked_ != nullptr) _impl_.has_peaked_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x08000000U);
}
void MIDIMappingBusProto::clear_bank_1_is_selected() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.bank_1_is_selected_ != nullptr) _impl_.bank_1_is_selected_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x10000000U);
}
void MIDIMappingBusProto::clear_bank_2_is_selected() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.bank_2_is_selected_ != nullptr) _impl_.bank_2_is_selected_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x20000000U);
}
void MIDIMappingBusProto::clear_bank_3_is_selected() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.bank_3_is_selected_ != nullptr) _impl_.bank_3_is_selected_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x40000000U);
}
void MIDIMappingBusProto::clear_bank_4_is_selected() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.bank_4_is_selected_ != nullptr) _impl_.bank_4_is_selected_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x80000000U);
}
void MIDIMappingBusProto::clear_bank_5_is_selected() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.bank_5_is_selected_ != nullptr) _impl_.bank_5_is_selected_->Clear();
  ClearHasBit(_impl_._has_bits_[1], 0x00000001U);
}
void MIDIMappingBusProto::clear_limiter_is_on() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.limiter_is_on_ != nullptr) _impl_.limiter_is_on_->Clear();
  ClearHasBit(_impl_._has_bits_[1], 0x00000002U);
}
void MIDIMappingBusProto::clear_auto_makeup_gain_is_on() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.auto_makeup_gain_is_on_ != nullptr) _impl_.auto_makeup_gain_is_on_->Clear();
  ClearHasBit(_impl_._has_bits_[1], 0x00000004U);
}
MIDIMappingBusProto::MIDIMappingBusProto(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : Super_(arena, MIDIMappingBusProto_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : Super_(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:MIDIMappingBusProto)
}
PROTOBUF_NDEBUG_INLINE MIDIMappingBusProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::MIDIMappingBusProto& from_msg)
      : _has_bits_{from._has_bits_} {}

MIDIMappingBusProto::MIDIMappingBusProto(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const MIDIMappingBusProto& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : Super_(arena, MIDIMappingBusProto_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : Super_(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  MIDIMappingBusProto* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.treble_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                 ? Super_::CopyConstruct(arena, *from._impl_.treble_)
                 : nullptr;
  _impl_.mid_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                 ? Super_::CopyConstruct(arena, *from._impl_.mid_)
                 : nullptr;
  _impl_.bass_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                 ? Super_::CopyConstruct(arena, *from._impl_.bass_)
                 : nullptr;
  _impl_.gain_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                 ? Super_::CopyConstruct(arena, *from._impl_.gain_)
                 : nullptr;
  _impl_.compressor_threshold_ = (CheckHasBit(cached_has_bits, 0x00000010U))
                 ? Super_::CopyConstruct(arena, *from._impl_.compressor_threshold_)
                 : nullptr;
  _impl_.fader_ = (CheckHasBit(cached_has_bits, 0x00000020U))
                 ? Super_::CopyConstruct(arena, *from._impl_.fader_)
                 : nullptr;
  _impl_.toggle_mute_ = (CheckHasBit(cached_has_bits, 0x00000040U))
                 ? Super_::CopyConstruct(arena, *from._impl_.toggle_mute_)
                 : nullptr;
  _impl_.toggle_locut_ = (CheckHasBit(cached_has_bits, 0x00000080U))
                 ? Super_::CopyConstruct(arena, *from._impl_.toggle_locut_)
                 : nullptr;
  _impl_.toggle_auto_gain_staging_ = (CheckHasBit(cached_has_bits, 0x00000100U))
                 ? Super_::CopyConstruct(arena, *from._impl_.toggle_auto_gain_staging_)
                 : nullptr;
  _impl_.toggle_compressor_ = (CheckHasBit(cached_has_bits, 0x00000200U))
                 ? Super_::CopyConstruct(arena, *from._impl_.toggle_compressor_)
                 : nullptr;
  _impl_.clear_peak_ = (CheckHasBit(cached_has_bits, 0x00000400U))
                 ? Super_::CopyConstruct(arena, *from._impl_.clear_peak_)
                 : nullptr;
  _impl_.prev_bank_ = (CheckHasBit(cached_has_bits, 0x00000800U))
                 ? Super_::CopyConstruct(arena, *from._impl_.prev_bank_)
                 : nullptr;
  _impl_.next_bank_ = (CheckHasBit(cached_has_bits, 0x00001000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.next_bank_)
                 : nullptr;
  _impl_.select_bank_1_ = (CheckHasBit(cached_has_bits, 0x00002000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.select_bank_1_)
                 : nullptr;
  _impl_.select_bank_2_ = (CheckHasBit(cached_has_bits, 0x00004000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.select_bank_2_)
                 : nullptr;
  _impl_.select_bank_3_ = (CheckHasBit(cached_has_bits, 0x00008000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.select_bank_3_)
                 : nullptr;
  _impl_.select_bank_4_ = (CheckHasBit(cached_has_bits, 0x00010000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.select_bank_4_)
                 : nullptr;
  _impl_.select_bank_5_ = (CheckHasBit(cached_has_bits, 0x00020000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.select_bank_5_)
                 : nullptr;
  _impl_.toggle_limiter_ = (CheckHasBit(cached_has_bits, 0x00040000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.toggle_limiter_)
                 : nullptr;
  _impl_.toggle_auto_makeup_gain_ = (CheckHasBit(cached_has_bits, 0x00080000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.toggle_auto_makeup_gain_)
                 : nullptr;
  _impl_.locut_ = (CheckHasBit(cached_has_bits, 0x00100000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.locut_)
                 : nullptr;
  _impl_.limiter_threshold_ = (CheckHasBit(cached_has_bits, 0x00200000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.limiter_threshold_)
                 : nullptr;
  _impl_.makeup_gain_ = (CheckHasBit(cached_has_bits, 0x00400000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.makeup_gain_)
                 : nullptr;
  _impl_.is_muted_ = (CheckHasBit(cached_has_bits, 0x00800000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.is_muted_)
                 : nullptr;
  _impl_.locut_is_on_ = (CheckHasBit(cached_has_bits, 0x01000000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.locut_is_on_)
                 : nullptr;
  _impl_.auto_gain_staging_is_on_ = (CheckHasBit(cached_has_bits, 0x02000000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.auto_gain_staging_is_on_)
                 : nullptr;
  _impl_.compressor_is_on_ = (CheckHasBit(cached_has_bits, 0x04000000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.compressor_is_on_)
                 : nullptr;
  _impl_.has_peaked_ = (CheckHasBit(cached_has_bits, 0x08000000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.has_peaked_)
                 : nullptr;
  _impl_.bank_1_is_selected_ = (CheckHasBit(cached_has_bits, 0x10000000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.bank_1_is_selected_)
                 : nullptr;
  _impl_.bank_2_is_selected_ = (CheckHasBit(cached_has_bits, 0x20000000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.bank_2_is_selected_)
                 : nullptr;
  _impl_.bank_3_is_selected_ = (CheckHasBit(cached_has_bits, 0x40000000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.bank_3_is_selected_)
                 : nullptr;
  _impl_.bank_4_is_selected_ = (CheckHasBit(cached_has_bits, 0x80000000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.bank_4_is_selected_)
                 : nullptr;
  cached_has_bits = _impl_._has_bits_[1];
  _impl_.bank_5_is_selected_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                 ? Super_::CopyConstruct(arena, *from._impl_.bank_5_is_selected_)
                 : nullptr;
  _impl_.limiter_is_on_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                 ? Super_::CopyConstruct(arena, *from._impl_.limiter_is_on_)
                 : nullptr;
  _impl_.auto_makeup_gain_is_on_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                 ? Super_::CopyConstruct(arena, *from._impl_.auto_makeup_gain_is_on_)
                 : nullptr;
  _impl_.stereo_width_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                 ? Super_::CopyConstruct(arena, *from._impl_.stereo_width_)
                 : nullptr;
  _impl_.switch_video_channel_ = (CheckHasBit(cached_has_bits, 0x00000010U))
                 ? Super_::CopyConstruct(arena, *from._impl_.switch_video_channel_)
                 : nullptr;
  _impl_.apply_transition_ = (CheckHasBit(cached_has_bits, 0x00000020U))
                 ? Super_::CopyConstruct(arena, *from._impl_.apply_transition_)
                 : nullptr;
  _impl_.prev_audio_view_ = (CheckHasBit(cached_has_bits, 0x00000040U))
                 ? Super_::CopyConstruct(arena, *from._impl_.prev_audio_view_)
                 : nullptr;
  _impl_.next_audio_view_ = (CheckHasBit(cached_has_bits, 0x00000080U))
                 ? Super_::CopyConstruct(arena, *from._impl_.next_audio_view_)
                 : nullptr;
  _impl_.begin_new_video_segment_ = (CheckHasBit(cached_has_bits, 0x00000100U))
                 ? Super_::CopyConstruct(arena, *from._impl_.begin_new_video_segment_)
                 : nullptr;
  _impl_.exit_ = (CheckHasBit(cached_has_bits, 0x00000200U))
                 ? Super_::CopyConstruct(arena, *from._impl_.exit_)
                 : nullptr;

  // @@protoc_insertion_point(copy_constructor:MIDIMappingBusProto)
}
PROTOBUF_NDEBUG_INLINE MIDIMappingBusProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
     {}

inline void MIDIMappingBusProto::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, treble_),
           0,
           offsetof(Impl_, exit_) -
               offsetof(Impl_, treble_) +
               sizeof(Impl_::exit_));
}
MIDIMappingBusProto::~MIDIMappingBusProto() {
  // @@protoc_insertion_point(destructor:MIDIMappingBusProto)
  SharedDtor(*this);
}
inline void MIDIMappingBusProto::SharedDtor(MessageLite& self) {
  MIDIMappingBusProto& this_ = static_cast<MIDIMappingBusProto&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.treble_;
  delete this_._impl_.mid_;
  delete this_._impl_.bass_;
  delete this_._impl_.gain_;
  delete this_._impl_.compressor_threshold_;
  delete this_._impl_.fader_;
  delete this_._impl_.toggle_mute_;
  delete this_._impl_.toggle_locut_;
  delete this_._impl_.toggle_auto_gain_staging_;
  delete this_._impl_.toggle_compressor_;
  delete this_._impl_.clear_peak_;
  delete this_._impl_.prev_bank_;
  delete this_._impl_.next_bank_;
  delete this_._impl_.select_bank_1_;
  delete this_._impl_.select_bank_2_;
  delete this_._impl_.select_bank_3_;
  delete this_._impl_.select_bank_4_;
  delete this_._impl_.select_bank_5_;
  delete this_._impl_.toggle_limiter_;
  delete this_._impl_.toggle_auto_makeup_gain_;
  delete this_._impl_.locut_;
  delete this_._impl_.limiter_threshold_;
  delete this_._impl_.makeup_gain_;
  delete this_._impl_.is_muted_;
  delete this_._impl_.locut_is_on_;
  delete this_._impl_.auto_gain_staging_is_on_;
  delete this_._impl_.compressor_is_on_;
  delete this_._impl_.has_peaked_;
  delete this_._impl_.bank_1_is_selected_;
  delete this_._impl_.bank_2_is_selected_;
  delete this_._impl_.bank_3_is_selected_;
  delete this_._impl_.bank_4_is_selected_;
  delete this_._impl_.bank_5_is_selected_;
  delete this_._impl_.limiter_is_on_;
  delete this_._impl_.auto_makeup_gain_is_on_;
  delete this_._impl_.stereo_width_;
  delete this_._impl_.switch_video_channel_;
  delete this_._impl_.apply_transition_;
  delete this_._impl_.prev_audio_view_;
  delete this_._impl_.next_audio_view_;
  delete this_._impl_.begin_new_video_segment_;
  delete this_._impl_.exit_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull MIDIMappingBusProto_class_data_ =
        MIDIMappingBusProto::InternalGenerateClassData_(MIDIMappingBusProto_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MIDIMappingBusProto::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MIDIMappingBusProto_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(MIDIMappingBusProto_class_data_.tc_table);
  return MIDIMappingBusProto_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MIDIMappingBusProto::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MIDIMappingBusProto_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&MIDIMappingBusProto_globals_));
  return MIDIMappingBusProto_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const MIDIMappingBusProto::ParseTableT_
    MIDIMappingBusProto::_table_ =
        MIDIMappingBusProto::InternalGenerateParseTable_(MIDIMappingBusProto_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void MIDIMappingBusProto::Clear() {
  auto& this_ [[maybe_unused]] = *this;
  // @@protoc_insertion_point(message_clear_start:MIDIMappingBusProto)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits [[maybe_unused]] = 0;

  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(this_._impl_.treble_ != nullptr);
      this_._impl_.treble_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(this_._impl_.mid_ != nullptr);
      this_._impl_.mid_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(this_._impl_.bass_ != nullptr);
      this_._impl_.bass_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(this_._impl_.gain_ != nullptr);
      this_._impl_.gain_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(this_._impl_.compressor_threshold_ != nullptr);
      this_._impl_.compressor_threshold_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(this_._impl_.fader_ != nullptr);
      this_._impl_.fader_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(this_._impl_.toggle_mute_ != nullptr);
      this_._impl_.toggle_mute_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      ABSL_DCHECK(this_._impl_.toggle_locut_ != nullptr);
      this_._impl_.toggle_locut_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      ABSL_DCHECK(this_._impl_.toggle_auto_gain_staging_ != nullptr);
      this_._impl_.toggle_auto_gain_staging_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      ABSL_DCHECK(this_._impl_.toggle_compressor_ != nullptr);
      this_._impl_.toggle_compressor_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      ABSL_DCHECK(this_._impl_.clear_peak_ != nullptr);
      this_._impl_.clear_peak_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      ABSL_DCHECK(this_._impl_.prev_bank_ != nullptr);
      this_._impl_.prev_bank_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      ABSL_DCHECK(this_._impl_.next_bank_ != nullptr);
      this_._impl_.next_bank_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      ABSL_DCHECK(this_._impl_.select_bank_1_ != nullptr);
      this_._impl_.select_bank_1_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      ABSL_DCHECK(this_._impl_.select_bank_2_ != nullptr);
      this_._impl_.select_bank_2_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      ABSL_DCHECK(this_._impl_.select_bank_3_ != nullptr);
      this_._impl_.select_bank_3_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
    if (CheckHasBit(cached_has_bits, 0x00010000U)) {
      ABSL_DCHECK(this_._impl_.select_bank_4_ != nullptr);
      this_._impl_.select_bank_4_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00020000U)) {
      ABSL_DCHECK(this_._impl_.select_bank_5_ != nullptr);
      this_._impl_.select_bank_5_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00040000U)) {
      ABSL_DCHECK(this_._impl_.toggle_limiter_ != nullptr);
      this_._impl_.toggle_limiter_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00080000U)) {
      ABSL_DCHECK(this_._impl_.toggle_auto_makeup_gain_ != nullptr);
      this_._impl_.toggle_auto_makeup_gain_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00100000U)) {
      ABSL_DCHECK(this_._impl_.locut_ != nullptr);
      this_._impl_.locut_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00200000U)) {
      ABSL_DCHECK(this_._impl_.limiter_threshold_ != nullptr);
      this_._impl_.limiter_threshold_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00400000U)) {
      ABSL_DCHECK(this_._impl_.makeup_gain_ != nullptr);
      this_._impl_.makeup_gain_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00800000U)) {
      ABSL_DCHECK(this_._impl_.is_muted_ != nullptr);
      this_._impl_.is_muted_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
    if (CheckHasBit(cached_has_bits, 0x01000000U)) {
      ABSL_DCHECK(this_._impl_.locut_is_on_ != nullptr);
      this_._impl_.locut_is_on_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x02000000U)) {
      ABSL_DCHECK(this_._impl_.auto_gain_staging_is_on_ != nullptr);
      this_._impl_.auto_gain_staging_is_on_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x04000000U)) {
      ABSL_DCHECK(this_._impl_.compressor_is_on_ != nullptr);
      this_._impl_.compressor_is_on_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x08000000U)) {
      ABSL_DCHECK(this_._impl_.has_peaked_ != nullptr);
      this_._impl_.has_peaked_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x10000000U)) {
      ABSL_DCHECK(this_._impl_.bank_1_is_selected_ != nullptr);
      this_._impl_.bank_1_is_selected_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x20000000U)) {
      ABSL_DCHECK(this_._impl_.bank_2_is_selected_ != nullptr);
      this_._impl_.bank_2_is_selected_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x40000000U)) {
      ABSL_DCHECK(this_._impl_.bank_3_is_selected_ != nullptr);
      this_._impl_.bank_3_is_selected_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x80000000U)) {
      ABSL_DCHECK(this_._impl_.bank_4_is_selected_ != nullptr);
      this_._impl_.bank_4_is_selected_->Clear();
    }
  }
  cached_has_bits = this_._impl_._has_bits_[1];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(this_._impl_.bank_5_is_selected_ != nullptr);
      this_._impl_.bank_5_is_selected_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(this_._impl_.limiter_is_on_ != nullptr);
      this_._impl_.limiter_is_on_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(this_._impl_.auto_makeup_gain_is_on_ != nullptr);
      this_._impl_.auto_makeup_gain_is_on_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(this_._impl_.stereo_width_ != nullptr);
      this_._impl_.stereo_width_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(this_._impl_.switch_video_channel_ != nullptr);
      this_._impl_.switch_video_channel_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(this_._impl_.apply_transition_ != nullptr);
      this_._impl_.apply_transition_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(this_._impl_.prev_audio_view_ != nullptr);
      this_._impl_.prev_audio_view_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      ABSL_DCHECK(this_._impl_.next_audio_view_ != nullptr);
      this_._impl_.next_audio_view_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000300U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      ABSL_DCHECK(this_._impl_.begin_new_video_segment_ != nullptr);
      this_._impl_.begin_new_video_segment_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      ABSL_DCHECK(this_._impl_.exit_ != nullptr);
      this_._impl_.exit_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL MIDIMappingBusProto::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const MIDIMappingBusProto& this_ = static_cast<const MIDIMappingBusProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL MIDIMappingBusProto::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const MIDIMappingBusProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:MIDIMappingBusProto)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .MIDIControllerProto treble = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.treble_, this_._impl_.treble_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIControllerProto mid = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.mid_, this_._impl_.mid_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIControllerProto bass = 4;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.bass_, this_._impl_.bass_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIControllerProto gain = 5;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        5, *this_._impl_.gain_, this_._impl_.gain_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIControllerProto compressor_threshold = 6;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        6, *this_._impl_.compressor_threshold_, this_._impl_.compressor_threshold_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIControllerProto fader = 7;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        7, *this_._impl_.fader_, this_._impl_.fader_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIButtonProto toggle_mute = 8;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        8, *this_._impl_.toggle_mute_, this_._impl_.toggle_mute_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIButtonProto toggle_locut = 9;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        9, *this_._impl_.toggle_locut_, this_._impl_.toggle_locut_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIButtonProto toggle_auto_gain_staging = 10;
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.toggle_auto_gain_staging_, this_._impl_.toggle_auto_gain_staging_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIButtonProto toggle_compressor = 11;
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        11, *this_._impl_.toggle_compressor_, this_._impl_.toggle_compressor_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIButtonProto clear_peak = 12;
  if (CheckHasBit(cached_has_bits, 0x00000400U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        12, *this_._impl_.clear_peak_, this_._impl_.clear_peak_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIButtonProto prev_bank = 13;
  if (CheckHasBit(cached_has_bits, 0x00000800U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        13, *this_._impl_.prev_bank_, this_._impl_.prev_bank_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIButtonProto next_bank = 14;
  if (CheckHasBit(cached_has_bits, 0x00001000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        14, *this_._impl_.next_bank_, this_._impl_.next_bank_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIButtonProto select_bank_1 = 15;
  if (CheckHasBit(cached_has_bits, 0x00002000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        15, *this_._impl_.select_bank_1_, this_._impl_.select_bank_1_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIButtonProto select_bank_2 = 16;
  if (CheckHasBit(cached_has_bits, 0x00004000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        16, *this_._impl_.select_bank_2_, this_._impl_.select_bank_2_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIButtonProto select_bank_3 = 17;
  if (CheckHasBit(cached_has_bits, 0x00008000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        17, *this_._impl_.select_bank_3_, this_._impl_.select_bank_3_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIButtonProto select_bank_4 = 18;
  if (CheckHasBit(cached_has_bits, 0x00010000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        18, *this_._impl_.select_bank_4_, this_._impl_.select_bank_4_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIButtonProto select_bank_5 = 19;
  if (CheckHasBit(cached_has_bits, 0x00020000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        19, *this_._impl_.select_bank_5_, this_._impl_.select_bank_5_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIButtonProto toggle_limiter = 20;
  if (CheckHasBit(cached_has_bits, 0x00040000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        20, *this_._impl_.toggle_limiter_, this_._impl_.toggle_limiter_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIButtonProto toggle_auto_makeup_gain = 21;
  if (CheckHasBit(cached_has_bits, 0x00080000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        21, *this_._impl_.toggle_auto_makeup_gain_, this_._impl_.toggle_auto_makeup_gain_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIControllerProto locut = 22;
  if (CheckHasBit(cached_has_bits, 0x00100000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        22, *this_._impl_.locut_, this_._impl_.locut_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIControllerProto limiter_threshold = 23;
  if (CheckHasBit(cached_has_bits, 0x00200000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        23, *this_._impl_.limiter_threshold_, this_._impl_.limiter_threshold_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIControllerProto makeup_gain = 24;
  if (CheckHasBit(cached_has_bits, 0x00400000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        24, *this_._impl_.makeup_gain_, this_._impl_.makeup_gain_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDILightProto is_muted = 25;
  if (CheckHasBit(cached_has_bits, 0x00800000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        25, *this_._impl_.is_muted_, this_._impl_.is_muted_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDILightProto locut_is_on = 26;
  if (CheckHasBit(cached_has_bits, 0x01000000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        26, *this_._impl_.locut_is_on_, this_._impl_.locut_is_on_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDILightProto auto_gain_staging_is_on = 27;
  if (CheckHasBit(cached_has_bits, 0x02000000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        27, *this_._impl_.auto_gain_staging_is_on_, this_._impl_.auto_gain_staging_is_on_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDILightProto compressor_is_on = 28;
  if (CheckHasBit(cached_has_bits, 0x04000000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        28, *this_._impl_.compressor_is_on_, this_._impl_.compressor_is_on_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDILightProto has_peaked = 29;
  if (CheckHasBit(cached_has_bits, 0x08000000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        29, *this_._impl_.has_peaked_, this_._impl_.has_peaked_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDILightProto bank_1_is_selected = 30;
  if (CheckHasBit(cached_has_bits, 0x10000000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        30, *this_._impl_.bank_1_is_selected_, this_._impl_.bank_1_is_selected_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDILightProto bank_2_is_selected = 31;
  if (CheckHasBit(cached_has_bits, 0x20000000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        31, *this_._impl_.bank_2_is_selected_, this_._impl_.bank_2_is_selected_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDILightProto bank_3_is_selected = 32;
  if (CheckHasBit(cached_has_bits, 0x40000000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        32, *this_._impl_.bank_3_is_selected_, this_._impl_.bank_3_is_selected_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDILightProto bank_4_is_selected = 33;
  if (CheckHasBit(cached_has_bits, 0x80000000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        33, *this_._impl_.bank_4_is_selected_, this_._impl_.bank_4_is_selected_->GetCachedSize(), target,
        stream);
  }

  cached_has_bits = this_._impl_._has_bits_[1];
  // optional .MIDILightProto bank_5_is_selected = 34;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        34, *this_._impl_.bank_5_is_selected_, this_._impl_.bank_5_is_selected_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDILightProto limiter_is_on = 35;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        35, *this_._impl_.limiter_is_on_, this_._impl_.limiter_is_on_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDILightProto auto_makeup_gain_is_on = 36;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        36, *this_._impl_.auto_makeup_gain_is_on_, this_._impl_.auto_makeup_gain_is_on_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIControllerProto stereo_width = 37;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        37, *this_._impl_.stereo_width_, this_._impl_.stereo_width_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIButtonProto switch_video_channel = 38;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        38, *this_._impl_.switch_video_channel_, this_._impl_.switch_video_channel_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIButtonProto apply_transition = 39;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        39, *this_._impl_.apply_transition_, this_._impl_.apply_transition_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIButtonProto prev_audio_view = 40;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        40, *this_._impl_.prev_audio_view_, this_._impl_.prev_audio_view_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIButtonProto next_audio_view = 41;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        41, *this_._impl_.next_audio_view_, this_._impl_.next_audio_view_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIButtonProto begin_new_video_segment = 42;
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        42, *this_._impl_.begin_new_video_segment_, this_._impl_.begin_new_video_segment_->GetCachedSize(), target,
        stream);
  }

  // optional .MIDIButtonProto exit = 43;
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        43, *this_._impl_.exit_, this_._impl_.exit_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:MIDIMappingBusProto)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t MIDIMappingBusProto::ByteSizeLong(const MessageLite& base) {
  const MIDIMappingBusProto& this_ = static_cast<const MIDIMappingBusProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t MIDIMappingBusProto::ByteSizeLong() const {
  const MIDIMappingBusProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:MIDIMappingBusProto)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits [[maybe_unused]] = 0;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    // optional .MIDIControllerProto treble = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.treble_);
    }
    // optional .MIDIControllerProto mid = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.mid_);
    }
    // optional .MIDIControllerProto bass = 4;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.bass_);
    }
    // optional .MIDIControllerProto gain = 5;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.gain_);
    }
    // optional .MIDIControllerProto compressor_threshold = 6;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.compressor_threshold_);
    }
    // optional .MIDIControllerProto fader = 7;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.fader_);
    }
    // optional .MIDIButtonProto toggle_mute = 8;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.toggle_mute_);
    }
    // optional .MIDIButtonProto toggle_locut = 9;
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.toggle_locut_);
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    // optional .MIDIButtonProto toggle_auto_gain_staging = 10;
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.toggle_auto_gain_staging_);
    }
    // optional .MIDIButtonProto toggle_compressor = 11;
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.toggle_compressor_);
    }
    // optional .MIDIButtonProto clear_peak = 12;
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.clear_peak_);
    }
    // optional .MIDIButtonProto prev_bank = 13;
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.prev_bank_);
    }
    // optional .MIDIButtonProto next_bank = 14;
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.next_bank_);
    }
    // optional .MIDIButtonProto select_bank_1 = 15;
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.select_bank_1_);
    }
    // optional .MIDIButtonProto select_bank_2 = 16;
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.select_bank_2_);
    }
    // optional .MIDIButtonProto select_bank_3 = 17;
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.select_bank_3_);
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
    // optional .MIDIButtonProto select_bank_4 = 18;
    if (CheckHasBit(cached_has_bits, 0x00010000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.select_bank_4_);
    }
    // optional .MIDIButtonProto select_bank_5 = 19;
    if (CheckHasBit(cached_has_bits, 0x00020000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.select_bank_5_);
    }
    // optional .MIDIButtonProto toggle_limiter = 20;
    if (CheckHasBit(cached_has_bits, 0x00040000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.toggle_limiter_);
    }
    // optional .MIDIButtonProto toggle_auto_makeup_gain = 21;
    if (CheckHasBit(cached_has_bits, 0x00080000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.toggle_auto_makeup_gain_);
    }
    // optional .MIDIControllerProto locut = 22;
    if (CheckHasBit(cached_has_bits, 0x00100000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.locut_);
    }
    // optional .MIDIControllerProto limiter_threshold = 23;
    if (CheckHasBit(cached_has_bits, 0x00200000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.limiter_threshold_);
    }
    // optional .MIDIControllerProto makeup_gain = 24;
    if (CheckHasBit(cached_has_bits, 0x00400000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.makeup_gain_);
    }
    // optional .MIDILightProto is_muted = 25;
    if (CheckHasBit(cached_has_bits, 0x00800000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.is_muted_);
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
    // optional .MIDILightProto locut_is_on = 26;
    if (CheckHasBit(cached_has_bits, 0x01000000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.locut_is_on_);
    }
    // optional .MIDILightProto auto_gain_staging_is_on = 27;
    if (CheckHasBit(cached_has_bits, 0x02000000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.auto_gain_staging_is_on_);
    }
    // optional .MIDILightProto compressor_is_on = 28;
    if (CheckHasBit(cached_has_bits, 0x04000000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.compressor_is_on_);
    }
    // optional .MIDILightProto has_peaked = 29;
    if (CheckHasBit(cached_has_bits, 0x08000000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.has_peaked_);
    }
    // optional .MIDILightProto bank_1_is_selected = 30;
    if (CheckHasBit(cached_has_bits, 0x10000000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.bank_1_is_selected_);
    }
    // optional .MIDILightProto bank_2_is_selected = 31;
    if (CheckHasBit(cached_has_bits, 0x20000000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.bank_2_is_selected_);
    }
    // optional .MIDILightProto bank_3_is_selected = 32;
    if (CheckHasBit(cached_has_bits, 0x40000000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.bank_3_is_selected_);
    }
    // optional .MIDILightProto bank_4_is_selected = 33;
    if (CheckHasBit(cached_has_bits, 0x80000000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.bank_4_is_selected_);
    }
  }
  cached_has_bits = this_._impl_._has_bits_[1];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    // optional .MIDILightProto bank_5_is_selected = 34;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.bank_5_is_selected_);
    }
    // optional .MIDILightProto limiter_is_on = 35;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.limiter_is_on_);
    }
    // optional .MIDILightProto auto_makeup_gain_is_on = 36;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.auto_makeup_gain_is_on_);
    }
    // optional .MIDIControllerProto stereo_width = 37;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.stereo_width_);
    }
    // optional .MIDIButtonProto switch_video_channel = 38;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.switch_video_channel_);
    }
    // optional .MIDIButtonProto apply_transition = 39;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.apply_transition_);
    }
    // optional .MIDIButtonProto prev_audio_view = 40;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.prev_audio_view_);
    }
    // optional .MIDIButtonProto next_audio_view = 41;
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.next_audio_view_);
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000300U)) {
    // optional .MIDIButtonProto begin_new_video_segment = 42;
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.begin_new_video_segment_);
    }
    // optional .MIDIButtonProto exit = 43;
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.exit_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void MIDIMappingBusProto::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<MIDIMappingBusProto*>(&to_msg);
  auto& from = static_cast<const MIDIMappingBusProto&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:MIDIMappingBusProto)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.treble_ != nullptr);
      if (_this->_impl_.treble_ == nullptr) {
        _this->_impl_.treble_ = Super_::CopyConstruct(arena, *from._impl_.treble_);
      } else {
        _this->_impl_.treble_->MergeFrom(*from._impl_.treble_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.mid_ != nullptr);
      if (_this->_impl_.mid_ == nullptr) {
        _this->_impl_.mid_ = Super_::CopyConstruct(arena, *from._impl_.mid_);
      } else {
        _this->_impl_.mid_->MergeFrom(*from._impl_.mid_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.bass_ != nullptr);
      if (_this->_impl_.bass_ == nullptr) {
        _this->_impl_.bass_ = Super_::CopyConstruct(arena, *from._impl_.bass_);
      } else {
        _this->_impl_.bass_->MergeFrom(*from._impl_.bass_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.gain_ != nullptr);
      if (_this->_impl_.gain_ == nullptr) {
        _this->_impl_.gain_ = Super_::CopyConstruct(arena, *from._impl_.gain_);
      } else {
        _this->_impl_.gain_->MergeFrom(*from._impl_.gain_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(from._impl_.compressor_threshold_ != nullptr);
      if (_this->_impl_.compressor_threshold_ == nullptr) {
        _this->_impl_.compressor_threshold_ = Super_::CopyConstruct(arena, *from._impl_.compressor_threshold_);
      } else {
        _this->_impl_.compressor_threshold_->MergeFrom(*from._impl_.compressor_threshold_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(from._impl_.fader_ != nullptr);
      if (_this->_impl_.fader_ == nullptr) {
        _this->_impl_.fader_ = Super_::CopyConstruct(arena, *from._impl_.fader_);
      } else {
        _this->_impl_.fader_->MergeFrom(*from._impl_.fader_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(from._impl_.toggle_mute_ != nullptr);
      if (_this->_impl_.toggle_mute_ == nullptr) {
        _this->_impl_.toggle_mute_ = Super_::CopyConstruct(arena, *from._impl_.toggle_mute_);
      } else {
        _this->_impl_.toggle_mute_->MergeFrom(*from._impl_.toggle_mute_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      ABSL_DCHECK(from._impl_.toggle_locut_ != nullptr);
      if (_this->_impl_.toggle_locut_ == nullptr) {
        _this->_impl_.toggle_locut_ = Super_::CopyConstruct(arena, *from._impl_.toggle_locut_);
      } else {
        _this->_impl_.toggle_locut_->MergeFrom(*from._impl_.toggle_locut_);
      }
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      ABSL_DCHECK(from._impl_.toggle_auto_gain_staging_ != nullptr);
      if (_this->_impl_.toggle_auto_gain_staging_ == nullptr) {
        _this->_impl_.toggle_auto_gain_staging_ = Super_::CopyConstruct(arena, *from._impl_.toggle_auto_gain_staging_);
      } else {
        _this->_impl_.toggle_auto_gain_staging_->MergeFrom(*from._impl_.toggle_auto_gain_staging_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      ABSL_DCHECK(from._impl_.toggle_compressor_ != nullptr);
      if (_this->_impl_.toggle_compressor_ == nullptr) {
        _this->_impl_.toggle_compressor_ = Super_::CopyConstruct(arena, *from._impl_.toggle_compressor_);
      } else {
        _this->_impl_.toggle_compressor_->MergeFrom(*from._impl_.toggle_compressor_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      ABSL_DCHECK(from._impl_.clear_peak_ != nullptr);
      if (_this->_impl_.clear_peak_ == nullptr) {
        _this->_impl_.clear_peak_ = Super_::CopyConstruct(arena, *from._impl_.clear_peak_);
      } else {
        _this->_impl_.clear_peak_->MergeFrom(*from._impl_.clear_peak_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      ABSL_DCHECK(from._impl_.prev_bank_ != nullptr);
      if (_this->_impl_.prev_bank_ == nullptr) {
        _this->_impl_.prev_bank_ = Super_::CopyConstruct(arena, *from._impl_.prev_bank_);
      } else {
        _this->_impl_.prev_bank_->MergeFrom(*from._impl_.prev_bank_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      ABSL_DCHECK(from._impl_.next_bank_ != nullptr);
      if (_this->_impl_.next_bank_ == nullptr) {
        _this->_impl_.next_bank_ = Super_::CopyConstruct(arena, *from._impl_.next_bank_);
      } else {
        _this->_impl_.next_bank_->MergeFrom(*from._impl_.next_bank_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      ABSL_DCHECK(from._impl_.select_bank_1_ != nullptr);
      if (_this->_impl_.select_bank_1_ == nullptr) {
        _this->_impl_.select_bank_1_ = Super_::CopyConstruct(arena, *from._impl_.select_bank_1_);
      } else {
        _this->_impl_.select_bank_1_->MergeFrom(*from._impl_.select_bank_1_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      ABSL_DCHECK(from._impl_.select_bank_2_ != nullptr);
      if (_this->_impl_.select_bank_2_ == nullptr) {
        _this->_impl_.select_bank_2_ = Super_::CopyConstruct(arena, *from._impl_.select_bank_2_);
      } else {
        _this->_impl_.select_bank_2_->MergeFrom(*from._impl_.select_bank_2_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      ABSL_DCHECK(from._impl_.select_bank_3_ != nullptr);
      if (_this->_impl_.select_bank_3_ == nullptr) {
        _this->_impl_.select_bank_3_ = Super_::CopyConstruct(arena, *from._impl_.select_bank_3_);
      } else {
        _this->_impl_.select_bank_3_->MergeFrom(*from._impl_.select_bank_3_);
      }
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
    if (CheckHasBit(cached_has_bits, 0x00010000U)) {
      ABSL_DCHECK(from._impl_.select_bank_4_ != nullptr);
      if (_this->_impl_.select_bank_4_ == nullptr) {
        _this->_impl_.select_bank_4_ = Super_::CopyConstruct(arena, *from._impl_.select_bank_4_);
      } else {
        _this->_impl_.select_bank_4_->MergeFrom(*from._impl_.select_bank_4_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00020000U)) {
      ABSL_DCHECK(from._impl_.select_bank_5_ != nullptr);
      if (_this->_impl_.select_bank_5_ == nullptr) {
        _this->_impl_.select_bank_5_ = Super_::CopyConstruct(arena, *from._impl_.select_bank_5_);
      } else {
        _this->_impl_.select_bank_5_->MergeFrom(*from._impl_.select_bank_5_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00040000U)) {
      ABSL_DCHECK(from._impl_.toggle_limiter_ != nullptr);
      if (_this->_impl_.toggle_limiter_ == nullptr) {
        _this->_impl_.toggle_limiter_ = Super_::CopyConstruct(arena, *from._impl_.toggle_limiter_);
      } else {
        _this->_impl_.toggle_limiter_->MergeFrom(*from._impl_.toggle_limiter_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00080000U)) {
      ABSL_DCHECK(from._impl_.toggle_auto_makeup_gain_ != nullptr);
      if (_this->_impl_.toggle_auto_makeup_gain_ == nullptr) {
        _this->_impl_.toggle_auto_makeup_gain_ = Super_::CopyConstruct(arena, *from._impl_.toggle_auto_makeup_gain_);
      } else {
        _this->_impl_.toggle_auto_makeup_gain_->MergeFrom(*from._impl_.toggle_auto_makeup_gain_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00100000U)) {
      ABSL_DCHECK(from._impl_.locut_ != nullptr);
      if (_this->_impl_.locut_ == nullptr) {
        _this->_impl_.locut_ = Super_::CopyConstruct(arena, *from._impl_.locut_);
      } else {
        _this->_impl_.locut_->MergeFrom(*from._impl_.locut_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00200000U)) {
      ABSL_DCHECK(from._impl_.limiter_threshold_ != nullptr);
      if (_this->_impl_.limiter_threshold_ == nullptr) {
        _this->_impl_.limiter_threshold_ = Super_::CopyConstruct(arena, *from._impl_.limiter_threshold_);
      } else {
        _this->_impl_.limiter_threshold_->MergeFrom(*from._impl_.limiter_threshold_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00400000U)) {
      ABSL_DCHECK(from._impl_.makeup_gain_ != nullptr);
      if (_this->_impl_.makeup_gain_ == nullptr) {
        _this->_impl_.makeup_gain_ = Super_::CopyConstruct(arena, *from._impl_.makeup_gain_);
      } else {
        _this->_impl_.makeup_gain_->MergeFrom(*from._impl_.makeup_gain_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00800000U)) {
      ABSL_DCHECK(from._impl_.is_muted_ != nullptr);
      if (_this->_impl_.is_muted_ == nullptr) {
        _this->_impl_.is_muted_ = Super_::CopyConstruct(arena, *from._impl_.is_muted_);
      } else {
        _this->_impl_.is_muted_->MergeFrom(*from._impl_.is_muted_);
      }
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
    if (CheckHasBit(cached_has_bits, 0x01000000U)) {
      ABSL_DCHECK(from._impl_.locut_is_on_ != nullptr);
      if (_this->_impl_.locut_is_on_ == nullptr) {
        _this->_impl_.locut_is_on_ = Super_::CopyConstruct(arena, *from._impl_.locut_is_on_);
      } else {
        _this->_impl_.locut_is_on_->MergeFrom(*from._impl_.locut_is_on_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x02000000U)) {
      ABSL_DCHECK(from._impl_.auto_gain_staging_is_on_ != nullptr);
      if (_this->_impl_.auto_gain_staging_is_on_ == nullptr) {
        _this->_impl_.auto_gain_staging_is_on_ = Super_::CopyConstruct(arena, *from._impl_.auto_gain_staging_is_on_);
      } else {
        _this->_impl_.auto_gain_staging_is_on_->MergeFrom(*from._impl_.auto_gain_staging_is_on_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x04000000U)) {
      ABSL_DCHECK(from._impl_.compressor_is_on_ != nullptr);
      if (_this->_impl_.compressor_is_on_ == nullptr) {
        _this->_impl_.compressor_is_on_ = Super_::CopyConstruct(arena, *from._impl_.compressor_is_on_);
      } else {
        _this->_impl_.compressor_is_on_->MergeFrom(*from._impl_.compressor_is_on_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x08000000U)) {
      ABSL_DCHECK(from._impl_.has_peaked_ != nullptr);
      if (_this->_impl_.has_peaked_ == nullptr) {
        _this->_impl_.has_peaked_ = Super_::CopyConstruct(arena, *from._impl_.has_peaked_);
      } else {
        _this->_impl_.has_peaked_->MergeFrom(*from._impl_.has_peaked_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x10000000U)) {
      ABSL_DCHECK(from._impl_.bank_1_is_selected_ != nullptr);
      if (_this->_impl_.bank_1_is_selected_ == nullptr) {
        _this->_impl_.bank_1_is_selected_ = Super_::CopyConstruct(arena, *from._impl_.bank_1_is_selected_);
      } else {
        _this->_impl_.bank_1_is_selected_->MergeFrom(*from._impl_.bank_1_is_selected_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x20000000U)) {
      ABSL_DCHECK(from._impl_.bank_2_is_selected_ != nullptr);
      if (_this->_impl_.bank_2_is_selected_ == nullptr) {
        _this->_impl_.bank_2_is_selected_ = Super_::CopyConstruct(arena, *from._impl_.bank_2_is_selected_);
      } else {
        _this->_impl_.bank_2_is_selected_->MergeFrom(*from._impl_.bank_2_is_selected_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x40000000U)) {
      ABSL_DCHECK(from._impl_.bank_3_is_selected_ != nullptr);
      if (_this->_impl_.bank_3_is_selected_ == nullptr) {
        _this->_impl_.bank_3_is_selected_ = Super_::CopyConstruct(arena, *from._impl_.bank_3_is_selected_);
      } else {
        _this->_impl_.bank_3_is_selected_->MergeFrom(*from._impl_.bank_3_is_selected_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x80000000U)) {
      ABSL_DCHECK(from._impl_.bank_4_is_selected_ != nullptr);
      if (_this->_impl_.bank_4_is_selected_ == nullptr) {
        _this->_impl_.bank_4_is_selected_ = Super_::CopyConstruct(arena, *from._impl_.bank_4_is_selected_);
      } else {
        _this->_impl_.bank_4_is_selected_->MergeFrom(*from._impl_.bank_4_is_selected_);
      }
    }
  }
  cached_has_bits = from._impl_._has_bits_[1];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.bank_5_is_selected_ != nullptr);
      if (_this->_impl_.bank_5_is_selected_ == nullptr) {
        _this->_impl_.bank_5_is_selected_ = Super_::CopyConstruct(arena, *from._impl_.bank_5_is_selected_);
      } else {
        _this->_impl_.bank_5_is_selected_->MergeFrom(*from._impl_.bank_5_is_selected_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.limiter_is_on_ != nullptr);
      if (_this->_impl_.limiter_is_on_ == nullptr) {
        _this->_impl_.limiter_is_on_ = Super_::CopyConstruct(arena, *from._impl_.limiter_is_on_);
      } else {
        _this->_impl_.limiter_is_on_->MergeFrom(*from._impl_.limiter_is_on_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.auto_makeup_gain_is_on_ != nullptr);
      if (_this->_impl_.auto_makeup_gain_is_on_ == nullptr) {
        _this->_impl_.auto_makeup_gain_is_on_ = Super_::CopyConstruct(arena, *from._impl_.auto_makeup_gain_is_on_);
      } else {
        _this->_impl_.auto_makeup_gain_is_on_->MergeFrom(*from._impl_.auto_makeup_gain_is_on_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.stereo_width_ != nullptr);
      if (_this->_impl_.stereo_width_ == nullptr) {
        _this->_impl_.stereo_width_ = Super_::CopyConstruct(arena, *from._impl_.stereo_width_);
      } else {
        _this->_impl_.stereo_width_->MergeFrom(*from._impl_.stereo_width_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(from._impl_.switch_video_channel_ != nullptr);
      if (_this->_impl_.switch_video_channel_ == nullptr) {
        _this->_impl_.switch_video_channel_ = Super_::CopyConstruct(arena, *from._impl_.switch_video_channel_);
      } else {
        _this->_impl_.switch_video_channel_->MergeFrom(*from._impl_.switch_video_channel_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(from._impl_.apply_transition_ != nullptr);
      if (_this->_impl_.apply_transition_ == nullptr) {
        _this->_impl_.apply_transition_ = Super_::CopyConstruct(arena, *from._impl_.apply_transition_);
      } else {
        _this->_impl_.apply_transition_->MergeFrom(*from._impl_.apply_transition_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(from._impl_.prev_audio_view_ != nullptr);
      if (_this->_impl_.prev_audio_view_ == nullptr) {
        _this->_impl_.prev_audio_view_ = Super_::CopyConstruct(arena, *from._impl_.prev_audio_view_);
      } else {
        _this->_impl_.prev_audio_view_->MergeFrom(*from._impl_.prev_audio_view_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      ABSL_DCHECK(from._impl_.next_audio_view_ != nullptr);
      if (_this->_impl_.next_audio_view_ == nullptr) {
        _this->_impl_.next_audio_view_ = Super_::CopyConstruct(arena, *from._impl_.next_audio_view_);
      } else {
        _this->_impl_.next_audio_view_->MergeFrom(*from._impl_.next_audio_view_);
      }
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000300U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      ABSL_DCHECK(from._impl_.begin_new_video_segment_ != nullptr);
      if (_this->_impl_.begin_new_video_segment_ == nullptr) {
        _this->_impl_.begin_new_video_segment_ = Super_::CopyConstruct(arena, *from._impl_.begin_new_video_segment_);
      } else {
        _this->_impl_.begin_new_video_segment_->MergeFrom(*from._impl_.begin_new_video_segment_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      ABSL_DCHECK(from._impl_.exit_ != nullptr);
      if (_this->_impl_.exit_ == nullptr) {
        _this->_impl_.exit_ = Super_::CopyConstruct(arena, *from._impl_.exit_);
      } else {
        _this->_impl_.exit_->MergeFrom(*from._impl_.exit_);
      }
    }
  }
  _this->_impl_._has_bits_.Or(from._impl_._has_bits_);
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void MIDIMappingBusProto::CopyFrom(const MIDIMappingBusProto& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:MIDIMappingBusProto)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

PROTOBUF_NOINLINE bool MIDIMappingBusProto::IsInitializedImpl(
    const MessageLite& msg) {
  auto& this_ = static_cast<const MIDIMappingBusProto&>(msg);
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00000001U)) {
    if (!this_._impl_.treble_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00000002U)) {
    if (!this_._impl_.mid_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00000004U)) {
    if (!this_._impl_.bass_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00000008U)) {
    if (!this_._impl_.gain_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00000010U)) {
    if (!this_._impl_.compressor_threshold_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00000020U)) {
    if (!this_._impl_.fader_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00000040U)) {
    if (!this_._impl_.toggle_mute_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00000080U)) {
    if (!this_._impl_.toggle_locut_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00000100U)) {
    if (!this_._impl_.toggle_auto_gain_staging_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00000200U)) {
    if (!this_._impl_.toggle_compressor_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00000400U)) {
    if (!this_._impl_.clear_peak_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00000800U)) {
    if (!this_._impl_.prev_bank_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00001000U)) {
    if (!this_._impl_.next_bank_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00002000U)) {
    if (!this_._impl_.select_bank_1_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00004000U)) {
    if (!this_._impl_.select_bank_2_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00008000U)) {
    if (!this_._impl_.select_bank_3_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00010000U)) {
    if (!this_._impl_.select_bank_4_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00020000U)) {
    if (!this_._impl_.select_bank_5_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00040000U)) {
    if (!this_._impl_.toggle_limiter_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00080000U)) {
    if (!this_._impl_.toggle_auto_makeup_gain_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00100000U)) {
    if (!this_._impl_.locut_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00200000U)) {
    if (!this_._impl_.limiter_threshold_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00400000U)) {
    if (!this_._impl_.makeup_gain_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x00800000U)) {
    if (!this_._impl_.is_muted_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x01000000U)) {
    if (!this_._impl_.locut_is_on_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x02000000U)) {
    if (!this_._impl_.auto_gain_staging_is_on_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x04000000U)) {
    if (!this_._impl_.compressor_is_on_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x08000000U)) {
    if (!this_._impl_.has_peaked_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x10000000U)) {
    if (!this_._impl_.bank_1_is_selected_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x20000000U)) {
    if (!this_._impl_.bank_2_is_selected_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x40000000U)) {
    if (!this_._impl_.bank_3_is_selected_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[0], 0x80000000U)) {
    if (!this_._impl_.bank_4_is_selected_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[1], 0x00000001U)) {
    if (!this_._impl_.bank_5_is_selected_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[1], 0x00000002U)) {
    if (!this_._impl_.limiter_is_on_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[1], 0x00000004U)) {
    if (!this_._impl_.auto_makeup_gain_is_on_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[1], 0x00000008U)) {
    if (!this_._impl_.stereo_width_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[1], 0x00000010U)) {
    if (!this_._impl_.switch_video_channel_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[1], 0x00000020U)) {
    if (!this_._impl_.apply_transition_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[1], 0x00000040U)) {
    if (!this_._impl_.prev_audio_view_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[1], 0x00000080U)) {
    if (!this_._impl_.next_audio_view_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[1], 0x00000100U)) {
    if (!this_._impl_.begin_new_video_segment_->IsInitialized()) return false;
  }
  if (CheckHasBit(this_._impl_._has_bits_[1], 0x00000200U)) {
    if (!this_._impl_.exit_->IsInitialized()) return false;
  }
  return true;
}

void MIDIMappingBusProto::InternalSwap(MIDIMappingBusProto* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_._has_bits_[1], other->_impl_._has_bits_[1]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.exit_)
      + sizeof(MIDIMappingBusProto::_impl_.exit_)
      - PROTOBUF_FIELD_OFFSET(MIDIMappingBusProto, _impl_.treble_)>(
          reinterpret_cast<char*>(&_impl_.treble_),
          reinterpret_cast<char*>(&other->_impl_.treble_));
}

::google::protobuf::Metadata MIDIMappingBusProto::GetMetadata() const {
  return Super_::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

MIDIMappingProto::MIDIMappingProto(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : Super_(arena, MIDIMappingProto_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : Super_(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:MIDIMappingProto)
}
PROTOBUF_NDEBUG_INLINE MIDIMappingProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::MIDIMappingProto& from_msg)
      : _has_bits_{from._has_bits_},
        bus_mapping_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::MIDIMappingProto,
              PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.bus_mapping_)>()
          , arena, from.bus_mapping_
        }
     {}

MIDIMappingProto::MIDIMappingProto(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const MIDIMappingProto& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : Super_(arena, MIDIMappingProto_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : Super_(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  MIDIMappingProto* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, num_controller_banks_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, num_controller_banks_),
           offsetof(Impl_, apply_transition_bank_) -
               offsetof(Impl_, num_controller_banks_) +
               sizeof(Impl_::apply_transition_bank_));

  // @@protoc_insertion_point(copy_constructor:MIDIMappingProto)
}
PROTOBUF_NDEBUG_INLINE MIDIMappingProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : bus_mapping_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::MIDIMappingProto,
            PROTOBUF_FIELD_OFFSET(::MIDIMappingProto, _impl_.bus_mapping_)>()
         }
     {}

inline void MIDIMappingProto::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, num_controller_banks_),
           0,
           offsetof(Impl_, apply_transition_bank_) -
               offsetof(Impl_, num_controller_banks_) +
               sizeof(Impl_::apply_transition_bank_));
}
MIDIMappingProto::~MIDIMappingProto() {
  // @@protoc_insertion_point(destructor:MIDIMappingProto)
  SharedDtor(*this);
}
inline void MIDIMappingProto::SharedDtor(MessageLite& self) {
  MIDIMappingProto& this_ = static_cast<MIDIMappingProto&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull MIDIMappingProto_class_data_ =
        MIDIMappingProto::InternalGenerateClassData_(MIDIMappingProto_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MIDIMappingProto::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MIDIMappingProto_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(MIDIMappingProto_class_data_.tc_table);
  return MIDIMappingProto_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MIDIMappingProto::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MIDIMappingProto_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&MIDIMappingProto_globals_));
  return MIDIMappingProto_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const MIDIMappingProto::ParseTableT_
    MIDIMappingProto::_table_ =
        MIDIMappingProto::InternalGenerateParseTable_(MIDIMappingProto_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void MIDIMappingProto::Clear() {
  auto& this_ [[maybe_unused]] = *this;
  // @@protoc_insertion_point(message_clear_start:MIDIMappingProto)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits [[maybe_unused]] = 0;

  cached_has_bits = this_._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.bus_mapping_.Clear();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x000000feU)) {
    ::memset(&this_._impl_.num_controller_banks_, 0,
             static_cast<::size_t>(
                 reinterpret_cast<char*>(&this_._impl_.fader_bank_) -
                 reinterpret_cast<char*>(&this_._impl_.num_controller_banks_)) +
                 sizeof(_impl_.fader_bank_));
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    ::memset(&this_._impl_.toggle_mute_bank_, 0,
             static_cast<::size_t>(
                 reinterpret_cast<char*>(&this_._impl_.makeup_gain_bank_) -
                 reinterpret_cast<char*>(&this_._impl_.toggle_mute_bank_)) +
                 sizeof(_impl_.makeup_gain_bank_));
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
    ::memset(&this_._impl_.toggle_limiter_bank_, 0,
             static_cast<::size_t>(
                 reinterpret_cast<char*>(&this_._impl_.switch_video_channel_bank_) -
                 reinterpret_cast<char*>(&this_._impl_.toggle_limiter_bank_)) +
                 sizeof(_impl_.switch_video_channel_bank_));
  }
  this_._impl_.apply_transition_bank_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL MIDIMappingProto::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const MIDIMappingProto& this_ = static_cast<const MIDIMappingProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL MIDIMappingProto::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const MIDIMappingProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:MIDIMappingProto)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional int32 num_controller_banks = 1 [default = 0];
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
            stream, this_._internal_num_controller_banks(), target);
  }

  // optional int32 treble_bank = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_treble_bank(), target);
  }

  // optional int32 mid_bank = 3;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
            stream, this_._internal_mid_bank(), target);
  }

  // optional int32 bass_bank = 4;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<4>(
            stream, this_._internal_bass_bank(), target);
  }

  // optional int32 gain_bank = 5;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<5>(
            stream, this_._internal_gain_bank(), target);
  }

  // optional int32 compressor_threshold_bank = 6;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<6>(
            stream, this_._internal_compressor_threshold_bank(), target);
  }

  // optional int32 fader_bank = 7;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<7>(
            stream, this_._internal_fader_bank(), target);
  }

  // optional int32 toggle_mute_bank = 8;
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<8>(
            stream, this_._internal_toggle_mute_bank(), target);
  }

  // optional int32 toggle_locut_bank = 9;
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<9>(
            stream, this_._internal_toggle_locut_bank(), target);
  }

  // optional int32 toggle_auto_gain_staging_bank = 10;
  if (CheckHasBit(cached_has_bits, 0x00000400U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<10>(
            stream, this_._internal_toggle_auto_gain_staging_bank(), target);
  }

  // optional int32 toggle_compressor_bank = 11;
  if (CheckHasBit(cached_has_bits, 0x00000800U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<11>(
            stream, this_._internal_toggle_compressor_bank(), target);
  }

  // optional int32 clear_peak_bank = 12;
  if (CheckHasBit(cached_has_bits, 0x00001000U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<12>(
            stream, this_._internal_clear_peak_bank(), target);
  }

  // optional int32 locut_bank = 13;
  if (CheckHasBit(cached_has_bits, 0x00002000U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<13>(
            stream, this_._internal_locut_bank(), target);
  }

  // optional int32 limiter_threshold_bank = 14;
  if (CheckHasBit(cached_has_bits, 0x00004000U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<14>(
            stream, this_._internal_limiter_threshold_bank(), target);
  }

  // optional int32 makeup_gain_bank = 15;
  if (CheckHasBit(cached_has_bits, 0x00008000U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<15>(
            stream, this_._internal_makeup_gain_bank(), target);
  }

  // optional int32 toggle_limiter_bank = 16;
  if (CheckHasBit(cached_has_bits, 0x00010000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        16, this_._internal_toggle_limiter_bank(), target);
  }

  // optional int32 toggle_auto_makeup_gain_bank = 17;
  if (CheckHasBit(cached_has_bits, 0x00020000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        17, this_._internal_toggle_auto_makeup_gain_bank(), target);
  }

  // repeated .MIDIMappingBusProto bus_mapping = 18;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_bus_mapping_size());
         i < n; i++) {
      const auto& repfield = this_._internal_bus_mapping().Get(i);
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          18, repfield, repfield.GetCachedSize(), target,
          stream);
    }
  }

  // optional int32 stereo_width_bank = 19;
  if (CheckHasBit(cached_has_bits, 0x00040000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        19, this_._internal_stereo_width_bank(), target);
  }

  // optional int32 prev_audio_view_bank = 20;
  if (CheckHasBit(cached_has_bits, 0x00080000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        20, this_._internal_prev_audio_view_bank(), target);
  }

  // optional int32 next_audio_view_bank = 21;
  if (CheckHasBit(cached_has_bits, 0x00100000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        21, this_._internal_next_audio_view_bank(), target);
  }

  // optional int32 begin_new_video_segment_bank = 22;
  if (CheckHasBit(cached_has_bits, 0x00200000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        22, this_._internal_begin_new_video_segment_bank(), target);
  }

  // optional int32 exit_bank = 23;
  if (CheckHasBit(cached_has_bits, 0x00400000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        23, this_._internal_exit_bank(), target);
  }

  // optional int32 switch_video_channel_bank = 24;
  if (CheckHasBit(cached_has_bits, 0x00800000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        24, this_._internal_switch_video_channel_bank(), target);
  }

  // optional int32 apply_transition_bank = 25;
  if (CheckHasBit(cached_has_bits, 0x01000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        25, this_._internal_apply_transition_bank(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:MIDIMappingProto)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t MIDIMappingProto::ByteSizeLong(const MessageLite& base) {
  const MIDIMappingProto& this_ = static_cast<const MIDIMappingProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t MIDIMappingProto::ByteSizeLong() const {
  const MIDIMappingProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:MIDIMappingProto)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits [[maybe_unused]] = 0;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    // repeated .MIDIMappingBusProto bus_mapping = 18;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 2UL * this_._internal_bus_mapping_size();
      for (const auto& msg : this_._internal_bus_mapping()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // optional int32 num_controller_banks = 1 [default = 0];
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_num_controller_banks());
    }
    // optional int32 treble_bank = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_treble_bank());
    }
    // optional int32 mid_bank = 3;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_mid_bank());
    }
    // optional int32 bass_bank = 4;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_bass_bank());
    }
    // optional int32 gain_bank = 5;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_gain_bank());
    }
    // optional int32 compressor_threshold_bank = 6;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_compressor_threshold_bank());
    }
    // optional int32 fader_bank = 7;
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_fader_bank());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    // optional int32 toggle_mute_bank = 8;
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_toggle_mute_bank());
    }
    // optional int32 toggle_locut_bank = 9;
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_toggle_locut_bank());
    }
    // optional int32 toggle_auto_gain_staging_bank = 10;
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_toggle_auto_gain_staging_bank());
    }
    // optional int32 toggle_compressor_bank = 11;
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_toggle_compressor_bank());
    }
    // optional int32 clear_peak_bank = 12;
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_clear_peak_bank());
    }
    // optional int32 locut_bank = 13;
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_locut_bank());
    }
    // optional int32 limiter_threshold_bank = 14;
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_limiter_threshold_bank());
    }
    // optional int32 makeup_gain_bank = 15;
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_makeup_gain_bank());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
    // optional int32 toggle_limiter_bank = 16;
    if (CheckHasBit(cached_has_bits, 0x00010000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
                                      this_._internal_toggle_limiter_bank());
    }
    // optional int32 toggle_auto_makeup_gain_bank = 17;
    if (CheckHasBit(cached_has_bits, 0x00020000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
                                      this_._internal_toggle_auto_makeup_gain_bank());
    }
    // optional int32 stereo_width_bank = 19;
    if (CheckHasBit(cached_has_bits, 0x00040000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
                                      this_._internal_stereo_width_bank());
    }
    // optional int32 prev_audio_view_bank = 20;
    if (CheckHasBit(cached_has_bits, 0x00080000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
                                      this_._internal_prev_audio_view_bank());
    }
    // optional int32 next_audio_view_bank = 21;
    if (CheckHasBit(cached_has_bits, 0x00100000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
                                      this_._internal_next_audio_view_bank());
    }
    // optional int32 begin_new_video_segment_bank = 22;
    if (CheckHasBit(cached_has_bits, 0x00200000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
                                      this_._internal_begin_new_video_segment_bank());
    }
    // optional int32 exit_bank = 23;
    if (CheckHasBit(cached_has_bits, 0x00400000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
                                      this_._internal_exit_bank());
    }
    // optional int32 switch_video_channel_bank = 24;
    if (CheckHasBit(cached_has_bits, 0x00800000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
                                      this_._internal_switch_video_channel_bank());
    }
  }
   {
    // optional int32 apply_transition_bank = 25;
    if (CheckHasBit(cached_has_bits, 0x01000000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
                                      this_._internal_apply_transition_bank());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void MIDIMappingProto::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<MIDIMappingProto*>(&to_msg);
  auto& from = static_cast<const MIDIMappingProto&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:MIDIMappingProto)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_bus_mapping()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_bus_mapping());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.num_controller_banks_ = from._impl_.num_controller_banks_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_impl_.treble_bank_ = from._impl_.treble_bank_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.mid_bank_ = from._impl_.mid_bank_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.bass_bank_ = from._impl_.bass_bank_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.gain_bank_ = from._impl_.gain_bank_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_impl_.compressor_threshold_bank_ = from._impl_.compressor_threshold_bank_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _this->_impl_.fader_bank_ = from._impl_.fader_bank_;
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      _this->_impl_.toggle_mute_bank_ = from._impl_.toggle_mute_bank_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      _this->_impl_.toggle_locut_bank_ = from._impl_.toggle_locut_bank_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      _this->_impl_.toggle_auto_gain_staging_bank_ = from._impl_.toggle_auto_gain_staging_bank_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      _this->_impl_.toggle_compressor_bank_ = from._impl_.toggle_compressor_bank_;
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      _this->_impl_.clear_peak_bank_ = from._impl_.clear_peak_bank_;
    }
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      _this->_impl_.locut_bank_ = from._impl_.locut_bank_;
    }
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      _this->_impl_.limiter_threshold_bank_ = from._impl_.limiter_threshold_bank_;
    }
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      _this->_impl_.makeup_gain_bank_ = from._impl_.makeup_gain_bank_;
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
    if (CheckHasBit(cached_has_bits, 0x00010000U)) {
      _this->_impl_.toggle_limiter_bank_ = from._impl_.toggle_limiter_bank_;
    }
    if (CheckHasBit(cached_has_bits, 0x00020000U)) {
      _this->_impl_.toggle_auto_makeup_gain_bank_ = from._impl_.toggle_auto_makeup_gain_bank_;
    }
    if (CheckHasBit(cached_has_bits, 0x00040000U)) {
      _this->_impl_.stereo_width_bank_ = from._impl_.stereo_width_bank_;
    }
    if (CheckHasBit(cached_has_bits, 0x00080000U)) {
      _this->_impl_.prev_audio_view_bank_ = from._impl_.prev_audio_view_bank_;
    }
    if (CheckHasBit(cached_has_bits, 0x00100000U)) {
      _this->_impl_.next_audio_view_bank_ = from._impl_.next_audio_view_bank_;
    }
    if (CheckHasBit(cached_has_bits, 0x00200000U)) {
      _this->_impl_.begin_new_video_segment_bank_ = from._impl_.begin_new_video_segment_bank_;
    }
    if (CheckHasBit(cached_has_bits, 0x00400000U)) {
      _this->_impl_.exit_bank_ = from._impl_.exit_bank_;
    }
    if (CheckHasBit(cached_has_bits, 0x00800000U)) {
      _this->_impl_.switch_video_channel_bank_ = from._impl_.switch_video_channel_bank_;
    }
  }
  if (CheckHasBit(cached_has_bits, 0x01000000U)) {
    _this->_impl_.apply_transition_bank_ = from._impl_.apply_transition_bank_;
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void MIDIMappingProto::CopyFrom(const MIDIMappingProto& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:MIDIMappingProto)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

PROTOBUF_NOINLINE bool MIDIMappingProto::IsInitializedImpl(
    const MessageLite& msg) {
  auto& this_ = static_cast<const MIDIMappingProto&>(msg);
  if (!::google::protobuf::internal::AllAreInitialized(this_._internal_bus_mapping()))
    return false;
  return true;
}

void MIDIMappingProto::InternalSwap(MIDIMappingProto* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.bus_mapping_.InternalSwap(&other->_impl_.bus_mapping_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.apply_transition_bank_)
      + sizeof(MIDIMappingProto::_impl_.apply_transition_bank_)
      - PROTOBUF_FIELD_OFFSET(MIDIMappingProto, _impl_.num_controller_banks_)>(
          reinterpret_cast<char*>(&_impl_.num_controller_banks_),
          reinterpret_cast<char*>(&other->_impl_.num_controller_banks_));
}

::google::protobuf::Metadata MIDIMappingProto::GetMetadata() const {
  return Super_::GetMetadataImpl(GetClassData()->full());
}
// @@protoc_insertion_point(namespace_scope)
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google
// @@protoc_insertion_point(global_scope)
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::std::false_type
    _static_init2_ [[maybe_unused]] =
        (::_pbi::AddDescriptors(&descriptor_table_nageru_5fmidi_5fmapping_2eproto),
         ::std::false_type{});
#include "google/protobuf/port_undef.inc"
