/***************************************************************************
 *   Copyright (C) 2016 by Tomasz Bojczuk                  				         *
 *   seelook@gmail.com        						                                 *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 3 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *  You should have received a copy of the GNU General Public License	     *
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.  *
 ***************************************************************************/

package net.sf.nootka;

import org.qtproject.qt5.android.QtNative;
import android.content.Context;
import android.media.AudioManager;


    /**
     * Manages a volume level of Nootka output stream
     */
public class ToutVolume {


        /** Common method to get Android audio manager object */
  private static AudioManager am() {
    Context c = QtNative.activity().getApplicationContext();
    return (AudioManager)c.getSystemService(c.AUDIO_SERVICE);
  }

        /** Displays native Android out volume control */
  public static void show() {
    am().adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_SAME, AudioManager.FLAG_SHOW_UI);
  }

        /** Maximal value of volume (depends on device) */
  public static int maxStreamVolume() {
    return am().getStreamMaxVolume(AudioManager.STREAM_MUSIC);
  }

        /** Current volume */
  public static int streamVolume() {
    return am().getStreamVolume(AudioManager.STREAM_MUSIC);
  }

        /** Sets volume */
  public static void setStreamVolume(int v) {
    am().setStreamVolume(AudioManager.STREAM_MUSIC, v, 0);
  }
}
