package com.iailab.netsdk.demo.module;

import com.iailab.netsdk.lib.ToolKits;
import com.iailab.netsdk.lib.NetSDKLib.fMessCallBack;

/**
 * \if ENGLISH_LANG
 * alarm listen interface
 * contains: start and stop alarm listen
 * \else
 * �ヨ⑥�ュ����
 * ���� 鐚���莅上�莅∫���ヨ⑥����罩∵����ヨ⑥
 * \endif
 */
public class AlarmListenModule {

	private static boolean bListening = false;

	
	/**
	 * \if ENGLISH_LANG
	 * start alarm listen
	 * \else
	 * ��莅上�莅∫���ヨ⑥
	 * \endif
	 */
	public static boolean startListen(fMessCallBack cbMessage) {

		if (bListening) {
//			System.out.println("Had Subscribe Alarm.");
			return true;
		}
		
		LoginModule.netsdk.CLIENT_SetDVRMessCallBack(cbMessage, null); // set alarm listen callback

		if (!LoginModule.netsdk.CLIENT_StartListenEx(LoginModule.m_hLoginHandle)) {
			System.err.printf("CLIENT_StartListenEx Failed!" + ToolKits.getErrorCodePrint());
			return false;
		} else { 
			System.out.println("CLIENT_StartListenEx success."); 
		}
		
		bListening = true;
		return true;
	}
	
	/**
	 * \if ENGLISH_LANG
	 * stop alarm listen
	 * \else
	 * ��罩∵����ヨ⑥
	 * \endif
	 */
	public static boolean stopListen() {

		if (!bListening) {
			return true;
		}
		
	   	if (!LoginModule.netsdk.CLIENT_StopListen(LoginModule.m_hLoginHandle)) { 
			System.err.printf("CLIENT_StopListen Failed!" + ToolKits.getErrorCodePrint());
			return false;
		} else { 
			System.out.println("CLIENT_StopListen success."); 
		}
	   	
	   	bListening = false;	
		return true;
	}

}