159b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartapackage com.jme3.audio.android;
259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
359b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport com.jme3.asset.AssetKey;
459b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport com.jme3.audio.AudioData;
559b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport com.jme3.audio.AudioRenderer;
659b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport com.jme3.util.NativeObject;
759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
859b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartapublic class AndroidAudioData extends AudioData {
959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
1059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    protected AssetKey<?> assetKey;
1159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    protected float currentVolume = 0f;
1259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
1359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    public AndroidAudioData(){
1459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        super();
1559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    }
1659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
1759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    protected AndroidAudioData(int id){
1859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        super(id);
1959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    }
2059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
2159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    public AssetKey<?> getAssetKey() {
2259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        return assetKey;
2359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    }
2459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
2559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    public void setAssetKey(AssetKey<?> assetKey) {
2659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        this.assetKey = assetKey;
2759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    }
2859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
2959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    @Override
3059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    public DataType getDataType() {
3159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        return DataType.Buffer;
3259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    }
3359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
3459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    @Override
3559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    public float getDuration() {
3659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        return 0; // TODO: ???
3759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    }
3859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
3959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    @Override
4059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    public void resetObject() {
4159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        this.id = -1;
4259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        setUpdateNeeded();
4359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    }
4459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
4559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    @Override
4659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    public void deleteObject(Object rendererObject) {
4759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        ((AudioRenderer)rendererObject).deleteAudioData(this);
4859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    }
4959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
5059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    public float getCurrentVolume() {
5159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        return currentVolume;
5259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    }
5359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
5459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    public void setCurrentVolume(float currentVolume) {
5559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        this.currentVolume = currentVolume;
5659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    }
5759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
5859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    @Override
5959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    public NativeObject createDestructableClone() {
6059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        return new AndroidAudioData(id);
6159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    }
6259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta}
63