package com.ycl.api.YS.liveview.live; import com.sun.jna.Native; import com.ycl.api.YS.NetDemo; import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_RECT_S; import javax.swing.*; import java.util.InputMismatchException; /** * * @introduction DigitalZoom * @description Support IPC/NVR/VMS */ public class DigitalZoom { /** * * @introduction Set DigitalZoom * @description Calling the interface of NETDEV_SetDigitalZoom to set the digitalZoom, * the parameter should between 0 and 10000 * */ public static void setDigitalZoom() { if(null == NetDemo.lpUserID) { JOptionPane.showMessageDialog(null, "Please Login device first. error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); return; } if(NetDemo.ChannelID == 0){ JOptionPane.showMessageDialog(null, "Please select an online channel."); return; } int dwLeft=0; int dwTop=0; int dwRight=0; int dwBottom=0; try { dwLeft=Integer.parseInt(NetDemo.jTextFieldDigitalZoomLeft.getText()); }catch(NumberFormatException |InputMismatchException e) { JOptionPane.showMessageDialog(null, "Left parameter is null or transformation exception"); NetDemo.jTextFieldDigitalZoomLeft.setText(null); return; } if(dwLeft<0||dwLeft>10000) { JOptionPane.showMessageDialog(null, "Left parameter should beteen 0~10000"); return; } try { dwTop=Integer.parseInt(NetDemo.jTextFieldDigitalZoomTop.getText()); }catch(NumberFormatException |InputMismatchException e) { JOptionPane.showMessageDialog(null, "Top parameter is null or transformation exception"); return; } if(dwTop<0||dwTop>10000) { JOptionPane.showMessageDialog(null, "Top parameter should beteen 0~10000"); return; } try { dwRight=Integer.parseInt(NetDemo.jTextFieldDigitalZoomRight.getText()); } catch(NumberFormatException | InputMismatchException e) { JOptionPane.showMessageDialog(null, "Right parameter is null or transformation exception"); return; } if(dwRight<0||dwRight>10000) { JOptionPane.showMessageDialog(null, "Right parameter should beteen 0~10000"); return; } try { dwBottom=Integer.parseInt(NetDemo.jTextFieldDigitalZoomBottom.getText()); }catch(NumberFormatException |InputMismatchException e) { JOptionPane.showMessageDialog(null, "Bottom parameter is null or transformation exception"); return; } if(dwBottom<0||dwBottom>10000) { JOptionPane.showMessageDialog(null, "Bottom parameter should beteen 0~10000"); return; } if(dwBottom<=dwTop) { JOptionPane.showMessageDialog(null, "Bottom must more than top"); return; } if(dwRight<=dwLeft) { JOptionPane.showMessageDialog(null, "Right must more than left"); return; } NETDEV_RECT_S pstRect=new NETDEV_RECT_S(); pstRect.dwLeft=dwLeft; pstRect.dwTop=dwTop; pstRect.dwRight=dwRight; pstRect.dwBottom=dwBottom; boolean bRet = NetDemo.netdevsdk.NETDEV_SetDigitalZoom(NetDemo.lpPlayHandle,Native.getComponentPointer(NetDemo.panelPlayLabel),pstRect); if(bRet != true) { JOptionPane.showMessageDialog(null, "Set Digital Zoom. error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_SetDigitalZoom failed, error:" + NetDemo.netdevsdk.NETDEV_GetLastError()); return; }else { JOptionPane.showMessageDialog(null, "Success"); } } /** * * @introduction Exit DigitalZoom * @description Calling the interface of NETDEV_SetDigitalZoom and set the NETDEV_RECT_S null to exie digitalzoom * */ public static void closeDigitalZoom() { if(null == NetDemo.lpUserID) { JOptionPane.showMessageDialog(null, "Please Login device first. error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); return; } boolean bRet = NetDemo.netdevsdk.NETDEV_SetDigitalZoom(NetDemo.lpPlayHandle,Native.getComponentPointer(NetDemo.panelPlayLabel),null); if(bRet != true) { System.out.printf("NETDEV_SetDigitalZoom failed, error:" + NetDemo.netdevsdk.NETDEV_GetLastError()); return; } } }