package com.ycl.api.YS.liveview.live; import com.sun.jna.Memory; import com.sun.jna.Pointer; import com.sun.jna.ptr.IntByReference; import com.ycl.api.YS.NetDemo; import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_FISHEYE_PTZ_MODE_E; import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_INSTALL_MODE_E; import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_MOUSE_MOVE_MODE_E; import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_POINT_S; import javax.swing.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; /** * * @introduction Fisheye * @description Support special device with fisheye lens */ public class EyeFish { /** * * @introduction Change fisheye install mode * @description Change fisheye install mode to get the fisheye ptzMode * */ public static void changeMount() { if(NetDemo.ChannelID == 0){ JOptionPane.showMessageDialog(null, "Please select an online channel after login."); return; } int EyeShowPtzMode=NetDemo.jComboBoxFishEyeMount.getSelectedIndex(); String EyeShowname=NetDemo.jComboBoxFishEyeMount.getItemAt(EyeShowPtzMode); if(EyeShowname==null) { return; } if(EyeShowname.equals("TOP")) { EyeShowPtzMode=NETDEV_INSTALL_MODE_E.NETDEV_INSTALL_MODE_TOP; NetDemo.jComboBoxPreviewMode.removeAllItems(); NetDemo.jComboBoxPreviewMode.addItem("ORIGINAL"); NetDemo.jComboBoxPreviewMode.addItem("360+1PTZ"); NetDemo.jComboBoxPreviewMode.addItem("LEFT+4PTZ"); NetDemo.jComboBoxPreviewMode.addItem("180"); NetDemo.jComboBoxPreviewMode.addItem("3PTZ"); NetDemo.jComboBoxPreviewMode.addItem("360+6PTZ"); NetDemo.jComboBoxPreviewMode.addItem("8PTZ"); NetDemo.jComboBoxPreviewMode.setSelectedIndex(0); } else if(EyeShowname.equals("BOTTOM")) { EyeShowPtzMode=NETDEV_INSTALL_MODE_E.NETDEV_INSTALL_MODE_BOTTOM ; NetDemo.jComboBoxPreviewMode.removeAllItems(); NetDemo.jComboBoxPreviewMode.addItem("ORIGINAL"); NetDemo.jComboBoxPreviewMode.addItem("360+1PTZ"); NetDemo.jComboBoxPreviewMode.addItem("LEFT+4PTZ"); NetDemo.jComboBoxPreviewMode.addItem("180"); NetDemo.jComboBoxPreviewMode.addItem("3PTZ"); NetDemo.jComboBoxPreviewMode.addItem("360+6PTZ"); NetDemo.jComboBoxPreviewMode.addItem("8PTZ"); NetDemo.jComboBoxPreviewMode.setSelectedIndex(0); } else if(EyeShowname.equals("Side")) { EyeShowPtzMode=NETDEV_INSTALL_MODE_E.NETDEV_INSTALL_MODE_SIDE; NetDemo.jComboBoxPreviewMode.removeAllItems(); NetDemo.jComboBoxPreviewMode.addItem("ORIGINAL"); NetDemo.jComboBoxPreviewMode.addItem("PANORAMA"); NetDemo.jComboBoxPreviewMode.addItem("PR+3PTZ"); NetDemo.jComboBoxPreviewMode.addItem("PR+4PTZ"); NetDemo.jComboBoxPreviewMode.addItem("PR+8PTZ"); NetDemo.jComboBoxPreviewMode.setSelectedIndex(0); } } /** * * @introduction Select fisheye ptzMode * @description Calling the interface of NETDEV_SetPtzAndFixMode to set fisheye fixmode * */ public static void selectPreviewMode() { int EyeChoosePtzMode = NetDemo.jComboBoxPreviewMode.getSelectedIndex(); String PtzModeName=NetDemo.jComboBoxPreviewMode.getItemAt(EyeChoosePtzMode); if(PtzModeName==null) { return; } IntByReference pbFishEyeStream=new IntByReference(); IntByReference udwPtzMode = new IntByReference(); IntByReference dwInstallMode = new IntByReference(); int EyePtzMode=NETDEV_FISHEYE_PTZ_MODE_E.NETDEV_FISHEYE_MODE_LEFT_4PTZ; switch(PtzModeName) { case "ORIGINAL" : EyePtzMode=NETDEV_FISHEYE_PTZ_MODE_E.NETDEV_FISHEYE_MODE_ORIGINAL; break; case "360+1PTZ" : EyePtzMode=NETDEV_FISHEYE_PTZ_MODE_E.NETDEV_FISHEYE_MODE_360_1PTZ; break; case "LEFT+4PTZ": EyePtzMode=NETDEV_FISHEYE_PTZ_MODE_E.NETDEV_FISHEYE_MODE_LEFT_4PTZ; break; case "180" : EyePtzMode=NETDEV_FISHEYE_PTZ_MODE_E.NETDEV_FISHEYE_MODE_180; break; case "3PTZ" : EyePtzMode=NETDEV_FISHEYE_PTZ_MODE_E.NETDEV_FISHEYE_MODE_3PTZ; break; case "360+6PTZ" : EyePtzMode=NETDEV_FISHEYE_PTZ_MODE_E.NETDEV_FISHEYE_MODE_360_6PTZ; break; case "8PTZ" : EyePtzMode=NETDEV_FISHEYE_PTZ_MODE_E.NETDEV_FISHEYE_MODE_8PTZ; break; case "PANORAMA" : EyePtzMode=NETDEV_FISHEYE_PTZ_MODE_E.NETDEV_FISHEYE_MODE_PANORAMA; break; case "PR+3PTZ" : EyePtzMode=NETDEV_FISHEYE_PTZ_MODE_E.NETDEV_FISHEYE_MODE_PR_3PTZ; break; case "PR+4PTZ" : EyePtzMode=NETDEV_FISHEYE_PTZ_MODE_E.NETDEV_FISHEYE_MODE_PR_4PTZ; break; case "PR+8PTZ" : EyePtzMode=NETDEV_FISHEYE_PTZ_MODE_E.NETDEV_FISHEYE_MODE_PR_8PTZ; break; } boolean bRet=NetDemo.netdevsdk.NETDEV_IsFishEyeStream(NetDemo.lpPlayHandle,pbFishEyeStream); if(bRet) { boolean bRet1=NetDemo.netdevsdk.NETDEV_GetPtzAndFixMode(NetDemo.lpPlayHandle,udwPtzMode,dwInstallMode); if(bRet1) { NetDemo.netdevsdk.NETDEV_SetPtzAndFixMode(NetDemo.lpPlayHandle,EyePtzMode,NetDemo.jComboBoxFishEyeMount.getSelectedIndex()); IntByReference pudwRadius=new IntByReference(); NETDEV_POINT_S pstPoint =new NETDEV_POINT_S(); pstPoint.dwPointX=100; pstPoint.dwPointY=200; pstPoint.write(); Pointer lpParm=new Memory(128); boolean bRet2=NetDemo.netdevsdk.NETDEV_GetFishEyeParam(NetDemo.lpPlayHandle,pstPoint,pudwRadius,lpParm); if(bRet2) { NetDemo.panelPlayLabel.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { NetDemo.netdevsdk.NETDEV_SetMouseMoveMode(NetDemo.lpPlayHandle, NETDEV_MOUSE_MOVE_MODE_E.NETDEV_MOUSE_MOVE , 0, (short)45,pstPoint); } }); } }else { System.out.println("NETDEV_GetPtzAndFixMode failed, error:" + NetDemo.netdevsdk.NETDEV_GetLastError()); return; } }else { System.out.println("NETDEV_IsFishEyeStream, error:" + NetDemo.netdevsdk.NETDEV_GetLastError()); return; } } }