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 194482b1413656b9c0c5937b4d7a73235f872a6678Tomasz Wasilczykimport android.graphics.Bitmap; 208cfb0e81fdd91b7fe1c02287394ac068287281d5Tomasz Wasilczykimport android.hardware.radio.ProgramSelector; 21347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczykimport android.hardware.radio.RadioManager; 22347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk 23347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk/** {@hide} */ 24347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczykinterface ITuner { 25d7c21d3cbfe8e1016a92234f89d6fe8c110144d1Tomasz Wasilczyk void close(); 26d7c21d3cbfe8e1016a92234f89d6fe8c110144d1Tomasz Wasilczyk 27468a53b71025a42dde24922e0255ab3251e63fbeTomasz Wasilczyk boolean isClosed(); 28468a53b71025a42dde24922e0255ab3251e63fbeTomasz Wasilczyk 298b6db4f2eb02f231dd8006debbc1e1be1181178aTomasz Wasilczyk /** 308b6db4f2eb02f231dd8006debbc1e1be1181178aTomasz Wasilczyk * @throws IllegalArgumentException if config is not valid or null 318b6db4f2eb02f231dd8006debbc1e1be1181178aTomasz Wasilczyk */ 328b6db4f2eb02f231dd8006debbc1e1be1181178aTomasz Wasilczyk void setConfiguration(in RadioManager.BandConfig config); 338b6db4f2eb02f231dd8006debbc1e1be1181178aTomasz Wasilczyk 348b6db4f2eb02f231dd8006debbc1e1be1181178aTomasz Wasilczyk RadioManager.BandConfig getConfiguration(); 358b6db4f2eb02f231dd8006debbc1e1be1181178aTomasz Wasilczyk 369fa0287c1802df074d4039489dcfad712c19bcbaTomasz Wasilczyk /** 379fa0287c1802df074d4039489dcfad712c19bcbaTomasz Wasilczyk * @throws IllegalStateException if tuner was opened without audio 389fa0287c1802df074d4039489dcfad712c19bcbaTomasz Wasilczyk */ 399fa0287c1802df074d4039489dcfad712c19bcbaTomasz Wasilczyk void setMuted(boolean mute); 409fa0287c1802df074d4039489dcfad712c19bcbaTomasz Wasilczyk 419fa0287c1802df074d4039489dcfad712c19bcbaTomasz Wasilczyk boolean isMuted(); 422383793eaee223546985ee12c2f35a3445e34b1cTomasz Wasilczyk 432383793eaee223546985ee12c2f35a3445e34b1cTomasz Wasilczyk /** 442383793eaee223546985ee12c2f35a3445e34b1cTomasz Wasilczyk * @throws IllegalStateException if called out of sequence 452383793eaee223546985ee12c2f35a3445e34b1cTomasz Wasilczyk */ 462383793eaee223546985ee12c2f35a3445e34b1cTomasz Wasilczyk void step(boolean directionDown, boolean skipSubChannel); 472383793eaee223546985ee12c2f35a3445e34b1cTomasz Wasilczyk 482383793eaee223546985ee12c2f35a3445e34b1cTomasz Wasilczyk /** 492383793eaee223546985ee12c2f35a3445e34b1cTomasz Wasilczyk * @throws IllegalStateException if called out of sequence 502383793eaee223546985ee12c2f35a3445e34b1cTomasz Wasilczyk */ 512383793eaee223546985ee12c2f35a3445e34b1cTomasz Wasilczyk void scan(boolean directionDown, boolean skipSubChannel); 522383793eaee223546985ee12c2f35a3445e34b1cTomasz Wasilczyk 532383793eaee223546985ee12c2f35a3445e34b1cTomasz Wasilczyk /** 542383793eaee223546985ee12c2f35a3445e34b1cTomasz Wasilczyk * @throws IllegalArgumentException if invalid arguments are passed 552383793eaee223546985ee12c2f35a3445e34b1cTomasz Wasilczyk * @throws IllegalStateException if called out of sequence 562383793eaee223546985ee12c2f35a3445e34b1cTomasz Wasilczyk */ 578cfb0e81fdd91b7fe1c02287394ac068287281d5Tomasz Wasilczyk void tune(in ProgramSelector selector); 582383793eaee223546985ee12c2f35a3445e34b1cTomasz Wasilczyk 592383793eaee223546985ee12c2f35a3445e34b1cTomasz Wasilczyk /** 602383793eaee223546985ee12c2f35a3445e34b1cTomasz Wasilczyk * @throws IllegalStateException if called out of sequence 612383793eaee223546985ee12c2f35a3445e34b1cTomasz Wasilczyk */ 622383793eaee223546985ee12c2f35a3445e34b1cTomasz Wasilczyk void cancel(); 6337d986d17d0210706be907ce9119b711eeaca235Tomasz Wasilczyk 64c4cd823a2e4ce62d3a1c6ee6c71bb406c564608cTomasz Wasilczyk void cancelAnnouncement(); 65c4cd823a2e4ce62d3a1c6ee6c71bb406c564608cTomasz Wasilczyk 6637d986d17d0210706be907ce9119b711eeaca235Tomasz Wasilczyk RadioManager.ProgramInfo getProgramInformation(); 67d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk 684482b1413656b9c0c5937b4d7a73235f872a6678Tomasz Wasilczyk Bitmap getImage(int id); 694482b1413656b9c0c5937b4d7a73235f872a6678Tomasz Wasilczyk 70d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk /** 7167f9d5070a74a0bf34f0335899a96dedcac26c96Jeff Sharkey * @return {@code true} if the scan was properly scheduled, 72d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk * {@code false} if the scan feature is unavailable 73d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk */ 74d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk boolean startBackgroundScan(); 75d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk 76d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk /** 770f1776d08b43f5f71a9f89b6a4f1838df4d3d744Tomasz Wasilczyk * @param vendorFilter Vendor-specific filter, must be Map<String, String> 7867f9d5070a74a0bf34f0335899a96dedcac26c96Jeff Sharkey * @return the list, or null if scan is in progress 79d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk * @throws IllegalArgumentException if invalid arguments are passed 80d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk * @throws IllegalStateException if the scan has not been started, client may 81d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk * call startBackgroundScan to fix this. 82d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk */ 830f1776d08b43f5f71a9f89b6a4f1838df4d3d744Tomasz Wasilczyk List<RadioManager.ProgramInfo> getProgramList(in Map vendorFilter); 84d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk 85d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk /** 86d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk * @throws IllegalStateException if the switch is not supported at current 87d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk * configuration. 88d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk */ 89d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk boolean isAnalogForced(); 90d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk 91d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk /** 92d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk * @throws IllegalStateException if the switch is not supported at current 93d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk * configuration. 94d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk */ 95d3d53f669268fe8dd15f16abbd0504f7b9e38405Tomasz Wasilczyk void setAnalogForced(boolean isForced); 9639ac214838988a33096529bd4e1f003ef7895491Tomasz Wasilczyk 9739ac214838988a33096529bd4e1f003ef7895491Tomasz Wasilczyk boolean isAntennaConnected(); 98347192e0da1f39347e7ab7b58b002f166b4afaa7Tomasz Wasilczyk} 99