text: // Autogenerated from CppHeaderCreator
  // Created by Sc2ad
  // =========================================================================
  #pragma once
  // Begin includes
  #include "beatsaber-hook/shared/utils/typedefs.h"
  #include "beatsaber-hook/shared/utils/byref.hpp"
  // Including type: UnityEngine.MonoBehaviour
  #include "UnityEngine/MonoBehaviour.hpp"
  // Including type: System.Enum
  #include "System/Enum.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils-methods.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils-properties.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils-fields.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  #include "beatsaber-hook/shared/utils/typedefs-string.hpp"
  // Completed includes
  // Begin forward declares
  // Forward declaring namespace: UnityEngine
  namespace UnityEngine {
    // Forward declaring type: AudioSource
    class AudioSource;
  }
  // Completed forward declares
  // Type namespace: 
  namespace GlobalNamespace {
    // Forward declaring type: OVRMicInput
    class OVRMicInput;
  }
  #include "beatsaber-hook/shared/utils/il2cpp-type-check.hpp"
  NEED_NO_BOX(::GlobalNamespace::OVRMicInput);
  DEFINE_IL2CPP_ARG_TYPE(::GlobalNamespace::OVRMicInput*, "", "OVRMicInput");
  // Type namespace: 
  namespace GlobalNamespace {
    // Size: 0x51
    #pragma pack(push, 1)
    // Autogenerated type: OVRMicInput
    // [TokenAttribute] Offset: FFFFFFFF
    // [RequireComponent] Offset: 6683D8
    class OVRMicInput : public ::UnityEngine::MonoBehaviour {
      public:
      // Nested type: ::GlobalNamespace::OVRMicInput::micActivation
      struct micActivation;
      // Size: 0x4
      #pragma pack(push, 1)
      // Autogenerated type: OVRMicInput/micActivation
      // [TokenAttribute] Offset: FFFFFFFF
      struct micActivation/*, public ::System::Enum*/ {
        public:
        public:
        // public System.Int32 value__
        // Size: 0x4
        // Offset: 0x0
        int value;
        // Field size check
        static_assert(sizeof(int) == 0x4);
        public:
        // Creating value type constructor for type: micActivation
        constexpr micActivation(int value_ = {}) noexcept : value{value_} {}
        // Creating interface conversion operator: operator ::System::Enum
        operator ::System::Enum() noexcept {
          return *reinterpret_cast<::System::Enum*>(this);
        }
        // Creating conversion operator: operator int
        constexpr operator int() const noexcept {
          return value;
        }
        // static field const value: static public OVRMicInput/micActivation HoldToSpeak
        static constexpr const int HoldToSpeak = 0;
        // Get static field: static public OVRMicInput/micActivation HoldToSpeak
        static ::GlobalNamespace::OVRMicInput::micActivation _get_HoldToSpeak();
        // Set static field: static public OVRMicInput/micActivation HoldToSpeak
        static void _set_HoldToSpeak(::GlobalNamespace::OVRMicInput::micActivation value);
        // static field const value: static public OVRMicInput/micActivation PushToSpeak
        static constexpr const int PushToSpeak = 1;
        // Get static field: static public OVRMicInput/micActivation PushToSpeak
        static ::GlobalNamespace::OVRMicInput::micActivation _get_PushToSpeak();
        // Set static field: static public OVRMicInput/micActivation PushToSpeak
        static void _set_PushToSpeak(::GlobalNamespace::OVRMicInput::micActivation value);
        // static field const value: static public OVRMicInput/micActivation ConstantSpeak
        static constexpr const int ConstantSpeak = 2;
        // Get static field: static public OVRMicInput/micActivation ConstantSpeak
        static ::GlobalNamespace::OVRMicInput::micActivation _get_ConstantSpeak();
        // Set static field: static public OVRMicInput/micActivation ConstantSpeak
        static void _set_ConstantSpeak(::GlobalNamespace::OVRMicInput::micActivation value);
        // Get instance field reference: public System.Int32 value__
        int& dyn_value__();
      }; // OVRMicInput/micActivation
      #pragma pack(pop)
      static check_size<sizeof(OVRMicInput::micActivation), 0 + sizeof(int)> __GlobalNamespace_OVRMicInput_micActivationSizeCheck;
      static_assert(sizeof(OVRMicInput::micActivation) == 0x4);
      #ifdef USE_CODEGEN_FIELDS
      public:
      #else
      #ifdef CODEGEN_FIELD_ACCESSIBILITY
      CODEGEN_FIELD_ACCESSIBILITY:
      #else
      protected:
      #endif
      #endif
      // public UnityEngine.AudioSource audioSource
      // Size: 0x8
      // Offset: 0x18
      ::UnityEngine::AudioSource* audioSource;
      // Field size check
      static_assert(sizeof(::UnityEngine::AudioSource*) == 0x8);
      // public System.Boolean GuiSelectDevice
      // Size: 0x1
      // Offset: 0x20
      bool GuiSelectDevice;
      // Field size check
      static_assert(sizeof(bool) == 0x1);
      // Padding between fields: GuiSelectDevice and: sensitivity
      char __padding1[0x3] = {};
      // private System.Single sensitivity
      // Size: 0x4
      // Offset: 0x24
      float sensitivity;
      // Field size check
      static_assert(sizeof(float) == 0x4);
      // private System.Single sourceVolume
      // Size: 0x4
      // Offset: 0x28
      float sourceVolume;
      // Field size check
      static_assert(sizeof(float) == 0x4);
      // private System.Int32 micFrequency
      // Size: 0x4
      // Offset: 0x2C
      int micFrequency;
      // Field size check
      static_assert(sizeof(int) == 0x4);
      // public OVRMicInput/micActivation micControl
      // Size: 0x4
      // Offset: 0x30
      ::GlobalNamespace::OVRMicInput::micActivation micControl;
      // Field size check
      static_assert(sizeof(::GlobalNamespace::OVRMicInput::micActivation) == 0x4);
      // Padding between fields: micControl and: selectedDevice
      char __padding5[0x4] = {};
      // public System.String selectedDevice
      // Size: 0x8
      // Offset: 0x38
      ::StringW selectedDevice;
      // Field size check
      static_assert(sizeof(::StringW) == 0x8);
      // public System.Single loudness
      // Size: 0x4
      // Offset: 0x40
      float loudness;
      // Field size check
      static_assert(sizeof(float) == 0x4);
      // private System.Boolean micSelected
      // Size: 0x1
      // Offset: 0x44
      bool micSelected;
      // Field size check
      static_assert(sizeof(bool) == 0x1);
      // Padding between fields: micSelected and: minFreq
      char __padding8[0x3] = {};
      // private System.Int32 minFreq
      // Size: 0x4
      // Offset: 0x48
      int minFreq;
      // Field size check
      static_assert(sizeof(int) == 0x4);
      // private System.Int32 maxFreq
      // Size: 0x4
      // Offset: 0x4C
      int maxFreq;
      // Field size check
      static_assert(sizeof(int) == 0x4);
      // private System.Boolean focused
      // Size: 0x1
      // Offset: 0x50
      bool focused;
      // Field size check
      static_assert(sizeof(bool) == 0x1);
      public:
      // Deleting conversion operator: operator ::System::IntPtr
      constexpr operator ::System::IntPtr() const noexcept = delete;
      // Get instance field reference: public UnityEngine.AudioSource audioSource
      ::UnityEngine::AudioSource*& dyn_audioSource();
      // Get instance field reference: public System.Boolean GuiSelectDevice
      bool& dyn_GuiSelectDevice();
      // Get instance field reference: private System.Single sensitivity
      float& dyn_sensitivity();
      // Get instance field reference: private System.Single sourceVolume
      float& dyn_sourceVolume();
      // Get instance field reference: private System.Int32 micFrequency
      int& dyn_micFrequency();
      // Get instance field reference: public OVRMicInput/micActivation micControl
      ::GlobalNamespace::OVRMicInput::micActivation& dyn_micControl();
      // Get instance field reference: public System.String selectedDevice
      ::StringW& dyn_selectedDevice();
      // Get instance field reference: public System.Single loudness
      float& dyn_loudness();
      // Get instance field reference: private System.Boolean micSelected
      bool& dyn_micSelected();
      // Get instance field reference: private System.Int32 minFreq
      int& dyn_minFreq();
      // Get instance field reference: private System.Int32 maxFreq
      int& dyn_maxFreq();
      // Get instance field reference: private System.Boolean focused
      bool& dyn_focused();
      // public System.Single get_Sensitivity()
      // Offset: 0xA1B4FC
      float get_Sensitivity();
      // public System.Void set_Sensitivity(System.Single value)
      // Offset: 0xA1B504
      void set_Sensitivity(float value);
      // public System.Single get_SourceVolume()
      // Offset: 0xA1B538
      float get_SourceVolume();
      // public System.Void set_SourceVolume(System.Single value)
      // Offset: 0xA1B540
      void set_SourceVolume(float value);
      // public System.Single get_MicFrequency()
      // Offset: 0xA1B574
      float get_MicFrequency();
      // public System.Void set_MicFrequency(System.Single value)
      // Offset: 0xA1B580
      void set_MicFrequency(float value);
      // private System.Void Awake()
      // Offset: 0xA1B5D0
      void Awake();
      // private System.Void Start()
      // Offset: 0xA1B698
      void Start();
      // private System.Void Update()
      // Offset: 0xA1B808
      void Update();
      // private System.Void OnApplicationFocus(System.Boolean focus)
      // Offset: 0xA1BB48
      void OnApplicationFocus(bool focus);
      // private System.Void OnApplicationPause(System.Boolean focus)
      // Offset: 0xA1BB5C
      void OnApplicationPause(bool focus);
      // private System.Void OnDisable()
      // Offset: 0xA1BB70
      void OnDisable();
      // private System.Void OnGUI()
      // Offset: 0xA1BB74
      void OnGUI();
      // public System.Void MicDeviceGUI(System.Single left, System.Single top, System.Single width, System.Single height, System.Single buttonSpaceTop, System.Single buttonSpaceLeft)
      // Offset: 0xA1BBEC
      void MicDeviceGUI(float left, float top, float width, float height, float buttonSpaceTop, float buttonSpaceLeft);
      // public System.Void GetMicCaps()
      // Offset: 0xA1B744
      void GetMicCaps();
      // public System.Void StartMicrophone()
      // Offset: 0xA1BAC4
      void StartMicrophone();
      // public System.Void StopMicrophone()
      // Offset: 0xA1B988
      void StopMicrophone();
      // private System.Single GetAveragedVolume()
      // Offset: 0xA1BABC
      float GetAveragedVolume();
      // public System.Void .ctor()
      // Offset: 0xA1BDC8
      // Implemented from: UnityEngine.MonoBehaviour
      // Base method: System.Void MonoBehaviour::.ctor()
      // Base method: System.Void Behaviour::.ctor()
      // Base method: System.Void Component::.ctor()
      // Base method: System.Void Object::.ctor()
      // Base method: System.Void Object::.ctor()
      template<::il2cpp_utils::CreationType creationType = ::il2cpp_utils::CreationType::Temporary>
      static OVRMicInput* New_ctor() {
        static auto ___internal__logger = ::Logger::get().WithContext("::GlobalNamespace::OVRMicInput::.ctor");
        return THROW_UNLESS((::il2cpp_utils::New<OVRMicInput*, creationType>()));
      }
    }; // OVRMicInput
    #pragma pack(pop)
    static check_size<sizeof(OVRMicInput), 80 + sizeof(bool)> __GlobalNamespace_OVRMicInputSizeCheck;
    static_assert(sizeof(OVRMicInput) == 0x51);
  }
  #include "beatsaber-hook/shared/utils/il2cpp-type-check.hpp"
  DEFINE_IL2CPP_ARG_TYPE(::GlobalNamespace::OVRMicInput::micActivation, "", "OVRMicInput/micActivation");
  #include "beatsaber-hook/shared/utils/il2cpp-utils-methods.hpp"
  // Writing MetadataGetter for method: GlobalNamespace::OVRMicInput::get_Sensitivity
  // Il2CppName: get_Sensitivity
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<float (GlobalNamespace::OVRMicInput::*)()>(&GlobalNamespace::OVRMicInput::get_Sensitivity)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(GlobalNamespace::OVRMicInput*), "get_Sensitivity", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: GlobalNamespace::OVRMicInput::set_Sensitivity
  // Il2CppName: set_Sensitivity
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (GlobalNamespace::OVRMicInput::*)(float)>(&GlobalNamespace::OVRMicInput::set_Sensitivity)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::GetClassFromName("System", "Single")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(GlobalNamespace::OVRMicInput*), "set_Sensitivity", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: GlobalNamespace::OVRMicInput::get_SourceVolume
  // Il2CppName: get_SourceVolume
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<float (GlobalNamespace::OVRMicInput::*)()>(&GlobalNamespace::OVRMicInput::get_SourceVolume)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(GlobalNamespace::OVRMicInput*), "get_SourceVolume", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: GlobalNamespace::OVRMicInput::set_SourceVolume
  // Il2CppName: set_SourceVolume
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (GlobalNamespace::OVRMicInput::*)(float)>(&GlobalNamespace::OVRMicInput::set_SourceVolume)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::GetClassFromName("System", "Single")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(GlobalNamespace::OVRMicInput*), "set_SourceVolume", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: GlobalNamespace::OVRMicInput::get_MicFrequency
  // Il2CppName: get_MicFrequency
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<float (GlobalNamespace::OVRMicInput::*)()>(&GlobalNamespace::OVRMicInput::get_MicFrequency)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(GlobalNamespace::OVRMicInput*), "get_MicFrequency", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: GlobalNamespace::OVRMicInput::set_MicFrequency
  // Il2CppName: set_MicFrequency
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (GlobalNamespace::OVRMicInput::*)(float)>(&GlobalNamespace::OVRMicInput::set_MicFrequency)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::GetClassFromName("System", "Single")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(GlobalNamespace::OVRMicInput*), "set_MicFrequency", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: GlobalNamespace::OVRMicInput::Awake
  // Il2CppName: Awake
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (GlobalNamespace::OVRMicInput::*)()>(&GlobalNamespace::OVRMicInput::Awake)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(GlobalNamespace::OVRMicInput*), "Awake", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: GlobalNamespace::OVRMicInput::Start
  // Il2CppName: Start
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (GlobalNamespace::OVRMicInput::*)()>(&GlobalNamespace::OVRMicInput::Start)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(GlobalNamespace::OVRMicInput*), "Start", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: GlobalNamespace::OVRMicInput::Update
  // Il2CppName: Update
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (GlobalNamespace::OVRMicInput::*)()>(&GlobalNamespace::OVRMicInput::Update)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(GlobalNamespace::OVRMicInput*), "Update", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: GlobalNamespace::OVRMicInput::OnApplicationFocus
  // Il2CppName: OnApplicationFocus
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (GlobalNamespace::OVRMicInput::*)(bool)>(&GlobalNamespace::OVRMicInput::OnApplicationFocus)> {
    static const MethodInfo* get() {
      static auto* focus = &::il2cpp_utils::GetClassFromName("System", "Boolean")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(GlobalNamespace::OVRMicInput*), "OnApplicationFocus", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{focus});
    }
  };
  // Writing MetadataGetter for method: GlobalNamespace::OVRMicInput::OnApplicationPause
  // Il2CppName: OnApplicationPause
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (GlobalNamespace::OVRMicInput::*)(bool)>(&GlobalNamespace::OVRMicInput::OnApplicationPause)> {
    static const MethodInfo* get() {
      static auto* focus = &::il2cpp_utils::GetClassFromName("System", "Boolean")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(GlobalNamespace::OVRMicInput*), "OnApplicationPause", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{focus});
    }
  };
  // Writing MetadataGetter for method: GlobalNamespace::OVRMicInput::OnDisable
  // Il2CppName: OnDisable
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (GlobalNamespace::OVRMicInput::*)()>(&GlobalNamespace::OVRMicInput::OnDisable)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(GlobalNamespace::OVRMicInput*), "OnDisable", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: GlobalNamespace::OVRMicInput::OnGUI
  // Il2CppName: OnGUI
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (GlobalNamespace::OVRMicInput::*)()>(&GlobalNamespace::OVRMicInput::OnGUI)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(GlobalNamespace::OVRMicInput*), "OnGUI", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: GlobalNamespace::OVRMicInput::MicDeviceGUI
  // Il2CppName: MicDeviceGUI
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (GlobalNamespace::OVRMicInput::*)(float, float, float, float, float, float)>(&GlobalNamespace::OVRMicInput::MicDeviceGUI)> {
    static const MethodInfo* get() {
      static auto* left = &::il2cpp_utils::GetClassFromName("System", "Single")->byval_arg;
      static auto* top = &::il2cpp_utils::GetClassFromName("System", "Single")->byval_arg;
      static auto* width = &::il2cpp_utils::GetClassFromName("System", "Single")->byval_arg;
      static auto* height = &::il2cpp_utils::GetClassFromName("System", "Single")->byval_arg;
      static auto* buttonSpaceTop = &::il2cpp_utils::GetClassFromName("System", "Single")->byval_arg;
      static auto* buttonSpaceLeft = &::il2cpp_utils::GetClassFromName("System", "Single")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(GlobalNamespace::OVRMicInput*), "MicDeviceGUI", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{left, top, width, height, buttonSpaceTop, buttonSpaceLeft});
    }
  };
  // Writing MetadataGetter for method: GlobalNamespace::OVRMicInput::GetMicCaps
  // Il2CppName: GetMicCaps
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (GlobalNamespace::OVRMicInput::*)()>(&GlobalNamespace::OVRMicInput::GetMicCaps)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(GlobalNamespace::OVRMicInput*), "GetMicCaps", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: GlobalNamespace::OVRMicInput::StartMicrophone
  // Il2CppName: StartMicrophone
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (GlobalNamespace::OVRMicInput::*)()>(&GlobalNamespace::OVRMicInput::StartMicrophone)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(GlobalNamespace::OVRMicInput*), "StartMicrophone", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: GlobalNamespace::OVRMicInput::StopMicrophone
  // Il2CppName: StopMicrophone
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (GlobalNamespace::OVRMicInput::*)()>(&GlobalNamespace::OVRMicInput::StopMicrophone)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(GlobalNamespace::OVRMicInput*), "StopMicrophone", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: GlobalNamespace::OVRMicInput::GetAveragedVolume
  // Il2CppName: GetAveragedVolume
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<float (GlobalNamespace::OVRMicInput::*)()>(&GlobalNamespace::OVRMicInput::GetAveragedVolume)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(GlobalNamespace::OVRMicInput*), "GetAveragedVolume", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: GlobalNamespace::OVRMicInput::New_ctor
  // Il2CppName: .ctor
  // Cannot get method pointer of value based method overload from template for constructor!
  // Try using FindMethod instead!
  