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 setBluetoothA2dpOn(IMediaRouterClient client, boolean on)42 void setBluetoothA2dpOn(IMediaRouterClient client, boolean on); setDiscoveryRequest(IMediaRouterClient client, int routeTypes, boolean activeScan)43 void setDiscoveryRequest(IMediaRouterClient client, int routeTypes, boolean activeScan); setSelectedRoute(IMediaRouterClient client, String routeId, boolean explicit)44 void setSelectedRoute(IMediaRouterClient client, String routeId, boolean explicit); requestSetVolume(IMediaRouterClient client, String routeId, int volume)45 void requestSetVolume(IMediaRouterClient client, String routeId, int volume); requestUpdateVolume(IMediaRouterClient client, String routeId, int direction)46 void requestUpdateVolume(IMediaRouterClient client, String routeId, int direction); 47 48 // Note: When changing this file, match the order of methods below with 49 // MediaRouterService.java for readability. 50 51 // Methods for MediaRouter2 enforceMediaContentControlPermission()52 void enforceMediaContentControlPermission(); getSystemRoutes()53 List<MediaRoute2Info> getSystemRoutes(); getSystemSessionInfo()54 RoutingSessionInfo getSystemSessionInfo(); 55 registerRouter2(IMediaRouter2 router, String packageName)56 void registerRouter2(IMediaRouter2 router, String packageName); unregisterRouter2(IMediaRouter2 router)57 void unregisterRouter2(IMediaRouter2 router); setDiscoveryRequestWithRouter2(IMediaRouter2 router, in RouteDiscoveryPreference preference)58 void setDiscoveryRequestWithRouter2(IMediaRouter2 router, 59 in RouteDiscoveryPreference preference); setRouteVolumeWithRouter2(IMediaRouter2 router, in MediaRoute2Info route, int volume)60 void setRouteVolumeWithRouter2(IMediaRouter2 router, in MediaRoute2Info route, int volume); 61 requestCreateSessionWithRouter2(IMediaRouter2 router, int requestId, long managerRequestId, in RoutingSessionInfo oldSession, in MediaRoute2Info route, in @nullable Bundle sessionHints)62 void requestCreateSessionWithRouter2(IMediaRouter2 router, int requestId, long managerRequestId, 63 in RoutingSessionInfo oldSession, in MediaRoute2Info route, 64 in @nullable Bundle sessionHints); selectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route)65 void selectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route); deselectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route)66 void deselectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route); transferToRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route)67 void transferToRouteWithRouter2(IMediaRouter2 router, String sessionId, 68 in MediaRoute2Info route); setSessionVolumeWithRouter2(IMediaRouter2 router, String sessionId, int volume)69 void setSessionVolumeWithRouter2(IMediaRouter2 router, String sessionId, int volume); releaseSessionWithRouter2(IMediaRouter2 router, String sessionId)70 void releaseSessionWithRouter2(IMediaRouter2 router, String sessionId); 71 72 // Methods for MediaRouter2Manager getActiveSessions(IMediaRouter2Manager manager)73 List<RoutingSessionInfo> getActiveSessions(IMediaRouter2Manager manager); registerManager(IMediaRouter2Manager manager, String packageName)74 void registerManager(IMediaRouter2Manager manager, String packageName); unregisterManager(IMediaRouter2Manager manager)75 void unregisterManager(IMediaRouter2Manager manager); setRouteVolumeWithManager(IMediaRouter2Manager manager, int requestId, in MediaRoute2Info route, int volume)76 void setRouteVolumeWithManager(IMediaRouter2Manager manager, int requestId, 77 in MediaRoute2Info route, int volume); startScan(IMediaRouter2Manager manager)78 void startScan(IMediaRouter2Manager manager); stopScan(IMediaRouter2Manager manager)79 void stopScan(IMediaRouter2Manager manager); 80 requestCreateSessionWithManager(IMediaRouter2Manager manager, int requestId, in RoutingSessionInfo oldSession, in @nullable MediaRoute2Info route)81 void requestCreateSessionWithManager(IMediaRouter2Manager manager, int requestId, 82 in RoutingSessionInfo oldSession, in @nullable MediaRoute2Info route); selectRouteWithManager(IMediaRouter2Manager manager, int requestId, String sessionId, in MediaRoute2Info route)83 void selectRouteWithManager(IMediaRouter2Manager manager, int requestId, 84 String sessionId, in MediaRoute2Info route); deselectRouteWithManager(IMediaRouter2Manager manager, int requestId, String sessionId, in MediaRoute2Info route)85 void deselectRouteWithManager(IMediaRouter2Manager manager, int requestId, 86 String sessionId, in MediaRoute2Info route); transferToRouteWithManager(IMediaRouter2Manager manager, int requestId, String sessionId, in MediaRoute2Info route)87 void transferToRouteWithManager(IMediaRouter2Manager manager, int requestId, 88 String sessionId, in MediaRoute2Info route); setSessionVolumeWithManager(IMediaRouter2Manager manager, int requestId, String sessionId, int volume)89 void setSessionVolumeWithManager(IMediaRouter2Manager manager, int requestId, 90 String sessionId, int volume); releaseSessionWithManager(IMediaRouter2Manager manager, int requestId, String sessionId)91 void releaseSessionWithManager(IMediaRouter2Manager manager, int requestId, String sessionId); 92 } 93