From 81a87b312f112904fa7ddf612c0b1e0d338d7aad Mon Sep 17 00:00:00 2001 From: roynatech2544 Date: Sat, 19 Feb 2022 01:07:04 +0900 Subject: [PATCH] universal7885: interfaces: Implement FMRadio HAL v1.1 Change-Id: Ifff4f14171e1774723a1ffa40f74eabd99a28e97 Signed-off-by: roynatech2544 --- .../hardware/fmradio/1.0/Android.bp | 4 +++- .../hardware/fmradio/1.1/Android.bp | 13 ++++++++++++ .../hardware/fmradio/1.1/IFMRadio.hal | 21 +++++++++++++++++++ .../fmradio/{1.0 => 1.1}/default/Android.bp | 7 ++++--- .../fmradio/{1.0 => 1.1}/default/FMRadio.cpp | 16 +++++++++++--- .../fmradio/{1.0 => 1.1}/default/FMRadio.h | 8 ++++--- .../fmradio/{1.0 => 1.1}/default/service.cpp | 6 +++--- ...or.eureka.hardware.fmradio@1.1-service.rc} | 3 ++- .../vendor.eureka.hardware.fmradio@1.1.xml} | 2 +- .../interfaces/hardware/fmradio/1.1/types.hal | 20 ++++++++++++++++++ 10 files changed, 85 insertions(+), 15 deletions(-) create mode 100644 universal7885-common/interfaces/hardware/fmradio/1.1/Android.bp create mode 100644 universal7885-common/interfaces/hardware/fmradio/1.1/IFMRadio.hal rename universal7885-common/interfaces/hardware/fmradio/{1.0 => 1.1}/default/Android.bp (57%) rename universal7885-common/interfaces/hardware/fmradio/{1.0 => 1.1}/default/FMRadio.cpp (79%) rename universal7885-common/interfaces/hardware/fmradio/{1.0 => 1.1}/default/FMRadio.h (79%) rename universal7885-common/interfaces/hardware/fmradio/{1.0 => 1.1}/default/service.cpp (88%) rename universal7885-common/interfaces/hardware/fmradio/{1.0/default/vendor.eureka.hardware.fmradio@1.0-service.rc => 1.1/default/vendor.eureka.hardware.fmradio@1.1-service.rc} (66%) rename universal7885-common/interfaces/hardware/fmradio/{1.0/default/vendor.eureka.hardware.fmradio@1.0.xml => 1.1/default/vendor.eureka.hardware.fmradio@1.1.xml} (90%) create mode 100644 universal7885-common/interfaces/hardware/fmradio/1.1/types.hal diff --git a/universal7885-common/interfaces/hardware/fmradio/1.0/Android.bp b/universal7885-common/interfaces/hardware/fmradio/1.0/Android.bp index 0de9963..1e4d92c 100644 --- a/universal7885-common/interfaces/hardware/fmradio/1.0/Android.bp +++ b/universal7885-common/interfaces/hardware/fmradio/1.0/Android.bp @@ -5,6 +5,8 @@ hidl_interface { "types.hal", "IFMRadio.hal", ], - interfaces: [ "android.hidl.base@1.0" ], + interfaces: [ + "android.hidl.base@1.0", + ], gen_java: true, } diff --git a/universal7885-common/interfaces/hardware/fmradio/1.1/Android.bp b/universal7885-common/interfaces/hardware/fmradio/1.1/Android.bp new file mode 100644 index 0000000..a03fbb9 --- /dev/null +++ b/universal7885-common/interfaces/hardware/fmradio/1.1/Android.bp @@ -0,0 +1,13 @@ +hidl_interface { + name: "vendor.eureka.hardware.fmradio@1.1", + root: "vendor.eureka", + srcs: [ + "types.hal", + "IFMRadio.hal", + ], + interfaces: [ + "android.hidl.base@1.0", + "vendor.eureka.hardware.fmradio@1.0", + ], + gen_java: true, +} diff --git a/universal7885-common/interfaces/hardware/fmradio/1.1/IFMRadio.hal b/universal7885-common/interfaces/hardware/fmradio/1.1/IFMRadio.hal new file mode 100644 index 0000000..f76b0eb --- /dev/null +++ b/universal7885-common/interfaces/hardware/fmradio/1.1/IFMRadio.hal @@ -0,0 +1,21 @@ +// Copyright (C) 2021 Eureka Team +// +// 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. + +package vendor.eureka.hardware.fmradio@1.1; + +import @1.0::IFMRadio; + +interface IFMRadio extends @1.0::IFMRadio { + isAvailable() generates (Status status); +}; diff --git a/universal7885-common/interfaces/hardware/fmradio/1.0/default/Android.bp b/universal7885-common/interfaces/hardware/fmradio/1.1/default/Android.bp similarity index 57% rename from universal7885-common/interfaces/hardware/fmradio/1.0/default/Android.bp rename to universal7885-common/interfaces/hardware/fmradio/1.1/default/Android.bp index 3a0f37d..6cd759a 100644 --- a/universal7885-common/interfaces/hardware/fmradio/1.0/default/Android.bp +++ b/universal7885-common/interfaces/hardware/fmradio/1.1/default/Android.bp @@ -1,7 +1,7 @@ // FIXME: your file license if you have one cc_binary { - name: "vendor.eureka.hardware.fmradio@1.0-service", + name: "vendor.eureka.hardware.fmradio@1.1-service", relative_install_path: "hw", proprietary: true, srcs: [ @@ -13,7 +13,8 @@ cc_binary { "libutils", "liblog", "vendor.eureka.hardware.fmradio@1.0", + "vendor.eureka.hardware.fmradio@1.1", ], - init_rc: [ "vendor.eureka.hardware.fmradio@1.0-service.rc" ], - vintf_fragments: [ "vendor.eureka.hardware.fmradio@1.0.xml" ], + init_rc: [ "vendor.eureka.hardware.fmradio@1.1-service.rc" ], + vintf_fragments: [ "vendor.eureka.hardware.fmradio@1.1.xml" ], } diff --git a/universal7885-common/interfaces/hardware/fmradio/1.0/default/FMRadio.cpp b/universal7885-common/interfaces/hardware/fmradio/1.1/default/FMRadio.cpp similarity index 79% rename from universal7885-common/interfaces/hardware/fmradio/1.0/default/FMRadio.cpp rename to universal7885-common/interfaces/hardware/fmradio/1.1/default/FMRadio.cpp index 738b061..9238d70 100644 --- a/universal7885-common/interfaces/hardware/fmradio/1.0/default/FMRadio.cpp +++ b/universal7885-common/interfaces/hardware/fmradio/1.1/default/FMRadio.cpp @@ -16,7 +16,10 @@ #include #include #include -namespace vendor::eureka::hardware::fmradio::V1_0 { +#include +#include + +namespace vendor::eureka::hardware::fmradio::V1_1 { Return IFMRadio::setManualFreq(float freq) { std::ofstream file; @@ -39,8 +42,15 @@ Return IFMRadio::adjustFreqByStep(fmradio::V1_0::Direction dir) { file.close(); return Void(); } - -IFMRadio* FMRadio::getInstance(void) { +Return IFMRadio::isAvailable(){ + struct stat info; + if(stat("/sys/devices/virtual/s610_radio/s610_radio/", &info ) != 0) { + return Status::NO; + else + return Status::YES; + } +} +IFMRadio* IFMRadio::getInstance(void) { return new FMRadio(); } } // namespace vendor::eureka::hardware::fmradio::V1_0 diff --git a/universal7885-common/interfaces/hardware/fmradio/1.0/default/FMRadio.h b/universal7885-common/interfaces/hardware/fmradio/1.1/default/FMRadio.h similarity index 79% rename from universal7885-common/interfaces/hardware/fmradio/1.0/default/FMRadio.h rename to universal7885-common/interfaces/hardware/fmradio/1.1/default/FMRadio.h index cb01f04..3b2580e 100644 --- a/universal7885-common/interfaces/hardware/fmradio/1.0/default/FMRadio.h +++ b/universal7885-common/interfaces/hardware/fmradio/1.1/default/FMRadio.h @@ -16,9 +16,9 @@ #include #include -#include +#include -namespace vendor::eureka::hardware::fmradio::V1_0 { +namespace vendor::eureka::hardware::fmradio::V1_1 { using ::android::sp; using ::android::hardware::hidl_array; @@ -29,9 +29,11 @@ using ::android::hardware::Return; using ::android::hardware::Void; struct FMRadio : public IFMRadio { - // Methods from ::vendor::eureka::hardware::parts::V1_0::ISELinux follow. + // Methods from ::vendor::eureka::hardware::fmradio::V1_0::IFMRadio follow. Return setManualFreq(float freq); Return adjustFreqByStep(Direction dir); + // Methods from ::vendor::eureka::hardware::fmradio::V1_1::IFMRadio follow. + Return isAvailable(); // Methods from ::android::hidl::base::V1_0::IBase follow. static IFMRadio* getInstance(void); }; diff --git a/universal7885-common/interfaces/hardware/fmradio/1.0/default/service.cpp b/universal7885-common/interfaces/hardware/fmradio/1.1/default/service.cpp similarity index 88% rename from universal7885-common/interfaces/hardware/fmradio/1.0/default/service.cpp rename to universal7885-common/interfaces/hardware/fmradio/1.1/default/service.cpp index b4d865b..142d163 100644 --- a/universal7885-common/interfaces/hardware/fmradio/1.0/default/service.cpp +++ b/universal7885-common/interfaces/hardware/fmradio/1.1/default/service.cpp @@ -14,7 +14,7 @@ #define LOG_TAG "vendor.eureka.hardware.fmradio@1.0-service" -#include +#include #include @@ -23,8 +23,8 @@ using android::sp; using android::hardware::configureRpcThreadpool; using android::hardware::joinRpcThreadpool; -using vendor::eureka::hardware::parts::V1_0::FMRadio; -using vendor::eureka::hardware::parts::V1_0::IFMRadio; +using vendor::eureka::hardware::fmradio::V1_1::FMRadio; +using vendor::eureka::hardware::fmradio::V1_1::IFMRadio; int main() { int ret; diff --git a/universal7885-common/interfaces/hardware/fmradio/1.0/default/vendor.eureka.hardware.fmradio@1.0-service.rc b/universal7885-common/interfaces/hardware/fmradio/1.1/default/vendor.eureka.hardware.fmradio@1.1-service.rc similarity index 66% rename from universal7885-common/interfaces/hardware/fmradio/1.0/default/vendor.eureka.hardware.fmradio@1.0-service.rc rename to universal7885-common/interfaces/hardware/fmradio/1.1/default/vendor.eureka.hardware.fmradio@1.1-service.rc index 8a503de..1c36326 100644 --- a/universal7885-common/interfaces/hardware/fmradio/1.0/default/vendor.eureka.hardware.fmradio@1.0-service.rc +++ b/universal7885-common/interfaces/hardware/fmradio/1.1/default/vendor.eureka.hardware.fmradio@1.1-service.rc @@ -1,5 +1,6 @@ -service vendor.parts-hal /vendor/bin/hw/vendor.eureka.hardware.fmradio@1.0-service +service vendor.parts-hal /vendor/bin/hw/vendor.eureka.hardware.fmradio@1.1-service interface vendor.eureka.hardware.fmradio@1.0::IFMRadio default + interface vendor.eureka.hardware.fmradio@1.1::IFMRadio default class hal user root group root diff --git a/universal7885-common/interfaces/hardware/fmradio/1.0/default/vendor.eureka.hardware.fmradio@1.0.xml b/universal7885-common/interfaces/hardware/fmradio/1.1/default/vendor.eureka.hardware.fmradio@1.1.xml similarity index 90% rename from universal7885-common/interfaces/hardware/fmradio/1.0/default/vendor.eureka.hardware.fmradio@1.0.xml rename to universal7885-common/interfaces/hardware/fmradio/1.1/default/vendor.eureka.hardware.fmradio@1.1.xml index e05c93c..c6c8381 100644 --- a/universal7885-common/interfaces/hardware/fmradio/1.0/default/vendor.eureka.hardware.fmradio@1.0.xml +++ b/universal7885-common/interfaces/hardware/fmradio/1.1/default/vendor.eureka.hardware.fmradio@1.1.xml @@ -2,7 +2,7 @@ vendor.eureka.hardware.fmradio hwbinder - 1.0 + 1.1 IFMRadio default diff --git a/universal7885-common/interfaces/hardware/fmradio/1.1/types.hal b/universal7885-common/interfaces/hardware/fmradio/1.1/types.hal new file mode 100644 index 0000000..b3b2c21 --- /dev/null +++ b/universal7885-common/interfaces/hardware/fmradio/1.1/types.hal @@ -0,0 +1,20 @@ +// Copyright (C) 2021 Eureka Team +// +// 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. + +package vendor.eureka.hardware.fmradio@1.1; + +enum Status : int32_t { + YES, + NO, +};