• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.content.Intent;
21 import android.graphics.Rect;
22 import android.media.PlaybackParams;
23 import android.media.tv.DvbDeviceInfo;
24 import android.media.tv.ITvInputClient;
25 import android.media.tv.ITvInputHardware;
26 import android.media.tv.ITvInputHardwareCallback;
27 import android.media.tv.ITvInputManagerCallback;
28 import android.media.tv.TunedInfo;
29 import android.media.tv.TvContentRatingSystemInfo;
30 import android.media.tv.TvInputHardwareInfo;
31 import android.media.tv.TvInputInfo;
32 import android.media.tv.TvStreamConfig;
33 import android.media.tv.TvTrackInfo;
34 import android.net.Uri;
35 import android.os.Bundle;
36 import android.os.ParcelFileDescriptor;
37 import android.view.Surface;
38 
39 /**
40  * Interface to the TV input manager service.
41  * @hide
42  */
43 interface ITvInputManager {
getTvInputList(int userId)44     List<TvInputInfo> getTvInputList(int userId);
getTvInputInfo(in String inputId, int userId)45     TvInputInfo getTvInputInfo(in String inputId, int userId);
updateTvInputInfo(in TvInputInfo inputInfo, int userId)46     void updateTvInputInfo(in TvInputInfo inputInfo, int userId);
getTvInputState(in String inputId, int userId)47     int getTvInputState(in String inputId, int userId);
48 
getTvContentRatingSystemList(int userId)49     List<TvContentRatingSystemInfo> getTvContentRatingSystemList(int userId);
50 
registerCallback(in ITvInputManagerCallback callback, int userId)51     void registerCallback(in ITvInputManagerCallback callback, int userId);
unregisterCallback(in ITvInputManagerCallback callback, int userId)52     void unregisterCallback(in ITvInputManagerCallback callback, int userId);
53 
isParentalControlsEnabled(int userId)54     boolean isParentalControlsEnabled(int userId);
setParentalControlsEnabled(boolean enabled, int userId)55     void setParentalControlsEnabled(boolean enabled, int userId);
isRatingBlocked(in String rating, int userId)56     boolean isRatingBlocked(in String rating, int userId);
getBlockedRatings(int userId)57     List<String> getBlockedRatings(int userId);
addBlockedRating(in String rating, int userId)58     void addBlockedRating(in String rating, int userId);
removeBlockedRating(in String rating, int userId)59     void removeBlockedRating(in String rating, int userId);
60 
createSession(in ITvInputClient client, in String inputId, boolean isRecordingSession, int seq, int userId)61     void createSession(in ITvInputClient client, in String inputId, boolean isRecordingSession,
62             int seq, int userId);
releaseSession(in IBinder sessionToken, int userId)63     void releaseSession(in IBinder sessionToken, int userId);
getClientPid(in String sessionId)64     int getClientPid(in String sessionId);
65 
setMainSession(in IBinder sessionToken, int userId)66     void setMainSession(in IBinder sessionToken, int userId);
setSurface(in IBinder sessionToken, in Surface surface, int userId)67     void setSurface(in IBinder sessionToken, in Surface surface, int userId);
dispatchSurfaceChanged(in IBinder sessionToken, int format, int width, int height, int userId)68     void dispatchSurfaceChanged(in IBinder sessionToken, int format, int width, int height,
69             int userId);
setVolume(in IBinder sessionToken, float volume, int userId)70     void setVolume(in IBinder sessionToken, float volume, int userId);
tune(in IBinder sessionToken, in Uri channelUri, in Bundle params, int userId)71     void tune(in IBinder sessionToken, in Uri channelUri, in Bundle params, int userId);
setCaptionEnabled(in IBinder sessionToken, boolean enabled, int userId)72     void setCaptionEnabled(in IBinder sessionToken, boolean enabled, int userId);
selectTrack(in IBinder sessionToken, int type, in String trackId, int userId)73     void selectTrack(in IBinder sessionToken, int type, in String trackId, int userId);
74 
sendAppPrivateCommand(in IBinder sessionToken, in String action, in Bundle data, int userId)75     void sendAppPrivateCommand(in IBinder sessionToken, in String action, in Bundle data,
76             int userId);
77 
createOverlayView(in IBinder sessionToken, in IBinder windowToken, in Rect frame, int userId)78     void createOverlayView(in IBinder sessionToken, in IBinder windowToken, in Rect frame,
79             int userId);
relayoutOverlayView(in IBinder sessionToken, in Rect frame, int userId)80     void relayoutOverlayView(in IBinder sessionToken, in Rect frame, int userId);
removeOverlayView(in IBinder sessionToken, int userId)81     void removeOverlayView(in IBinder sessionToken, int userId);
82 
unblockContent(in IBinder sessionToken, in String unblockedRating, int userId)83     void unblockContent(in IBinder sessionToken, in String unblockedRating, int userId);
84 
timeShiftPlay(in IBinder sessionToken, in Uri recordedProgramUri, int userId)85     void timeShiftPlay(in IBinder sessionToken, in Uri recordedProgramUri, int userId);
timeShiftPause(in IBinder sessionToken, int userId)86     void timeShiftPause(in IBinder sessionToken, int userId);
timeShiftResume(in IBinder sessionToken, int userId)87     void timeShiftResume(in IBinder sessionToken, int userId);
timeShiftSeekTo(in IBinder sessionToken, long timeMs, int userId)88     void timeShiftSeekTo(in IBinder sessionToken, long timeMs, int userId);
timeShiftSetPlaybackParams(in IBinder sessionToken, in PlaybackParams params, int userId)89     void timeShiftSetPlaybackParams(in IBinder sessionToken, in PlaybackParams params, int userId);
timeShiftEnablePositionTracking(in IBinder sessionToken, boolean enable, int userId)90     void timeShiftEnablePositionTracking(in IBinder sessionToken, boolean enable, int userId);
91 
getCurrentTunedInfos(int userId)92     List<TunedInfo> getCurrentTunedInfos(int userId);
93 
94     // For the recording session
startRecording(in IBinder sessionToken, in Uri programUri, in Bundle params, int userId)95     void startRecording(in IBinder sessionToken, in Uri programUri, in Bundle params, int userId);
stopRecording(in IBinder sessionToken, int userId)96     void stopRecording(in IBinder sessionToken, int userId);
pauseRecording(in IBinder sessionToken, in Bundle params, int userId)97     void pauseRecording(in IBinder sessionToken, in Bundle params, int userId);
resumeRecording(in IBinder sessionToken, in Bundle params, int userId)98     void resumeRecording(in IBinder sessionToken, in Bundle params, int userId);
99 
100     // For TV input hardware binding
getHardwareList()101     List<TvInputHardwareInfo> getHardwareList();
acquireTvInputHardware(int deviceId, in ITvInputHardwareCallback callback, in TvInputInfo info, int userId, String tvInputSessionId, int priorityHint)102     ITvInputHardware acquireTvInputHardware(int deviceId, in ITvInputHardwareCallback callback,
103             in TvInputInfo info, int userId, String tvInputSessionId, int priorityHint);
releaseTvInputHardware(int deviceId, in ITvInputHardware hardware, int userId)104     void releaseTvInputHardware(int deviceId, in ITvInputHardware hardware, int userId);
105 
106     // For TV input capturing
getAvailableTvStreamConfigList(in String inputId, int userId)107     List<TvStreamConfig> getAvailableTvStreamConfigList(in String inputId, int userId);
captureFrame(in String inputId, in Surface surface, in TvStreamConfig config, int userId)108     boolean captureFrame(in String inputId, in Surface surface, in TvStreamConfig config,
109             int userId);
isSingleSessionActive(int userId)110     boolean isSingleSessionActive(int userId);
111 
112     // For DVB device binding
getDvbDeviceList()113     List<DvbDeviceInfo> getDvbDeviceList();
openDvbDevice(in DvbDeviceInfo info, int device)114     ParcelFileDescriptor openDvbDevice(in DvbDeviceInfo info, int device);
115 
116     // For preview channels and programs
sendTvInputNotifyIntent(in Intent intent, int userId)117     void sendTvInputNotifyIntent(in Intent intent, int userId);
requestChannelBrowsable(in Uri channelUri, int userId)118     void requestChannelBrowsable(in Uri channelUri, int userId);
119 
120     // For CTS purpose only. Add/remove a TvInputHardware device
addHardwareDevice(in int deviceId)121     void addHardwareDevice(in int deviceId);
removeHardwareDevice(in int deviceId)122     void removeHardwareDevice(in int deviceId);
123 }
124