#pragma once

//#define DEBUG
#define NATIVE_API_VERSION 33
#define WAIT_FOR_EVENT_TIMEOUT_MS 200

extern "C" {
JNIEXPORT jint JNICALL Java_ips_media_jnm_impl_directshow_DSVideoSystem_init(JNIEnv *, jobject);
JNIEXPORT jlong JNICALL Java_ips_media_jnm_impl_directshow_DSVideoSystem_nativeJFXWindowHwn(JNIEnv *, jobject, jobject);
JNIEXPORT void JNICALL Java_ips_media_jnm_impl_directshow_DSVideoSystem_enumerateVideoCaptureSources(JNIEnv *, jobject);
JNIEXPORT void JNICALL Java_ips_media_jnm_impl_directshow_DSVideoSystem_release(JNIEnv *, jobject);

JNIEXPORT void JNICALL Java_ips_media_jnm_impl_directshow_DSVideoSystem_enumerateVideoCaptureSources(JNIEnv *, jobject);
}

extern jweak exceptionClassRef;

HRESULT EnumerateVideoDevices();

class DirectShowVideoSystem
{

public:
	DirectShowVideoSystem(void);
	~DirectShowVideoSystem(void);
};
