1d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent/* 2d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent * Copyright (C) 2015 The Android Open Source Project 3d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent * 4d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent * Licensed under the Apache License, Version 2.0 (the "License"); 5d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent * you may not use this file except in compliance with the License. 6d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent * You may obtain a copy of the License at 7d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent * 8d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent * http://www.apache.org/licenses/LICENSE-2.0 9d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent * 10d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent * Unless required by applicable law or agreed to in writing, software 11d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent * distributed under the License is distributed on an "AS IS" BASIS, 12d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent * See the License for the specific language governing permissions and 14d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent * limitations under the License. 15d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent */ 16d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent 17d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent#ifndef ANDROID_HARDWARE_IRADIO_SERVICE_H 18d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent#define ANDROID_HARDWARE_IRADIO_SERVICE_H 19d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent 20d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent#include <utils/RefBase.h> 21d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent#include <binder/IInterface.h> 22d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent#include <binder/Parcel.h> 23d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent#include <system/radio.h> 24d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent 25d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurentnamespace android { 26d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent 27d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurentclass IRadio; 28d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurentclass IRadioClient; 29d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent 30d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurentclass IRadioService : public IInterface 31d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent{ 32d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurentpublic: 33d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent 34d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent DECLARE_META_INTERFACE(RadioService); 35d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent 36d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent virtual status_t listModules(struct radio_properties *properties, 37d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent uint32_t *numModules) = 0; 38d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent 39d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent virtual status_t attach(const radio_handle_t handle, 40d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent const sp<IRadioClient>& client, 41d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent const struct radio_band_config *config, 42d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent bool withAudio, 43d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent sp<IRadio>& radio) = 0; 44d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent}; 45d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent 46d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent// ---------------------------------------------------------------------------- 47d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent 48d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurentclass BnRadioService: public BnInterface<IRadioService> 49d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent{ 50d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurentpublic: 51d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent virtual status_t onTransact( uint32_t code, 52d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent const Parcel& data, 53d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent Parcel* reply, 54d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent uint32_t flags = 0); 55d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent}; 56d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent 57d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent}; // namespace android 58d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent 59d73697b9b61be2fa227b93b5c4c8e30badd32e71Eric Laurent#endif //ANDROID_HARDWARE_IRADIO_SERVICE_H 60