1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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;
    }
 
}