1 /*
2  * Copyright 2021 HIMSA II K/S - www.himsa.com.
3  * Represented by EHIMA - www.ehima.com
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 #include "btif_storage_mock.h"
19 
20 #include <bluetooth/log.h>
21 
22 using namespace bluetooth;
23 
24 static bluetooth::storage::MockBtifStorageInterface* btif_storage_interface =
25     nullptr;
26 
SetMockBtifStorageInterface(MockBtifStorageInterface * mock_btif_storage_interface)27 void bluetooth::storage::SetMockBtifStorageInterface(
28     MockBtifStorageInterface* mock_btif_storage_interface) {
29   btif_storage_interface = mock_btif_storage_interface;
30 }
31 
btif_storage_set_leaudio_autoconnect(RawAddress const & addr,bool autoconnect)32 void btif_storage_set_leaudio_autoconnect(RawAddress const& addr,
33                                           bool autoconnect) {
34   log::assert_that(btif_storage_interface != nullptr,
35                    "Mock storage module not set!");
36   btif_storage_interface->AddLeaudioAutoconnect(addr, autoconnect);
37 }
38 
btif_storage_leaudio_update_pacs_bin(const RawAddress & addr)39 void btif_storage_leaudio_update_pacs_bin(const RawAddress& addr) {
40   log::assert_that(btif_storage_interface != nullptr,
41                    "Mock storage module not set!");
42   btif_storage_interface->LeAudioUpdatePacs(addr);
43 }
44 
btif_storage_leaudio_update_ase_bin(const RawAddress & addr)45 void btif_storage_leaudio_update_ase_bin(const RawAddress& addr) {
46   log::assert_that(btif_storage_interface != nullptr,
47                    "Mock storage module not set!");
48   btif_storage_interface->LeAudioUpdateAses(addr);
49 }
50 
btif_storage_leaudio_update_handles_bin(const RawAddress & addr)51 void btif_storage_leaudio_update_handles_bin(const RawAddress& addr) {
52   log::assert_that(btif_storage_interface != nullptr,
53                    "Mock storage module not set!");
54   btif_storage_interface->LeAudioUpdateHandles(addr);
55 }
56 
btif_storage_set_leaudio_audio_location(const RawAddress & addr,uint32_t sink_location,uint32_t source_location)57 void btif_storage_set_leaudio_audio_location(const RawAddress& addr,
58                                              uint32_t sink_location,
59                                              uint32_t source_location) {
60   log::assert_that(btif_storage_interface != nullptr,
61                    "Mock storage module not set!");
62   btif_storage_interface->SetLeAudioLocations(addr, sink_location,
63                                               source_location);
64 }
65 
btif_storage_set_leaudio_supported_context_types(const RawAddress & addr,uint16_t sink_supported_context_type,uint16_t source_supported_context_type)66 void btif_storage_set_leaudio_supported_context_types(
67     const RawAddress& addr, uint16_t sink_supported_context_type,
68     uint16_t source_supported_context_type) {
69   log::assert_that(btif_storage_interface != nullptr,
70                    "Mock storage module not set!");
71   btif_storage_interface->SetLeAudioContexts(addr, sink_supported_context_type,
72                                              source_supported_context_type);
73 }
74 
btif_storage_leaudio_clear_service_data(RawAddress const & addr)75 void btif_storage_leaudio_clear_service_data(RawAddress const& addr) {
76   log::assert_that(btif_storage_interface != nullptr,
77                    "Mock storage module not set!");
78   btif_storage_interface->ClearLeAudioServiceData(addr);
79 }
80 
btif_storage_remove_leaudio(RawAddress const & addr)81 void btif_storage_remove_leaudio(RawAddress const& addr) {
82   log::assert_that(btif_storage_interface != nullptr,
83                    "Mock storage module not set!");
84   btif_storage_interface->RemoveLeaudio(addr);
85 }
86 
btif_storage_add_leaudio_has_device(const RawAddress & address,std::vector<uint8_t> presets_bin,uint8_t features,uint8_t active_preset)87 void btif_storage_add_leaudio_has_device(const RawAddress& address,
88                                          std::vector<uint8_t> presets_bin,
89                                          uint8_t features,
90                                          uint8_t active_preset) {
91   log::assert_that(btif_storage_interface != nullptr,
92                    "Mock storage module not set!");
93   btif_storage_interface->AddLeaudioHasDevice(address, presets_bin, features,
94                                               active_preset);
95 };
96 
btif_storage_get_leaudio_has_presets(const RawAddress & address,std::vector<uint8_t> & presets_bin,uint8_t & active_preset)97 bool btif_storage_get_leaudio_has_presets(const RawAddress& address,
98                                           std::vector<uint8_t>& presets_bin,
99                                           uint8_t& active_preset) {
100   if (btif_storage_interface)
101     return btif_storage_interface->GetLeaudioHasPresets(address, presets_bin,
102                                                         active_preset);
103 
104   return false;
105 };
106 
btif_storage_set_leaudio_has_presets(const RawAddress & address,std::vector<uint8_t> presets_bin)107 void btif_storage_set_leaudio_has_presets(const RawAddress& address,
108                                           std::vector<uint8_t> presets_bin) {
109   log::assert_that(btif_storage_interface != nullptr,
110                    "Mock storage module not set!");
111   btif_storage_interface->SetLeaudioHasPresets(address, presets_bin);
112 }
113 
btif_storage_get_leaudio_has_features(const RawAddress & address,uint8_t & features)114 bool btif_storage_get_leaudio_has_features(const RawAddress& address,
115                                            uint8_t& features) {
116   log::assert_that(btif_storage_interface != nullptr,
117                    "Mock storage module not set!");
118   return btif_storage_interface->GetLeaudioHasFeatures(address, features);
119 }
120 
btif_storage_set_leaudio_has_features(const RawAddress & address,uint8_t features)121 void btif_storage_set_leaudio_has_features(const RawAddress& address,
122                                            uint8_t features) {
123   log::assert_that(btif_storage_interface != nullptr,
124                    "Mock storage module not set!");
125   btif_storage_interface->SetLeaudioHasFeatures(address, features);
126 }
127 
btif_storage_set_leaudio_has_active_preset(const RawAddress & address,uint8_t active_preset)128 void btif_storage_set_leaudio_has_active_preset(const RawAddress& address,
129                                                 uint8_t active_preset) {
130   log::assert_that(btif_storage_interface != nullptr,
131                    "Mock storage module not set!");
132   btif_storage_interface->SetLeaudioHasActivePreset(address, active_preset);
133 }
134 
btif_storage_remove_leaudio_has(const RawAddress & address)135 void btif_storage_remove_leaudio_has(const RawAddress& address) {
136   log::assert_that(btif_storage_interface != nullptr,
137                    "Mock storage module not set!");
138   btif_storage_interface->RemoveLeaudioHas(address);
139 }
140 
btif_storage_get_remote_device_property(const RawAddress * address,bt_property_t * property)141 bt_status_t btif_storage_get_remote_device_property(const RawAddress* address,
142                                                     bt_property_t* property) {
143   log::assert_that(btif_storage_interface != nullptr,
144                    "Mock storage module not set!");
145   return btif_storage_interface->GetRemoteDeviceProperty(address, property);
146 }
147