124fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown/*
224fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * Copyright (C) 2014 The Android Open Source Project
324fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown *
424fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * Licensed under the Apache License, Version 2.0 (the "License");
524fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * you may not use this file except in compliance with the License.
624fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * You may obtain a copy of the License at
724fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown *
824fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown *      http://www.apache.org/licenses/LICENSE-2.0
924fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown *
1024fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * Unless required by applicable law or agreed to in writing, software
1124fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * distributed under the License is distributed on an "AS IS" BASIS,
1224fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1324fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * See the License for the specific language governing permissions and
1424fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * limitations under the License.
1524fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown */
1624fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown
1724fa6c0dd42df057729e1a258388183f94da7f82Jeff Brownpackage android.support.v4.media;
1824fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown
1924fa6c0dd42df057729e1a258388183f94da7f82Jeff Brownimport android.media.VolumeProvider;
2024fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown
2124fa6c0dd42df057729e1a258388183f94da7f82Jeff Brownclass VolumeProviderCompatApi21 {
22e0c3fd8d5c24c7e8bcc54234f30c01e78137b67eRoboErik    public static Object createVolumeProvider(int volumeControl, int maxVolume, int currentVolume,
2324fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown            final Delegate delegate) {
24e0c3fd8d5c24c7e8bcc54234f30c01e78137b67eRoboErik        return new VolumeProvider(volumeControl, maxVolume, currentVolume) {
2524fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown            @Override
2624fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown            public void onSetVolumeTo(int volume) {
2724fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown                delegate.onSetVolumeTo(volume);
2824fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown            }
2924fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown
3024fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown            @Override
31ead061ff8567599fa905a1ee1de2532b7050d7faRoboErik            public void onAdjustVolume(int direction) {
32ead061ff8567599fa905a1ee1de2532b7050d7faRoboErik                delegate.onAdjustVolume(direction);
3324fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown            }
3424fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown        };
3524fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown    }
3624fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown
37e0c3fd8d5c24c7e8bcc54234f30c01e78137b67eRoboErik    public static void setCurrentVolume(Object volumeProviderObj, int currentVolume) {
38e0c3fd8d5c24c7e8bcc54234f30c01e78137b67eRoboErik        ((VolumeProvider) volumeProviderObj).setCurrentVolume(currentVolume);
3924fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown    }
4024fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown
4124fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown    public interface Delegate {
4224fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown        void onSetVolumeTo(int volume);
43ead061ff8567599fa905a1ee1de2532b7050d7faRoboErik        void onAdjustVolume(int delta);
4424fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown    }
4524fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown}
46