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;
21bd16f457a181b8dd32305cedc71ea492a3450739Jaewan Kimimport android.media.session.ICallback;
226e2b01ce75fb1d5647d5d788d8a5644c30cb3068Jaewan Kimimport android.media.session.IOnMediaKeyListener;
23bd16f457a181b8dd32305cedc71ea492a3450739Jaewan Kimimport android.media.session.IOnVolumeKeyLongPressListener;
2407c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErikimport android.media.session.ISession;
2507c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErikimport android.media.session.ISessionCallback;
2601fe661ae5da3739215d93922412df4b24c859a2RoboErikimport android.os.Bundle;
278a2cfc309ab9126e90022916967c65a793c034f0RoboErikimport android.view.KeyEvent;
2801fe661ae5da3739215d93922412df4b24c859a2RoboErik
2901fe661ae5da3739215d93922412df4b24c859a2RoboErik/**
3001fe661ae5da3739215d93922412df4b24c859a2RoboErik * Interface to the MediaSessionManagerService
3101fe661ae5da3739215d93922412df4b24c859a2RoboErik * @hide
3201fe661ae5da3739215d93922412df4b24c859a2RoboErik */
3307c7077c54717dbbf2c401ea32d00fa6df6d77c6RoboErikinterface ISessionManager {
34a5b02329209be355eafadbdf9ee685ffa58d3148RoboErik    ISession createSession(String packageName, in ISessionCallback cb, String tag, int userId);
35a5b02329209be355eafadbdf9ee685ffa58d3148RoboErik    List<IBinder> getSessions(in ComponentName compName, int userId);
368a2cfc309ab9126e90022916967c65a793c034f0RoboErik    void dispatchMediaKeyEvent(in KeyEvent keyEvent, boolean needWakeLock);
375026936e49540449165fd5881231f8970a29ea91Jaewan Kim    void dispatchVolumeKeyEvent(in KeyEvent keyEvent, int stream, boolean musicOnly);
381ff5b1648a051e9650614f0c0f1b3f449777db81RoboErik    void dispatchAdjustVolume(int suggestedStream, int delta, int flags);
392e7a9167aeefeb451f8d8c769175b9a0163744f3RoboErik    void addSessionsListener(in IActiveSessionsListener listener, in ComponentName compName,
402e7a9167aeefeb451f8d8c769175b9a0163744f3RoboErik            int userId);
412e7a9167aeefeb451f8d8c769175b9a0163744f3RoboErik    void removeSessionsListener(in IActiveSessionsListener listener);
4219c9518f6a817d53d5234de0020313cab6950b2fRoboErik
4319c9518f6a817d53d5234de0020313cab6950b2fRoboErik    // This is for the system volume UI only
4419c9518f6a817d53d5234de0020313cab6950b2fRoboErik    void setRemoteVolumeController(in IRemoteVolumeController rvc);
45de9ba39c1714f5bc9e1785d8224ad26c132b6293RoboErik
46de9ba39c1714f5bc9e1785d8224ad26c132b6293RoboErik    // For PhoneWindowManager to precheck media keys
47de9ba39c1714f5bc9e1785d8224ad26c132b6293RoboErik    boolean isGlobalPriorityActive();
485026936e49540449165fd5881231f8970a29ea91Jaewan Kim
49bd16f457a181b8dd32305cedc71ea492a3450739Jaewan Kim    void setCallback(in ICallback callback);
505026936e49540449165fd5881231f8970a29ea91Jaewan Kim    void setOnVolumeKeyLongPressListener(in IOnVolumeKeyLongPressListener listener);
516e2b01ce75fb1d5647d5d788d8a5644c30cb3068Jaewan Kim    void setOnMediaKeyListener(in IOnMediaKeyListener listener);
525026936e49540449165fd5881231f8970a29ea91Jaewan Kim}
53