summaryrefslogtreecommitdiffstats
path: root/broadcastradio/2.0/default/VirtualRadio.h
diff options
context:
space:
mode:
authorTomasz Wasilczyk <twasilczyk@google.com>2017-12-04 09:53:32 -0800
committerTomasz Wasilczyk <twasilczyk@google.com>2017-12-12 10:22:11 -0800
commit06100b39db99dd5b7860a6e981ba9f8d511793fa (patch)
treed5428074a729090f545d560bd67de014cd9f4e78 /broadcastradio/2.0/default/VirtualRadio.h
parent5bbf35ffef10170d20efd8b4940117a7d95562b4 (diff)
downloadandroid_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.h61
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