diff options
author | Tomasz Wasilczyk <twasilczyk@google.com> | 2017-12-04 09:53:32 -0800 |
---|---|---|
committer | Tomasz Wasilczyk <twasilczyk@google.com> | 2017-12-12 10:22:11 -0800 |
commit | 06100b39db99dd5b7860a6e981ba9f8d511793fa (patch) | |
tree | d5428074a729090f545d560bd67de014cd9f4e78 /broadcastradio/2.0/default/VirtualRadio.h | |
parent | 5bbf35ffef10170d20efd8b4940117a7d95562b4 (diff) | |
download | android_hardware_interfaces-06100b39db99dd5b7860a6e981ba9f8d511793fa.tar.gz android_hardware_interfaces-06100b39db99dd5b7860a6e981ba9f8d511793fa.tar.bz2 android_hardware_interfaces-06100b39db99dd5b7860a6e981ba9f8d511793fa.zip |
Implement broadcast radio HAL 2.0 default implementation.
Also, split internal common utils library to 1.x and 2.x.
Test: VTS
Bug: 69958777
Change-Id: I21244c74270a07cc350e8a2b974dafcdae02a0e8
Diffstat (limited to 'broadcastradio/2.0/default/VirtualRadio.h')
-rw-r--r-- | broadcastradio/2.0/default/VirtualRadio.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/broadcastradio/2.0/default/VirtualRadio.h b/broadcastradio/2.0/default/VirtualRadio.h new file mode 100644 index 000000000..9c07816b4 --- /dev/null +++ b/broadcastradio/2.0/default/VirtualRadio.h @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V2_0_VIRTUALRADIO_H +#define ANDROID_HARDWARE_BROADCASTRADIO_V2_0_VIRTUALRADIO_H + +#include "VirtualProgram.h" + +#include <mutex> +#include <vector> + +namespace android { +namespace hardware { +namespace broadcastradio { +namespace V2_0 { +namespace implementation { + +/** + * A radio frequency space mock. + * + * This represents all broadcast waves in the air for a given radio technology, + * not a captured station list in the radio tuner memory. + * + * It's meant to abstract out radio content from default tuner implementation. + */ +class VirtualRadio { + public: + VirtualRadio(const std::string& name, const std::vector<VirtualProgram>& initialList); + + std::string getName() const; + std::vector<VirtualProgram> getProgramList() const; + bool getProgram(const ProgramSelector& selector, VirtualProgram& program) const; + + private: + mutable std::mutex mMut; + std::string mName; + std::vector<VirtualProgram> mPrograms; +}; + +/** AM/FM virtual radio space. */ +extern VirtualRadio gAmFmRadio; + +} // namespace implementation +} // namespace V2_0 +} // namespace broadcastradio +} // namespace hardware +} // namespace android + +#endif // ANDROID_HARDWARE_BROADCASTRADIO_V2_0_VIRTUALRADIO_H |