blob: 730e2d937349c83051a5ad338e330b0f0ad05641 [file] [log] [blame]
/*---------------------------------------------------------------------------*
* AudioStreamImpl.java *
* *
* Copyright 2007, 2008 Nuance Communciations, Inc. *
* *
* 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 android.speech.recognition.impl;
import android.speech.recognition.AudioStream;
/**
*/
public class AudioStreamImpl implements AudioStream, Runnable
{
/**
* Reference to the native object.
*/
private long nativeObject;
/**
* Creates a new AudioStreamImpl.
*
* @param nativeObj a reference to the native object
*/
public AudioStreamImpl(long nativeObj)
{
nativeObject = nativeObj;
}
public synchronized void run()
{
dispose();
}
public long getNativeObject() {
synchronized (AudioStreamImpl.class)
{
return nativeObject;
}
}
/**
* Releases the native resources associated with the object.
*/
@SuppressWarnings("deprecation")
public void dispose()
{
synchronized (AudioStreamImpl.class)
{
if (nativeObject != 0)
{
deleteNativeObject(nativeObject);
nativeObject = 0;
}
}
}
@Override
protected void finalize() throws Throwable
{
dispose();
super.finalize();
}
/**
* Deletes a native object.
*
* @param nativeObject pointer to the native object
*/
private native void deleteNativeObject(long nativeObject);
}