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
18e34c09daf89fb888fe2638e71758573462d85173RoboErikimport android.app.PendingIntent;
19f0593bc17b61c872ae2d7705fb598c5e5056e679Gabriel Pealimport android.content.pm.ParceledListSlice;
209db9bf7034d7dcdf596dc22d521b18975d0dd2b9RoboErikimport android.media.AudioAttributes;
2142ea7eecd149161ed192d3029f0d77d1d08a4aa5RoboErikimport android.media.MediaMetadata;
2207c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErikimport android.media.session.ISessionController;
238ae0f34db936a649ddaf9cdd086c224f6514efebRoboErikimport android.media.session.PlaybackState;
24f0593bc17b61c872ae2d7705fb598c5e5056e679Gabriel Pealimport android.media.session.MediaSession;
2501fe661ae5da3739215d93922412df4b24c859a2RoboErikimport android.os.Bundle;
2607c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErikimport android.os.ResultReceiver;
2701fe661ae5da3739215d93922412df4b24c859a2RoboErik
2801fe661ae5da3739215d93922412df4b24c859a2RoboErik/**
2901fe661ae5da3739215d93922412df4b24c859a2RoboErik * Interface to a MediaSession in the system.
3001fe661ae5da3739215d93922412df4b24c859a2RoboErik * @hide
3101fe661ae5da3739215d93922412df4b24c859a2RoboErik */
3207c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErikinterface ISession {
338ae0f34db936a649ddaf9cdd086c224f6514efebRoboErik    void sendEvent(String event, in Bundle data);
3407c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErik    ISessionController getController();
35a8f951462791a16f47e8c07e552232f31dcefac5RoboErik    void setFlags(int flags);
36a8f951462791a16f47e8c07e552232f31dcefac5RoboErik    void setActive(boolean active);
37b214efbb9170a9f6a4991684a63ca59680074cc7RoboErik    void setMediaButtonReceiver(in PendingIntent mbr);
38e34c09daf89fb888fe2638e71758573462d85173RoboErik    void setLaunchPendingIntent(in PendingIntent pi);
3901fe661ae5da3739215d93922412df4b24c859a2RoboErik    void destroy();
408ae0f34db936a649ddaf9cdd086c224f6514efebRoboErik
418ae0f34db936a649ddaf9cdd086c224f6514efebRoboErik    // These commands are for the TransportPerformer
428ae0f34db936a649ddaf9cdd086c224f6514efebRoboErik    void setMetadata(in MediaMetadata metadata);
438ae0f34db936a649ddaf9cdd086c224f6514efebRoboErik    void setPlaybackState(in PlaybackState state);
44f0593bc17b61c872ae2d7705fb598c5e5056e679Gabriel Peal    void setQueue(in ParceledListSlice queue);
45f0593bc17b61c872ae2d7705fb598c5e5056e679Gabriel Peal    void setQueueTitle(CharSequence title);
46f0593bc17b61c872ae2d7705fb598c5e5056e679Gabriel Peal    void setExtras(in Bundle extras);
478ae0f34db936a649ddaf9cdd086c224f6514efebRoboErik    void setRatingType(int type);
48b69ffd4dc2c8fa85e0064151141ebeee90de471eRoboErik
49b69ffd4dc2c8fa85e0064151141ebeee90de471eRoboErik    // These commands relate to volume handling
509db9bf7034d7dcdf596dc22d521b18975d0dd2b9RoboErik    void setPlaybackToLocal(in AudioAttributes attributes);
519db9bf7034d7dcdf596dc22d521b18975d0dd2b9RoboErik    void setPlaybackToRemote(int control, int max);
52b69ffd4dc2c8fa85e0064151141ebeee90de471eRoboErik    void setCurrentVolume(int currentVolume);
5301a500ed1c6ae3fff66678144ae637aa8cad0eccJeff Brown}
54