1 /*
2  * This file is auto-generated.  DO NOT MODIFY.
3  * Using: out/host/linux-x86/bin/aidl --lang=ndk -Weverything -Wno-missing-permission-annotation --structured --version 5 --hash notfrozen -t --stability vintf --min_sdk_version 31 -pout/soong/.intermediates/hardware/interfaces/audio/aidl/android.hardware.audio.common_interface/4/preprocessed.aidl -pout/soong/.intermediates/hardware/interfaces/common/aidl/android.hardware.common_interface/2/preprocessed.aidl -pout/soong/.intermediates/hardware/interfaces/common/fmq/aidl/android.hardware.common.fmq_interface/1/preprocessed.aidl --previous_api_dir=hardware/interfaces/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4 --previous_hash ac25616dda1c45dc2915d3f5ac82687a1a6f6e46 --ninja -d out/soong/.intermediates/hardware/interfaces/bluetooth/audio/aidl/android.hardware.bluetooth.audio-V5-ndk-source/gen/staging/android/hardware/bluetooth/audio/IBluetoothAudioProviderFactory.cpp.d -h out/soong/.intermediates/hardware/interfaces/bluetooth/audio/aidl/android.hardware.bluetooth.audio-V5-ndk-source/gen/include/staging -o out/soong/.intermediates/hardware/interfaces/bluetooth/audio/aidl/android.hardware.bluetooth.audio-V5-ndk-source/gen/staging -Nhardware/interfaces/bluetooth/audio/aidl hardware/interfaces/bluetooth/audio/aidl/android/hardware/bluetooth/audio/IBluetoothAudioProviderFactory.aidl
4  *
5  * DO NOT CHECK THIS FILE INTO A CODE TREE (e.g. git, etc..).
6  * ALWAYS GENERATE THIS FILE FROM UPDATED AIDL COMPILER
7  * AS A BUILD INTERMEDIATE ONLY. THIS IS NOT SOURCE CODE.
8  */
9 #pragma once
10 
11 #include <cstdint>
12 #include <memory>
13 #include <optional>
14 #include <string>
15 #include <vector>
16 #include <android/binder_interface_utils.h>
17 #include <android/binder_parcelable_utils.h>
18 #include <android/binder_to_string.h>
19 #include <aidl/android/hardware/bluetooth/audio/AudioCapabilities.h>
20 #include <aidl/android/hardware/bluetooth/audio/CodecInfo.h>
21 #include <aidl/android/hardware/bluetooth/audio/IBluetoothAudioProvider.h>
22 #include <aidl/android/hardware/bluetooth/audio/IBluetoothAudioProviderFactory.h>
23 #include <aidl/android/hardware/bluetooth/audio/SessionType.h>
24 #ifdef BINDER_STABILITY_SUPPORT
25 #include <android/binder_stability.h>
26 #endif  // BINDER_STABILITY_SUPPORT
27 
28 namespace aidl::android::hardware::bluetooth::audio {
29 class CodecInfo;
30 class IBluetoothAudioProvider;
31 }  // namespace aidl::android::hardware::bluetooth::audio
32 namespace aidl {
33 namespace android {
34 namespace hardware {
35 namespace bluetooth {
36 namespace audio {
37 class IBluetoothAudioProviderFactoryDelegator;
38 
39 class IBluetoothAudioProviderFactory : public ::ndk::ICInterface {
40 public:
41   typedef IBluetoothAudioProviderFactoryDelegator DefaultDelegator;
42   static const char* descriptor;
43   IBluetoothAudioProviderFactory();
44   virtual ~IBluetoothAudioProviderFactory();
45 
46   class ProviderInfo {
47   public:
48     typedef std::false_type fixed_size;
49     static const char* descriptor;
50 
51     std::string name;
52     std::vector<::aidl::android::hardware::bluetooth::audio::CodecInfo> codecInfos;
53     bool supportsMultidirectionalCapabilities = false;
54 
55     binder_status_t readFromParcel(const AParcel* parcel);
56     binder_status_t writeToParcel(AParcel* parcel) const;
57 
58     inline bool operator==(const ProviderInfo& _rhs) const {
59       return std::tie(name, codecInfos, supportsMultidirectionalCapabilities) == std::tie(_rhs.name, _rhs.codecInfos, _rhs.supportsMultidirectionalCapabilities);
60     }
61     inline bool operator<(const ProviderInfo& _rhs) const {
62       return std::tie(name, codecInfos, supportsMultidirectionalCapabilities) < std::tie(_rhs.name, _rhs.codecInfos, _rhs.supportsMultidirectionalCapabilities);
63     }
64     inline bool operator!=(const ProviderInfo& _rhs) const {
65       return !(*this == _rhs);
66     }
67     inline bool operator>(const ProviderInfo& _rhs) const {
68       return _rhs < *this;
69     }
70     inline bool operator>=(const ProviderInfo& _rhs) const {
71       return !(*this < _rhs);
72     }
73     inline bool operator<=(const ProviderInfo& _rhs) const {
74       return !(_rhs < *this);
75     }
76 
77     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()78     inline std::string toString() const {
79       std::ostringstream _aidl_os;
80       _aidl_os << "ProviderInfo{";
81       _aidl_os << "name: " << ::android::internal::ToString(name);
82       _aidl_os << ", codecInfos: " << ::android::internal::ToString(codecInfos);
83       _aidl_os << ", supportsMultidirectionalCapabilities: " << ::android::internal::ToString(supportsMultidirectionalCapabilities);
84       _aidl_os << "}";
85       return _aidl_os.str();
86     }
87   };
88   static inline const int32_t version = true ? 4 : 5;
89   static inline const std::string hash = true ? "ac25616dda1c45dc2915d3f5ac82687a1a6f6e46" : "notfrozen";
90   static constexpr uint32_t TRANSACTION_getProviderCapabilities = FIRST_CALL_TRANSACTION + 0;
91   static constexpr uint32_t TRANSACTION_openProvider = FIRST_CALL_TRANSACTION + 1;
92   static constexpr uint32_t TRANSACTION_getProviderInfo = FIRST_CALL_TRANSACTION + 2;
93 
94   static std::shared_ptr<IBluetoothAudioProviderFactory> fromBinder(const ::ndk::SpAIBinder& binder);
95   static binder_status_t writeToParcel(AParcel* parcel, const std::shared_ptr<IBluetoothAudioProviderFactory>& instance);
96   static binder_status_t readFromParcel(const AParcel* parcel, std::shared_ptr<IBluetoothAudioProviderFactory>* instance);
97   static bool setDefaultImpl(const std::shared_ptr<IBluetoothAudioProviderFactory>& impl);
98   static const std::shared_ptr<IBluetoothAudioProviderFactory>& getDefaultImpl();
99   virtual ::ndk::ScopedAStatus getProviderCapabilities(::aidl::android::hardware::bluetooth::audio::SessionType in_sessionType, std::vector<::aidl::android::hardware::bluetooth::audio::AudioCapabilities>* _aidl_return) = 0;
100   virtual ::ndk::ScopedAStatus openProvider(::aidl::android::hardware::bluetooth::audio::SessionType in_sessionType, std::shared_ptr<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider>* _aidl_return) = 0;
101   virtual ::ndk::ScopedAStatus getProviderInfo(::aidl::android::hardware::bluetooth::audio::SessionType in_sessionType, std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProviderFactory::ProviderInfo>* _aidl_return) = 0;
102   virtual ::ndk::ScopedAStatus getInterfaceVersion(int32_t* _aidl_return) = 0;
103   virtual ::ndk::ScopedAStatus getInterfaceHash(std::string* _aidl_return) = 0;
104 private:
105   static std::shared_ptr<IBluetoothAudioProviderFactory> default_impl;
106 };
107 class IBluetoothAudioProviderFactoryDefault : public IBluetoothAudioProviderFactory {
108 public:
109   ::ndk::ScopedAStatus getProviderCapabilities(::aidl::android::hardware::bluetooth::audio::SessionType in_sessionType, std::vector<::aidl::android::hardware::bluetooth::audio::AudioCapabilities>* _aidl_return) override;
110   ::ndk::ScopedAStatus openProvider(::aidl::android::hardware::bluetooth::audio::SessionType in_sessionType, std::shared_ptr<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider>* _aidl_return) override;
111   ::ndk::ScopedAStatus getProviderInfo(::aidl::android::hardware::bluetooth::audio::SessionType in_sessionType, std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProviderFactory::ProviderInfo>* _aidl_return) override;
112   ::ndk::ScopedAStatus getInterfaceVersion(int32_t* _aidl_return) override;
113   ::ndk::ScopedAStatus getInterfaceHash(std::string* _aidl_return) override;
114   ::ndk::SpAIBinder asBinder() override;
115   bool isRemote() override;
116 };
117 }  // namespace audio
118 }  // namespace bluetooth
119 }  // namespace hardware
120 }  // namespace android
121 }  // namespace aidl
122