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