1 /*
2  * Copyright (C) 2014 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.media.tv;
18 
19 import android.content.ComponentName;
20 import android.graphics.Rect;
21 import android.media.PlaybackParams;
22 import android.media.tv.DvbDeviceInfo;
23 import android.media.tv.ITvInputClient;
24 import android.media.tv.ITvInputHardware;
25 import android.media.tv.ITvInputHardwareCallback;
26 import android.media.tv.ITvInputManagerCallback;
27 import android.media.tv.TvContentRatingSystemInfo;
28 import android.media.tv.TvInputHardwareInfo;
29 import android.media.tv.TvInputInfo;
30 import android.media.tv.TvStreamConfig;
31 import android.media.tv.TvTrackInfo;
32 import android.net.Uri;
33 import android.os.Bundle;
34 import android.os.ParcelFileDescriptor;
35 import android.view.Surface;
36 
37 /**
38  * Interface to the TV input manager service.
39  * @hide
40  */
41 interface ITvInputManager {
getTvInputList(int userId)42     List<TvInputInfo> getTvInputList(int userId);
getTvInputInfo(in String inputId, int userId)43     TvInputInfo getTvInputInfo(in String inputId, int userId);
getTvInputState(in String inputId, int userId)44     int getTvInputState(in String inputId, int userId);
45 
getTvContentRatingSystemList(int userId)46     List<TvContentRatingSystemInfo> getTvContentRatingSystemList(int userId);
47 
registerCallback(in ITvInputManagerCallback callback, int userId)48     void registerCallback(in ITvInputManagerCallback callback, int userId);
unregisterCallback(in ITvInputManagerCallback callback, int userId)49     void unregisterCallback(in ITvInputManagerCallback callback, int userId);
50 
isParentalControlsEnabled(int userId)51     boolean isParentalControlsEnabled(int userId);
setParentalControlsEnabled(boolean enabled, int userId)52     void setParentalControlsEnabled(boolean enabled, int userId);
isRatingBlocked(in String rating, int userId)53     boolean isRatingBlocked(in String rating, int userId);
getBlockedRatings(int userId)54     List<String> getBlockedRatings(int userId);
addBlockedRating(in String rating, int userId)55     void addBlockedRating(in String rating, int userId);
removeBlockedRating(in String rating, int userId)56     void removeBlockedRating(in String rating, int userId);
57 
createSession(in ITvInputClient client, in String inputId, int seq, int userId)58     void createSession(in ITvInputClient client, in String inputId, int seq, int userId);
releaseSession(in IBinder sessionToken, int userId)59     void releaseSession(in IBinder sessionToken, int userId);
60 
setMainSession(in IBinder sessionToken, int userId)61     void setMainSession(in IBinder sessionToken, int userId);
setSurface(in IBinder sessionToken, in Surface surface, int userId)62     void setSurface(in IBinder sessionToken, in Surface surface, int userId);
dispatchSurfaceChanged(in IBinder sessionToken, int format, int width, int height, int userId)63     void dispatchSurfaceChanged(in IBinder sessionToken, int format, int width, int height,
64             int userId);
setVolume(in IBinder sessionToken, float volume, int userId)65     void setVolume(in IBinder sessionToken, float volume, int userId);
tune(in IBinder sessionToken, in Uri channelUri, in Bundle params, int userId)66     void tune(in IBinder sessionToken, in Uri channelUri, in Bundle params, int userId);
setCaptionEnabled(in IBinder sessionToken, boolean enabled, int userId)67     void setCaptionEnabled(in IBinder sessionToken, boolean enabled, int userId);
selectTrack(in IBinder sessionToken, int type, in String trackId, int userId)68     void selectTrack(in IBinder sessionToken, int type, in String trackId, int userId);
69 
sendAppPrivateCommand(in IBinder sessionToken, in String action, in Bundle data, int userId)70     void sendAppPrivateCommand(in IBinder sessionToken, in String action, in Bundle data,
71             int userId);
72 
createOverlayView(in IBinder sessionToken, in IBinder windowToken, in Rect frame, int userId)73     void createOverlayView(in IBinder sessionToken, in IBinder windowToken, in Rect frame,
74             int userId);
relayoutOverlayView(in IBinder sessionToken, in Rect frame, int userId)75     void relayoutOverlayView(in IBinder sessionToken, in Rect frame, int userId);
removeOverlayView(in IBinder sessionToken, int userId)76     void removeOverlayView(in IBinder sessionToken, int userId);
77 
unblockContent(in IBinder sessionToken, in String unblockedRating, int userId)78     void unblockContent(in IBinder sessionToken, in String unblockedRating, int userId);
79 
timeShiftPause(in IBinder sessionToken, int userId)80     void timeShiftPause(in IBinder sessionToken, int userId);
timeShiftResume(in IBinder sessionToken, int userId)81     void timeShiftResume(in IBinder sessionToken, int userId);
timeShiftSeekTo(in IBinder sessionToken, long timeMs, int userId)82     void timeShiftSeekTo(in IBinder sessionToken, long timeMs, int userId);
timeShiftSetPlaybackParams(in IBinder sessionToken, in PlaybackParams params, int userId)83     void timeShiftSetPlaybackParams(in IBinder sessionToken, in PlaybackParams params, int userId);
timeShiftEnablePositionTracking(in IBinder sessionToken, boolean enable, int userId)84     void timeShiftEnablePositionTracking(in IBinder sessionToken, boolean enable, int userId);
85 
86     // For TV input hardware binding
getHardwareList()87     List<TvInputHardwareInfo> getHardwareList();
acquireTvInputHardware(int deviceId, in ITvInputHardwareCallback callback, in TvInputInfo info, int userId)88     ITvInputHardware acquireTvInputHardware(int deviceId, in ITvInputHardwareCallback callback,
89             in TvInputInfo info, int userId);
releaseTvInputHardware(int deviceId, in ITvInputHardware hardware, int userId)90     void releaseTvInputHardware(int deviceId, in ITvInputHardware hardware, int userId);
91 
92     // For TV input capturing
getAvailableTvStreamConfigList(in String inputId, int userId)93     List<TvStreamConfig> getAvailableTvStreamConfigList(in String inputId, int userId);
captureFrame(in String inputId, in Surface surface, in TvStreamConfig config, int userId)94     boolean captureFrame(in String inputId, in Surface surface, in TvStreamConfig config,
95             int userId);
isSingleSessionActive(int userId)96     boolean isSingleSessionActive(int userId);
97 
98     // For DVB device binding
getDvbDeviceList()99     List<DvbDeviceInfo> getDvbDeviceList();
openDvbDevice(in DvbDeviceInfo info, int device)100     ParcelFileDescriptor openDvbDevice(in DvbDeviceInfo info, int device);
101 }
102