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
18e7880d8eb1903d42e4e2a90c99b58e2240e01e82RoboErikimport android.content.ComponentName;
1919c9518f6a817d53d5234de0020313cab6950b2fRoboErikimport android.media.IRemoteVolumeController;
202e7a9167aeefeb451f8d8c769175b9a0163744f3RoboErikimport android.media.session.IActiveSessionsListener;
2107c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErikimport android.media.session.ISession;
2207c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErikimport android.media.session.ISessionCallback;
2301fe661ae5da3739215d93922412df4b24c859a2RoboErikimport android.os.Bundle;
248a2cfc309ab9126e90022916967c65a793c034f0RoboErikimport android.view.KeyEvent;
2501fe661ae5da3739215d93922412df4b24c859a2RoboErik
2601fe661ae5da3739215d93922412df4b24c859a2RoboErik/**
2701fe661ae5da3739215d93922412df4b24c859a2RoboErik * Interface to the MediaSessionManagerService
2801fe661ae5da3739215d93922412df4b24c859a2RoboErik * @hide
2901fe661ae5da3739215d93922412df4b24c859a2RoboErik */
3007c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErikinterface ISessionManager {
31a5b02329209be355eafadbdf9ee685ffa58d3148RoboErik    ISession createSession(String packageName, in ISessionCallback cb, String tag, int userId);
32a5b02329209be355eafadbdf9ee685ffa58d3148RoboErik    List<IBinder> getSessions(in ComponentName compName, int userId);
338a2cfc309ab9126e90022916967c65a793c034f0RoboErik    void dispatchMediaKeyEvent(in KeyEvent keyEvent, boolean needWakeLock);
341ff5b1648a051e9650614f0c0f1b3f449777db81RoboErik    void dispatchAdjustVolume(int suggestedStream, int delta, int flags);
352e7a9167aeefeb451f8d8c769175b9a0163744f3RoboErik    void addSessionsListener(in IActiveSessionsListener listener, in ComponentName compName,
362e7a9167aeefeb451f8d8c769175b9a0163744f3RoboErik            int userId);
372e7a9167aeefeb451f8d8c769175b9a0163744f3RoboErik    void removeSessionsListener(in IActiveSessionsListener listener);
3819c9518f6a817d53d5234de0020313cab6950b2fRoboErik
3919c9518f6a817d53d5234de0020313cab6950b2fRoboErik    // This is for the system volume UI only
4019c9518f6a817d53d5234de0020313cab6950b2fRoboErik    void setRemoteVolumeController(in IRemoteVolumeController rvc);
41de9ba39c1714f5bc9e1785d8224ad26c132b6293RoboErik
42de9ba39c1714f5bc9e1785d8224ad26c132b6293RoboErik    // For PhoneWindowManager to precheck media keys
43de9ba39c1714f5bc9e1785d8224ad26c132b6293RoboErik    boolean isGlobalPriorityActive();
4401fe661ae5da3739215d93922412df4b24c859a2RoboErik}