/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_android_tv_tuner_TunerHal */

#ifndef _Included_com_android_tv_tuner_TunerHal
#define _Included_com_android_tv_tuner_TunerHal
#ifdef __cplusplus
extern "C" {
#endif
#undef com_android_tv_tuner_TunerHal_DEBUG
#define com_android_tv_tuner_TunerHal_DEBUG 0L
#undef com_android_tv_tuner_TunerHal_FILTER_TYPE_OTHER
#define com_android_tv_tuner_TunerHal_FILTER_TYPE_OTHER 0L
#undef com_android_tv_tuner_TunerHal_FILTER_TYPE_AUDIO
#define com_android_tv_tuner_TunerHal_FILTER_TYPE_AUDIO 1L
#undef com_android_tv_tuner_TunerHal_FILTER_TYPE_VIDEO
#define com_android_tv_tuner_TunerHal_FILTER_TYPE_VIDEO 2L
#undef com_android_tv_tuner_TunerHal_FILTER_TYPE_PCR
#define com_android_tv_tuner_TunerHal_FILTER_TYPE_PCR 3L
#undef com_android_tv_tuner_TunerHal_PID_PAT
#define com_android_tv_tuner_TunerHal_PID_PAT 0L
#undef com_android_tv_tuner_TunerHal_PID_ATSC_SI_BASE
#define com_android_tv_tuner_TunerHal_PID_ATSC_SI_BASE 8187L
#undef com_android_tv_tuner_TunerHal_DEFAULT_VSB_TUNE_TIMEOUT_MS
#define com_android_tv_tuner_TunerHal_DEFAULT_VSB_TUNE_TIMEOUT_MS 2000L
#undef com_android_tv_tuner_TunerHal_DEFAULT_QAM_TUNE_TIMEOUT_MS
#define com_android_tv_tuner_TunerHal_DEFAULT_QAM_TUNE_TIMEOUT_MS 4000L
/*
 * Class:     com_android_tv_tuner_TunerHal
 * Method:    nativeFinalize
 * Signature: (J)V
 */
JNIEXPORT void JNICALL Java_com_android_tv_tuner_TunerHal_nativeFinalize
  (JNIEnv *, jobject, jlong);

/*
 * Class:     com_android_tv_tuner_TunerHal
 * Method:    nativeTune
 * Signature: (JILjava/lang/String;I)Z
 */
JNIEXPORT jboolean JNICALL Java_com_android_tv_tuner_TunerHal_nativeTune
  (JNIEnv *, jobject, jlong, jint, jstring, jint);

/*
 * Class:     com_android_tv_tuner_TunerHal
 * Method:    nativeAddPidFilter
 * Signature: (JII)V
 */
JNIEXPORT void JNICALL Java_com_android_tv_tuner_TunerHal_nativeAddPidFilter
  (JNIEnv *, jobject, jlong, jint, jint);

/*
 * Class:     com_android_tv_tuner_TunerHal
 * Method:    nativeCloseAllPidFilters
 * Signature: (J)V
 */
JNIEXPORT void JNICALL Java_com_android_tv_tuner_TunerHal_nativeCloseAllPidFilters
  (JNIEnv *, jobject, jlong);

/*
 * Class:     com_android_tv_tuner_TunerHal
 * Method:    nativeStopTune
 * Signature: (J)V
 */
JNIEXPORT void JNICALL Java_com_android_tv_tuner_TunerHal_nativeStopTune
  (JNIEnv *, jobject, jlong);

/*
 * Class:     com_android_tv_tuner_TunerHal
 * Method:    nativeWriteInBuffer
 * Signature: (J[BI)I
 */
JNIEXPORT jint JNICALL Java_com_android_tv_tuner_TunerHal_nativeWriteInBuffer
  (JNIEnv *, jobject, jlong, jbyteArray, jint);

/*
 * Class:     com_android_tv_tuner_TunerHal
 * Method:    nativeSetHasPendingTune
 * Signature: (JZ)V
 */
JNIEXPORT void JNICALL Java_com_android_tv_tuner_TunerHal_nativeSetHasPendingTune
  (JNIEnv *, jobject, jlong, jboolean);

#ifdef __cplusplus
}
#endif
#endif
/* Header for class com_android_tv_tuner_TunerHal_FilterType */

#ifndef _Included_com_android_tv_tuner_TunerHal_FilterType
#define _Included_com_android_tv_tuner_TunerHal_FilterType
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
#endif
