1 /* 2 * Copyright (C) 2013 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; 18 19 import android.content.Intent; 20 import android.media.IMediaRouter2; 21 import android.media.IMediaRouter2Manager; 22 import android.media.IMediaRouterClient; 23 import android.media.MediaRoute2Info; 24 import android.media.MediaRouterClientState; 25 import android.media.RouteDiscoveryPreference; 26 import android.media.RoutingSessionInfo; 27 import android.os.Bundle; 28 29 /** 30 * {@hide} 31 */ 32 interface IMediaRouterService { 33 //TODO: Merge or remove methods when media router 2 is done. registerClientAsUser(IMediaRouterClient client, String packageName, int userId)34 void registerClientAsUser(IMediaRouterClient client, String packageName, int userId); unregisterClient(IMediaRouterClient client)35 void unregisterClient(IMediaRouterClient client); 36 registerClientGroupId(IMediaRouterClient client, String groupId)37 void registerClientGroupId(IMediaRouterClient client, String groupId); 38 getState(IMediaRouterClient client)39 MediaRouterClientState getState(IMediaRouterClient client); isPlaybackActive(IMediaRouterClient client)40 boolean isPlaybackActive(IMediaRouterClient client); 41 setDiscoveryRequest(IMediaRouterClient client, int routeTypes, boolean activeScan)42 void setDiscoveryRequest(IMediaRouterClient client, int routeTypes, boolean activeScan); setSelectedRoute(IMediaRouterClient client, String routeId, boolean explicit)43 void setSelectedRoute(IMediaRouterClient client, String routeId, boolean explicit); requestSetVolume(IMediaRouterClient client, String routeId, int volume)44 void requestSetVolume(IMediaRouterClient client, String routeId, int volume); requestUpdateVolume(IMediaRouterClient client, String routeId, int direction)45 void requestUpdateVolume(IMediaRouterClient client, String routeId, int direction); 46 47 // Note: When changing this file, match the order of methods below with 48 // MediaRouterService.java for readability. 49 50 // Methods for MediaRouter2 enforceMediaContentControlPermission()51 void enforceMediaContentControlPermission(); getSystemRoutes()52 List<MediaRoute2Info> getSystemRoutes(); getSystemSessionInfo()53 RoutingSessionInfo getSystemSessionInfo(); 54 registerRouter2(IMediaRouter2 router, String packageName)55 void registerRouter2(IMediaRouter2 router, String packageName); unregisterRouter2(IMediaRouter2 router)56 void unregisterRouter2(IMediaRouter2 router); setDiscoveryRequestWithRouter2(IMediaRouter2 router, in RouteDiscoveryPreference preference)57 void setDiscoveryRequestWithRouter2(IMediaRouter2 router, 58 in RouteDiscoveryPreference preference); setRouteVolumeWithRouter2(IMediaRouter2 router, in MediaRoute2Info route, int volume)59 void setRouteVolumeWithRouter2(IMediaRouter2 router, in MediaRoute2Info route, int volume); 60 requestCreateSessionWithRouter2(IMediaRouter2 router, int requestId, long managerRequestId, in RoutingSessionInfo oldSession, in MediaRoute2Info route, in @nullable Bundle sessionHints)61 void requestCreateSessionWithRouter2(IMediaRouter2 router, int requestId, long managerRequestId, 62 in RoutingSessionInfo oldSession, in MediaRoute2Info route, 63 in @nullable Bundle sessionHints); selectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route)64 void selectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route); deselectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route)65 void deselectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route); transferToRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route)66 void transferToRouteWithRouter2(IMediaRouter2 router, String sessionId, 67 in MediaRoute2Info route); setSessionVolumeWithRouter2(IMediaRouter2 router, String sessionId, int volume)68 void setSessionVolumeWithRouter2(IMediaRouter2 router, String sessionId, int volume); releaseSessionWithRouter2(IMediaRouter2 router, String sessionId)69 void releaseSessionWithRouter2(IMediaRouter2 router, String sessionId); 70 71 // Methods for MediaRouter2Manager getActiveSessions(IMediaRouter2Manager manager)72 List<RoutingSessionInfo> getActiveSessions(IMediaRouter2Manager manager); registerManager(IMediaRouter2Manager manager, String packageName)73 void registerManager(IMediaRouter2Manager manager, String packageName); unregisterManager(IMediaRouter2Manager manager)74 void unregisterManager(IMediaRouter2Manager manager); setRouteVolumeWithManager(IMediaRouter2Manager manager, int requestId, in MediaRoute2Info route, int volume)75 void setRouteVolumeWithManager(IMediaRouter2Manager manager, int requestId, 76 in MediaRoute2Info route, int volume); startScan(IMediaRouter2Manager manager)77 void startScan(IMediaRouter2Manager manager); stopScan(IMediaRouter2Manager manager)78 void stopScan(IMediaRouter2Manager manager); 79 requestCreateSessionWithManager(IMediaRouter2Manager manager, int requestId, in RoutingSessionInfo oldSession, in @nullable MediaRoute2Info route)80 void requestCreateSessionWithManager(IMediaRouter2Manager manager, int requestId, 81 in RoutingSessionInfo oldSession, in @nullable MediaRoute2Info route); selectRouteWithManager(IMediaRouter2Manager manager, int requestId, String sessionId, in MediaRoute2Info route)82 void selectRouteWithManager(IMediaRouter2Manager manager, int requestId, 83 String sessionId, in MediaRoute2Info route); deselectRouteWithManager(IMediaRouter2Manager manager, int requestId, String sessionId, in MediaRoute2Info route)84 void deselectRouteWithManager(IMediaRouter2Manager manager, int requestId, 85 String sessionId, in MediaRoute2Info route); transferToRouteWithManager(IMediaRouter2Manager manager, int requestId, String sessionId, in MediaRoute2Info route)86 void transferToRouteWithManager(IMediaRouter2Manager manager, int requestId, 87 String sessionId, in MediaRoute2Info route); setSessionVolumeWithManager(IMediaRouter2Manager manager, int requestId, String sessionId, int volume)88 void setSessionVolumeWithManager(IMediaRouter2Manager manager, int requestId, 89 String sessionId, int volume); releaseSessionWithManager(IMediaRouter2Manager manager, int requestId, String sessionId)90 void releaseSessionWithManager(IMediaRouter2Manager manager, int requestId, String sessionId); 91 } 92