TunerAdapter.java revision 347192e0da1f39347e7ab7b58b002f166b4afaa7
1347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk/**
2347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk * Copyright (C) 2017 The Android Open Source Project
3347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk *
4347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk * Licensed under the Apache License, Version 2.0 (the "License");
5347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk * you may not use this file except in compliance with the License.
6347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk * You may obtain a copy of the License at
7347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk *
8347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk *      http://www.apache.org/licenses/LICENSE-2.0
9347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk *
10347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk * Unless required by applicable law or agreed to in writing, software
11347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk * distributed under the License is distributed on an "AS IS" BASIS,
12347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk * See the License for the specific language governing permissions and
14347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk * limitations under the License.
15347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk */
16347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
17347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczykpackage android.hardware.radio;
18347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
19347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczykimport android.annotation.NonNull;
20347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczykimport android.annotation.Nullable;
21347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczykimport android.os.RemoteException;
22347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczykimport android.util.Log;
23347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
24347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczykimport java.util.ArrayList;
25347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczykimport java.util.List;
26347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
27347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk/**
28347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk * Implements the RadioTuner interface by forwarding calls to radio service.
29347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk */
30347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczykclass TunerAdapter extends RadioTuner {
31347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    private static final String TAG = "radio.TunerAdapter";
32347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
33347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    @NonNull private final ITuner mTuner;
34347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
35347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    TunerAdapter(ITuner tuner) {
36347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        if (tuner == null) {
37347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk            throw new NullPointerException();
38347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        }
39347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        mTuner = tuner;
40347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    }
41347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
42347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    @Override
43347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    public void close() {
44347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        // TODO(b/36863239): forward to mTuner
45347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        Log.w(TAG, "Close call not implemented");
46347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    }
47347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
48347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    @Override
49347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    public int setConfiguration(RadioManager.BandConfig config) {
50347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        // TODO(b/36863239): forward to mTuner
51347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        throw new RuntimeException("Not implemented");
52347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    }
53347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
54347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    @Override
55347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    public int getConfiguration(RadioManager.BandConfig[] config) {
56347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        // TODO(b/36863239): forward to mTuner
57347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        throw new RuntimeException("Not implemented");
58347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    }
59347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
60347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    @Override
61347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    public int setMute(boolean mute) {
62347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        // TODO(b/36863239): forward to mTuner
63347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        throw new RuntimeException("Not implemented");
64347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    }
65347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
66347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    @Override
67347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    public boolean getMute() {
68347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        // TODO(b/36863239): forward to mTuner
69347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        throw new RuntimeException("Not implemented");
70347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    }
71347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
72347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    @Override
73347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    public int step(int direction, boolean skipSubChannel) {
74347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        // TODO(b/36863239): forward to mTuner
75347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        throw new RuntimeException("Not implemented");
76347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    }
77347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
78347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    @Override
79347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    public int scan(int direction, boolean skipSubChannel) {
80347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        // TODO(b/36863239): forward to mTuner
81347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        throw new RuntimeException("Not implemented");
82347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    }
83347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
84347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    @Override
85347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    public int tune(int channel, int subChannel) {
86347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        // TODO(b/36863239): forward to mTuner
87347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        throw new RuntimeException("Not implemented");
88347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    }
89347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
90347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    @Override
91347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    public int cancel() {
92347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        // TODO(b/36863239): forward to mTuner
93347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        throw new RuntimeException("Not implemented");
94347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    }
95347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
96347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    @Override
97347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    public int getProgramInformation(RadioManager.ProgramInfo[] info) {
98347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        if (info == null || info.length != 1) {
99347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk            throw new IllegalArgumentException("The argument must be an array of length 1");
100347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        }
101347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        try {
102347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk            return mTuner.getProgramInformation(info);
103347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        } catch (RemoteException e) {
104347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk            throw e.rethrowFromSystemServer();
105347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        }
106347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    }
107347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
108347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    @Override
109347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    public boolean startBackgroundScan() {
110347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        // TODO(b/36863239): forward to mTuner
111347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        throw new RuntimeException("Not implemented");
112347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    }
113347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
114347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    @Override
115347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    public @NonNull List<RadioManager.ProgramInfo> getProgramList(@Nullable String filter) {
116347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        // TODO(b/36863239): forward to mTuner
117347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        throw new RuntimeException("Not implemented");
118347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    }
119347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
120347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    @Override
121347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    public boolean isAnalogForced() {
122347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        // TODO(b/36863239): forward to mTuner
123347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        throw new RuntimeException("Not implemented");
124347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    }
125347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
126347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    @Override
127347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    public void setAnalogForced(boolean isForced) {
128347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        // TODO(b/36863239): forward to mTuner
129347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        throw new RuntimeException("Not implemented");
130347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    }
131347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
132347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    @Override
133347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    public boolean isAntennaConnected() {
134347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        // TODO(b/36863239): forward to mTuner
135347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        throw new RuntimeException("Not implemented");
136347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    }
137347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk
138347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    @Override
139347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    public boolean hasControl() {
140347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        // TODO(b/36863239): forward to mTuner
141347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk        throw new RuntimeException("Not implemented");
142347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk    }
143347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk}
144