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