ISession.aidl revision b69ffd4dc2c8fa85e0064151141ebeee90de471e
101fe661ae5da3739215d93922412df4b24c859a2RoboErik/* Copyright (C) 2014 The Android Open Source Project
201fe661ae5da3739215d93922412df4b24c859a2RoboErik *
301fe661ae5da3739215d93922412df4b24c859a2RoboErik * Licensed under the Apache License, Version 2.0 (the "License");
401fe661ae5da3739215d93922412df4b24c859a2RoboErik * you may not use this file except in compliance with the License.
501fe661ae5da3739215d93922412df4b24c859a2RoboErik * You may obtain a copy of the License at
601fe661ae5da3739215d93922412df4b24c859a2RoboErik *
701fe661ae5da3739215d93922412df4b24c859a2RoboErik *      http://www.apache.org/licenses/LICENSE-2.0
801fe661ae5da3739215d93922412df4b24c859a2RoboErik *
901fe661ae5da3739215d93922412df4b24c859a2RoboErik * Unless required by applicable law or agreed to in writing, software
1001fe661ae5da3739215d93922412df4b24c859a2RoboErik * distributed under the License is distributed on an "AS IS" BASIS,
1101fe661ae5da3739215d93922412df4b24c859a2RoboErik * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1201fe661ae5da3739215d93922412df4b24c859a2RoboErik * See the License for the specific language governing permissions and
1301fe661ae5da3739215d93922412df4b24c859a2RoboErik * limitations under the License.
1401fe661ae5da3739215d93922412df4b24c859a2RoboErik */
1501fe661ae5da3739215d93922412df4b24c859a2RoboErik
162f5b057da7d05d5d699a272aa24fd7c97cdda820RoboErikpackage android.media.session;
1701fe661ae5da3739215d93922412df4b24c859a2RoboErik
1842ea7eecd149161ed192d3029f0d77d1d08a4aa5RoboErikimport android.media.MediaMetadata;
1907c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErikimport android.media.session.ISessionController;
2007c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErikimport android.media.session.RouteOptions;
2107c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErikimport android.media.session.RouteCommand;
2207c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErikimport android.media.session.RouteInfo;
238ae0f34db936a649ddaf9cdd086c224f6514efebRoboErikimport android.media.session.PlaybackState;
2401fe661ae5da3739215d93922412df4b24c859a2RoboErikimport android.os.Bundle;
2507c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErikimport android.os.ResultReceiver;
2601fe661ae5da3739215d93922412df4b24c859a2RoboErik
2701fe661ae5da3739215d93922412df4b24c859a2RoboErik/**
2801fe661ae5da3739215d93922412df4b24c859a2RoboErik * Interface to a MediaSession in the system.
2901fe661ae5da3739215d93922412df4b24c859a2RoboErik * @hide
3001fe661ae5da3739215d93922412df4b24c859a2RoboErik */
3107c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErikinterface ISession {
328ae0f34db936a649ddaf9cdd086c224f6514efebRoboErik    void sendEvent(String event, in Bundle data);
3307c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErik    ISessionController getController();
34a8f951462791a16f47e8c07e552232f31dcefac5RoboErik    void setFlags(int flags);
35a8f951462791a16f47e8c07e552232f31dcefac5RoboErik    void setActive(boolean active);
3601fe661ae5da3739215d93922412df4b24c859a2RoboErik    void destroy();
378ae0f34db936a649ddaf9cdd086c224f6514efebRoboErik
3807c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErik    // These commands are for setting up and communicating with routes
3907c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErik    // Returns true if the route was set for this session
4007c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErik    boolean setRoute(in RouteInfo route);
4107c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErik    void setRouteOptions(in List<RouteOptions> options);
4207c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErik    void connectToRoute(in RouteInfo route, in RouteOptions options);
434646d288821d62fdfe481be67d8b7fed7d7eabd8RoboErik    void disconnectFromRoute(in RouteInfo route);
4407c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErik    void sendRouteCommand(in RouteCommand event, in ResultReceiver cb);
4507c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErik
468ae0f34db936a649ddaf9cdd086c224f6514efebRoboErik    // These commands are for the TransportPerformer
478ae0f34db936a649ddaf9cdd086c224f6514efebRoboErik    void setMetadata(in MediaMetadata metadata);
488ae0f34db936a649ddaf9cdd086c224f6514efebRoboErik    void setPlaybackState(in PlaybackState state);
498ae0f34db936a649ddaf9cdd086c224f6514efebRoboErik    void setRatingType(int type);
50b69ffd4dc2c8fa85e0064151141ebeee90de471eRoboErik
51b69ffd4dc2c8fa85e0064151141ebeee90de471eRoboErik    // These commands relate to volume handling
52b69ffd4dc2c8fa85e0064151141ebeee90de471eRoboErik    void configureVolumeHandling(int type, int arg1, int arg2);
53b69ffd4dc2c8fa85e0064151141ebeee90de471eRoboErik    void setCurrentVolume(int currentVolume);
5401fe661ae5da3739215d93922412df4b24c859a2RoboErik}