com.badlogic.gdx.audio.AudioDevice.java Source code

Java tutorial

Introduction

Here is the source code for com.badlogic.gdx.audio.AudioDevice.java

Source

/*******************************************************************************
 * Copyright 2011 See AUTHORS file.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/

package com.badlogic.gdx.audio;

import com.badlogic.gdx.utils.Disposable;

/** Encapsulates an audio device in 44.1khz mono or stereo mode. Use the {@link #writeSamples(float[], int, int)} and
 * {@link #writeSamples(short[], int, int)} methods to write float or 16-bit signed short PCM data directly to the audio device.
 * Stereo samples are interleaved in the order left channel sample, right channel sample. The {@link #dispose()} method must be
 * called when this AudioDevice is no longer needed.
 * 
 * @author badlogicgames@gmail.com */
public interface AudioDevice extends Disposable {
    /** @return whether this AudioDevice is in mono or stereo mode. */
    public boolean isMono();

    /** Writes the array of 16-bit signed PCM samples to the audio device and blocks until they have been processed.
     * 
     * @param samples The samples.
     * @param offset The offset into the samples array
     * @param numSamples the number of samples to write to the device */
    public void writeSamples(short[] samples, int offset, int numSamples);

    /** Writes the array of float PCM samples to the audio device and blocks until they have been processed.
     * 
     * @param samples The samples.
     * @param offset The offset into the samples array
     * @param numSamples the number of samples to write to the device */
    public void writeSamples(float[] samples, int offset, int numSamples);

    /** @return the latency in samples. */
    public int getLatency();

    /** Frees all resources associated with this AudioDevice. Needs to be called when the device is no longer needed. */
    public void dispose();

    /** Sets the volume in the range [0,1]. */
    public void setVolume(float volume);
}