├── .github └── workflows │ └── build.yml ├── .gitignore ├── .gitmodules ├── LICENSE ├── README.md ├── deploy.pri ├── docs ├── 404.html ├── CNAME ├── _config.yml ├── _layouts │ └── default.html ├── assets │ ├── css │ │ └── style.scss │ └── images │ │ ├── action_shot.png │ │ ├── capture_playback.png │ │ ├── icon.png │ │ ├── linux-icon.png │ │ ├── mac-icon.png │ │ ├── multi_dialog.png │ │ ├── multi_universe.png │ │ ├── pcap_dialog.png │ │ ├── preferencesdialog.png │ │ ├── scope.png │ │ ├── scopeview.png │ │ ├── settings.png │ │ ├── snapshot.png │ │ ├── snapshot_dialog.png │ │ ├── transmit.png │ │ ├── transmitview.png │ │ ├── transmitwindow.png │ │ ├── univ_view.png │ │ ├── universelist.png │ │ ├── universeview.png │ │ ├── win-icon.png │ │ └── winxp-icon.png ├── documentation.md └── index.md ├── install ├── deploy │ └── .placeholder ├── linux │ ├── AppDir │ │ └── .placeholder │ ├── _FPM_Makefile │ ├── opt │ │ └── sacnview │ │ │ └── .placeholder │ └── usr │ │ └── share │ │ ├── applications │ │ └── sacnview.desktop │ │ └── icons │ │ └── hicolor │ │ ├── 16x16 │ │ └── apps │ │ │ └── .placeholder │ │ ├── 24x24 │ │ └── apps │ │ │ └── .placeholder │ │ ├── 256x256 │ │ └── apps │ │ │ └── .placeholder │ │ ├── 32x32 │ │ └── apps │ │ │ └── .placeholder │ │ ├── 48x48 │ │ └── apps │ │ │ └── .placeholder │ │ └── scalable │ │ └── apps │ │ └── .placeholder ├── mac │ ├── LICENSE │ ├── README.md │ ├── builder │ │ └── create-dmg.builder │ ├── create-dmg │ ├── sample │ ├── sign-mac-executable.sh │ └── support │ │ ├── dmg-license.py │ │ └── template.applescript └── win │ ├── AdvUninstLog.nsh │ └── install.nsi ├── ipc example └── excel │ └── IPC Example.xlsm ├── libs.pri ├── libs ├── .gclient ├── .gclient_entries ├── WinPcap-413-173-b4.7z ├── WinPcap-413-173-b4 │ ├── Bin │ │ ├── Packet.dll │ │ ├── wpcap.dll │ │ └── x64 │ │ │ ├── Packet.dll │ │ │ └── wpcap.dll │ ├── Examples-pcap │ │ ├── GNUmakefile │ │ ├── MakeaAll.dsw │ │ ├── MakeaAll.sln │ │ ├── UDPdump │ │ │ ├── GNUmakefile │ │ │ ├── UDPdump.dsp │ │ │ ├── UDPdump.dsw │ │ │ ├── UDPdump.vcproj │ │ │ └── udpdump.c │ │ ├── basic_dump │ │ │ ├── GNUmakefile │ │ │ ├── basic_dump.c │ │ │ ├── basic_dump.dsp │ │ │ ├── basic_dump.dsw │ │ │ └── basic_dump.vcproj │ │ ├── basic_dump_ex │ │ │ ├── GNUmakefile │ │ │ ├── basic_dump_ex.c │ │ │ ├── basic_dump_ex.dsp │ │ │ ├── basic_dump_ex.dsw │ │ │ └── basic_dump_ex.vcproj │ │ ├── iflist │ │ │ ├── GNUmakefile │ │ │ ├── iflist.c │ │ │ ├── iflist.dsp │ │ │ ├── iflist.dsw │ │ │ └── iflist.vcproj │ │ ├── pcap_filter │ │ │ ├── GNUmakefile │ │ │ ├── pcap_filter.c │ │ │ ├── pcap_filter.dsp │ │ │ ├── pcap_filter.dsw │ │ │ └── pcap_filter.vcproj │ │ ├── pktdump_ex │ │ │ ├── GNUmakefile │ │ │ ├── pktdump_ex.c │ │ │ ├── pktdump_ex.dsp │ │ │ ├── pktdump_ex.dsw │ │ │ └── pktdump_ex.vcproj │ │ ├── readfile │ │ │ ├── GNUmakefile │ │ │ ├── readfile.c │ │ │ ├── readfile.dsp │ │ │ ├── readfile.dsw │ │ │ └── readfile.vcproj │ │ ├── readfile_ex │ │ │ ├── GNUmakefile │ │ │ ├── readfile_ex.c │ │ │ ├── readfile_ex.dsp │ │ │ ├── readfile_ex.dsw │ │ │ └── readfile_ex.vcproj │ │ ├── savedump │ │ │ ├── GNUmakefile │ │ │ ├── savedump.c │ │ │ ├── savedump.dsp │ │ │ ├── savedump.dsw │ │ │ └── savedump.vcproj │ │ └── sendpack │ │ │ ├── GNUmakefile │ │ │ ├── sendpack.c │ │ │ ├── sendpack.dsp │ │ │ ├── sendpack.dsw │ │ │ └── sendpack.vcproj │ ├── Examples-remote │ │ ├── MakeAll.sln │ │ ├── MakeaAll.dsw │ │ ├── PacketDriver │ │ │ ├── GetMacAddress │ │ │ │ ├── GetMacAddress.c │ │ │ │ ├── GetMacAddress.dsp │ │ │ │ └── GetMacAddress.vcproj │ │ │ ├── TestPacketCapture │ │ │ │ ├── TestPacketCapture.c │ │ │ │ ├── TestPacketCapture.dsp │ │ │ │ └── TestPacketCapture.vcproj │ │ │ ├── TestPacketSend │ │ │ │ ├── TestPacketSend.c │ │ │ │ ├── TestPacketSend.dsp │ │ │ │ └── TestPacketSend.vcproj │ │ │ └── readme.txt │ │ ├── UDPdump │ │ │ ├── UDPdump.dsp │ │ │ ├── UDPdump.dsw │ │ │ ├── UDPdump.vcproj │ │ │ └── udpdump.c │ │ ├── UserLevelBridge │ │ │ ├── UserBridge.c │ │ │ ├── UserBridge.dsp │ │ │ ├── UserBridge.dsw │ │ │ └── UserBridge.vcproj │ │ ├── iflist │ │ │ ├── iflist.c │ │ │ ├── iflist.dsp │ │ │ ├── iflist.dsw │ │ │ └── iflist.vcproj │ │ ├── misc │ │ │ ├── MakeAll.sln │ │ │ ├── MakeaAll.dsw │ │ │ ├── basic_dump.c │ │ │ ├── basic_dump.dsp │ │ │ ├── basic_dump.vcproj │ │ │ ├── basic_dump_ex.c │ │ │ ├── basic_dump_ex.dsp │ │ │ ├── basic_dump_ex.vcproj │ │ │ ├── readfile.c │ │ │ ├── readfile.dsp │ │ │ ├── readfile.vcproj │ │ │ ├── readfile_ex.c │ │ │ ├── readfile_ex.dsp │ │ │ ├── readfile_ex.vcproj │ │ │ ├── savedump.c │ │ │ ├── savedump.dsp │ │ │ ├── savedump.vcproj │ │ │ ├── sendpack.c │ │ │ ├── sendpack.dsp │ │ │ └── sendpack.vcproj │ │ ├── pcap_filter │ │ │ ├── pcap_filter.c │ │ │ ├── pcap_filter.dsp │ │ │ ├── pcap_filter.dsw │ │ │ └── pcap_filter.vcproj │ │ ├── pcap_fopen │ │ │ ├── pcap_fopen.cpp │ │ │ └── pcap_fopen.vcproj │ │ ├── pktdump_ex │ │ │ ├── pktdump_ex.c │ │ │ ├── pktdump_ex.dsp │ │ │ ├── pktdump_ex.dsw │ │ │ └── pktdump_ex.vcproj │ │ ├── sendcap │ │ │ ├── sencap.dsw │ │ │ ├── sendcap.c │ │ │ ├── sendcap.dsp │ │ │ └── sendcap.vcproj │ │ ├── smp_1 │ │ │ ├── smp_1.c │ │ │ ├── smp_1.dsp │ │ │ ├── smp_1.dsw │ │ │ └── smp_1.vcproj │ │ └── tcptop │ │ │ ├── tcptop.c │ │ │ ├── tcptop.dsp │ │ │ ├── tcptop.dsw │ │ │ └── tcptop.vcproj │ ├── Include │ │ ├── Packet32.h │ │ ├── Win32-Extensions.h │ │ ├── bittypes.h │ │ ├── ip6_misc.h │ │ ├── pcap-bpf.h │ │ ├── pcap-namedb.h │ │ ├── pcap-stdinc.h │ │ ├── pcap.h │ │ └── pcap │ │ │ ├── bluetooth.h │ │ │ ├── bpf.h │ │ │ ├── ipnet.h │ │ │ ├── namedb.h │ │ │ ├── nflog.h │ │ │ ├── pcap.h │ │ │ ├── sll.h │ │ │ ├── usb.h │ │ │ └── vlan.h │ ├── Lib │ │ ├── Packet.lib │ │ ├── wpcap.lib │ │ └── x64 │ │ │ ├── Packet.lib │ │ │ └── wpcap.lib │ └── docs │ │ ├── WinPcap_docs.html │ │ └── html │ │ ├── Packet_8h.html │ │ ├── Packet_8h_source.html │ │ ├── Win32-Extensions_8h.html │ │ ├── Win32-Extensions_8h_source.html │ │ ├── annotated.html │ │ ├── bc_s.png │ │ ├── bdwn.png │ │ ├── classes.html │ │ ├── closed.png │ │ ├── deprecated.html │ │ ├── dir_1d0b26b30525be7735e8363d5b4dcb01.html │ │ ├── dir_4ee79fd2d246ba2ad1fa267b628a7962.html │ │ ├── dir_727ab9403fd1ff980053b79c3716665a.html │ │ ├── dir_9a2aa2d3a350e553d14931ec4e0c1514.html │ │ ├── dir_9a623c46ccb35c88e86317a093d60fd6.html │ │ ├── dir_a1b0b199cde94c7dd9a3a0ee49bcda2f.html │ │ ├── dir_bfdf43d97a736b6e7ff8b75a9a91328c.html │ │ ├── dir_c57c37b343d3a4fff0db7d2b1fca2561.html │ │ ├── dir_dea2d635c47186b23668f72adc643e04.html │ │ ├── dir_ec5e29f73a75356204c75c00d090044c.html │ │ ├── doxygen.png │ │ ├── doxygen__groups_8txt.html │ │ ├── dump.gif │ │ ├── dynsections.js │ │ ├── encoding.gif │ │ ├── files.html │ │ ├── ftv2blank.png │ │ ├── ftv2doc.png │ │ ├── ftv2folderclosed.png │ │ ├── ftv2folderopen.png │ │ ├── ftv2lastnode.png │ │ ├── ftv2link.png │ │ ├── ftv2mlastnode.png │ │ ├── ftv2mnode.png │ │ ├── ftv2node.png │ │ ├── ftv2plastnode.png │ │ ├── ftv2pnode.png │ │ ├── ftv2splitbar.png │ │ ├── ftv2vertline.png │ │ ├── funcs_2pcap_8h.html │ │ ├── funcs_2pcap_8h_source.html │ │ ├── functions.html │ │ ├── functions_vars.html │ │ ├── globals.html │ │ ├── globals_b.html │ │ ├── globals_c.html │ │ ├── globals_d.html │ │ ├── globals_defs.html │ │ ├── globals_e.html │ │ ├── globals_enum.html │ │ ├── globals_eval.html │ │ ├── globals_func.html │ │ ├── globals_g.html │ │ ├── globals_i.html │ │ ├── globals_j.html │ │ ├── globals_k.html │ │ ├── globals_m.html │ │ ├── globals_n.html │ │ ├── globals_o.html │ │ ├── globals_p.html │ │ ├── globals_r.html │ │ ├── globals_s.html │ │ ├── globals_t.html │ │ ├── globals_type.html │ │ ├── globals_u.html │ │ ├── globals_vars.html │ │ ├── group__NPF.html │ │ ├── group__NPF__code.html │ │ ├── group__NPF__include.html │ │ ├── group__NPF__ioctl.html │ │ ├── group__NPF__jitter.html │ │ ├── group__compilation.html │ │ ├── group__internals.html │ │ ├── group__language.html │ │ ├── group__packetapi.html │ │ ├── group__remote.html │ │ ├── group__remote__auth__methods.html │ │ ├── group__remote__open__flags.html │ │ ├── group__remote__pri__func.html │ │ ├── group__remote__pri__struct.html │ │ ├── group__remote__samp__methods.html │ │ ├── group__remote__source__ID.html │ │ ├── group__remote__source__string.html │ │ ├── group__remote__struct.html │ │ ├── group__remotefunc.html │ │ ├── group__wpcap.html │ │ ├── group__wpcap__def.html │ │ ├── group__wpcap__tut.html │ │ ├── group__wpcap__tut1.html │ │ ├── group__wpcap__tut2.html │ │ ├── group__wpcap__tut3.html │ │ ├── group__wpcap__tut4.html │ │ ├── group__wpcap__tut5.html │ │ ├── group__wpcap__tut6.html │ │ ├── group__wpcap__tut7.html │ │ ├── group__wpcap__tut8.html │ │ ├── group__wpcap__tut9.html │ │ ├── group__wpcapfunc.html │ │ ├── group__wpcapsamps.html │ │ ├── incs_2pcap_8h.html │ │ ├── incs_2pcap_8h_source.html │ │ ├── index.hhc │ │ ├── index.hhk │ │ ├── index.hhp │ │ ├── index.html │ │ ├── internals-arch.gif │ │ ├── ioctls_8h.html │ │ ├── ioctls_8h_source.html │ │ ├── jitter_8h.html │ │ ├── jitter_8h_source.html │ │ ├── jquery.js │ │ ├── main_8txt.html │ │ ├── modules.html │ │ ├── nav_f.png │ │ ├── nav_g.png │ │ ├── nav_h.png │ │ ├── npf-dump.gif │ │ ├── npf-ndis.gif │ │ ├── npf-npf.gif │ │ ├── open.png │ │ ├── pages.html │ │ ├── pcap-remote_8h.html │ │ ├── pcap-remote_8h_source.html │ │ ├── stats.gif │ │ ├── stats_wpcap.gif │ │ ├── structJIT__BPF__Filter.html │ │ ├── structPacketHeader.html │ │ ├── struct__DEVICE__EXTENSION.html │ │ ├── struct__INTERNAL__REQUEST.html │ │ ├── struct__OPEN__INSTANCE.html │ │ ├── struct__PACKET__OID__DATA.html │ │ ├── struct__PACKET__RESERVED.html │ │ ├── struct____CPU__Private__Data.html │ │ ├── structactivehosts.html │ │ ├── structbinary__stream.html │ │ ├── structpacket__file__header.html │ │ ├── structpcap__addr.html │ │ ├── structpcap__file__header.html │ │ ├── structpcap__if.html │ │ ├── structpcap__pkthdr.html │ │ ├── structpcap__send__queue.html │ │ ├── structpcap__stat.html │ │ ├── structrpcap__auth.html │ │ ├── structrpcap__filter.html │ │ ├── structrpcap__filterbpf__insn.html │ │ ├── structrpcap__findalldevs__if.html │ │ ├── structrpcap__findalldevs__ifaddr.html │ │ ├── structrpcap__header.html │ │ ├── structrpcap__openreply.html │ │ ├── structrpcap__pkthdr.html │ │ ├── structrpcap__sampling.html │ │ ├── structrpcap__startcapreply.html │ │ ├── structrpcap__startcapreq.html │ │ ├── structrpcap__stats.html │ │ ├── structsf__pkthdr.html │ │ ├── style.css │ │ ├── sync_off.png │ │ ├── sync_on.png │ │ ├── tab_a.png │ │ ├── tab_b.png │ │ ├── tab_h.png │ │ ├── tab_s.png │ │ ├── tabs.css │ │ ├── winpcap.gif │ │ ├── winpcap_small.gif │ │ ├── wpcap__remote_8htm.html │ │ ├── wpcap__remote_8htm_source.html │ │ ├── wpcap__tut1_8txt.html │ │ ├── wpcap__tut2_8txt.html │ │ ├── wpcap__tut3_8txt.html │ │ ├── wpcap__tut4_8txt.html │ │ ├── wpcap__tut5_8txt.html │ │ ├── wpcap__tut6_8txt.html │ │ ├── wpcap__tut7_8txt.html │ │ ├── wpcap__tut8_8txt.html │ │ ├── wpcap__tut9_8txt.html │ │ └── wpcap__tut_8txt.html ├── openssl-1.0.2g-i386-win32.zip ├── openssl-1.0.2g-win32 │ ├── HashInfo.txt │ ├── OpenSSL License.txt │ ├── ReadMe.txt │ ├── libeay32.dll │ └── ssleay32.dll ├── openssl-1.0.2g-win64 │ ├── HashInfo.txt │ ├── OpenSSL License.txt │ ├── ReadMe.txt │ ├── libeay32.dll │ └── ssleay32.dll ├── openssl-1.0.2g-x64_86-win64.zip ├── openssl-1.0.2j-i386-win32.zip ├── openssl-1.0.2j-win32 │ ├── HashInfo.txt │ ├── OpenSSL License.txt │ ├── ReadMe.txt │ ├── libeay32.dll │ └── ssleay32.dll ├── openssl-1.0.2j-win64 │ ├── HashInfo.txt │ ├── OpenSSL License.txt │ ├── ReadMe.txt │ ├── libeay32.dll │ └── ssleay32.dll ├── openssl-1.0.2j-x64_86-win64.zip ├── openssl-1.1.1b-win32 │ ├── LICENSE │ ├── libcrypto-1_1.dll │ ├── libssl-1_1.dll │ └── readme.txt ├── openssl-1.1.1b-win64 │ ├── LICENSE │ ├── libcrypto-1_1-x64.dll │ ├── libssl-1_1-x64.dll │ └── readme.txt ├── openssl-1.1.1g-win32 │ ├── LICENSE │ ├── libcrypto-1_1.dll │ ├── libssl-1_1.dll │ └── readme.txt └── openssl-1.1.1g-win64 │ ├── LICENSE │ ├── libcrypto-1_1-x64.dll │ ├── libssl-1_1-x64.dll │ └── readme.txt ├── res ├── Logo.png ├── add.png ├── add_multi.png ├── back.png ├── beep.wav ├── camera.wav ├── capture_playback.png ├── clear.png ├── forward.png ├── icon.icns ├── icon.ico ├── icon_16.png ├── icon_24.png ├── icon_256.png ├── icon_32.png ├── icon_48.png ├── icon_source.svg ├── info.png ├── ledgreen.png ├── ledred.png ├── logo.svg ├── mac_install_bg.png ├── multi_universe.png ├── pause.png ├── play.png ├── record.png ├── remove.png ├── resources.qrc ├── sacnview.rc ├── scope.png ├── settings.png ├── snapshot.png ├── spin_down.png ├── spin_down_dark.png ├── spin_up.png ├── spin_up_dark.png ├── transmit.png └── univ_view.png ├── sACNView.pro ├── src ├── aboutdialog.cpp ├── aboutdialog.h ├── addmultidialog.cpp ├── addmultidialog.h ├── bigdisplay.cpp ├── bigdisplay.h ├── clssnapshot.cpp ├── clssnapshot.h ├── commandline.cpp ├── commandline.h ├── configureperchanpriodlg.cpp ├── configureperchanpriodlg.h ├── consts.h ├── crash_handler.cpp ├── crash_handler.h ├── crash_test.cpp ├── crash_test.h ├── ethernetstrut.h ├── flickerfinderinfoform.cpp ├── flickerfinderinfoform.h ├── fontdata.h ├── grideditwidget.cpp ├── grideditwidget.h ├── gridwidget.cpp ├── gridwidget.h ├── ipc.cpp ├── ipc.h ├── logwindow.cpp ├── logwindow.h ├── main.cpp ├── mdimainwindow.cpp ├── mdimainwindow.h ├── multiuniverse.cpp ├── multiuniverse.h ├── nicselectdialog.cpp ├── nicselectdialog.h ├── pcapplayback.cpp ├── pcapplayback.h ├── pcapplaybacksender.cpp ├── pcapplaybacksender.h ├── preferences.cpp ├── preferences.h ├── preferencesdialog.cpp ├── preferencesdialog.h ├── qt56.h ├── sacn │ ├── ACNShare │ │ ├── CID.cpp │ │ ├── CID.h │ │ ├── VHD.cpp │ │ ├── VHD.h │ │ ├── defpack.h │ │ ├── ipaddr.cpp │ │ ├── ipaddr.h │ │ ├── tock.cpp │ │ └── tock.h │ ├── StreamCli │ │ ├── StreamCli.cpp │ │ ├── StreamCli.sln │ │ └── StreamCli.vcproj │ ├── StreamSrv │ │ ├── StreamServer.cpp │ │ ├── StreamServer.h │ │ ├── StreamSrv.cpp │ │ ├── StreamSrv.sln │ │ └── StreamSrv.vcproj │ ├── e1_11.h │ ├── firewallcheck.cpp │ ├── firewallcheck.h │ ├── fpscounter.cpp │ ├── fpscounter.h │ ├── sacndiscoveredsourcelistmodel.cpp │ ├── sacndiscoveredsourcelistmodel.h │ ├── sacndiscovery.cpp │ ├── sacndiscovery.h │ ├── sacneffectengine.cpp │ ├── sacneffectengine.h │ ├── sacnlistener.cpp │ ├── sacnlistener.h │ ├── sacnsender.cpp │ ├── sacnsender.h │ ├── sacnsocket.cpp │ ├── sacnsocket.h │ ├── sacnuniverselistmodel.cpp │ ├── sacnuniverselistmodel.h │ ├── streamcommon.cpp │ ├── streamcommon.h │ ├── streamingacn.cpp │ └── streamingacn.h ├── scopewidget.cpp ├── scopewidget.h ├── scopewindow.cpp ├── scopewindow.h ├── snapshot.cpp ├── snapshot.h ├── theme │ ├── README.txt │ ├── darkstyle.cpp │ ├── darkstyle.h │ ├── darkstyle.qrc │ └── darkstyle │ │ ├── darkstyle.qss │ │ ├── icon_branch_closed.png │ │ ├── icon_branch_end.png │ │ ├── icon_branch_more.png │ │ ├── icon_branch_open.png │ │ ├── icon_checkbox_checked.png │ │ ├── icon_checkbox_checked_disabled.png │ │ ├── icon_checkbox_checked_pressed.png │ │ ├── icon_checkbox_indeterminate.png │ │ ├── icon_checkbox_indeterminate_disabled.png │ │ ├── icon_checkbox_indeterminate_pressed.png │ │ ├── icon_checkbox_unchecked.png │ │ ├── icon_checkbox_unchecked_disabled.png │ │ ├── icon_checkbox_unchecked_pressed.png │ │ ├── icon_close.png │ │ ├── icon_radiobutton_checked.png │ │ ├── icon_radiobutton_checked_disabled.png │ │ ├── icon_radiobutton_checked_pressed.png │ │ ├── icon_radiobutton_unchecked.png │ │ ├── icon_radiobutton_unchecked_disabled.png │ │ ├── icon_radiobutton_unchecked_pressed.png │ │ ├── icon_undock.png │ │ └── icon_vline.png ├── transmitwindow.cpp ├── transmitwindow.h ├── universedisplay.cpp ├── universedisplay.h ├── universeview.cpp ├── universeview.h ├── versioncheck.cpp ├── versioncheck.h ├── widgets │ ├── monitorspinbox.cpp │ └── monitorspinbox.h └── xpwarning.h ├── translations.pri ├── translations ├── sACNView_de.ts ├── sACNView_en.ts ├── sACNView_es.ts ├── sACNView_fr.ts ├── translationdialog.cpp ├── translationdialog.h ├── translationdialog.ui ├── translations.cpp ├── translations.h └── translations.qrc └── ui ├── aboutdialog.ui ├── addmultidialog.ui ├── bigdisplay.ui ├── configureperchanpriodlg.ui ├── crash_test.ui ├── flickerfinderinfoform.ui ├── logwindow.ui ├── mdimainwindow.ui ├── multiuniverse.ui ├── newversiondialog.ui ├── nicselectdialog.ui ├── pcapplayback.ui ├── preferencesdialog.ui ├── scopewindow.ui ├── snapshot.ui ├── transmitwindow.ui └── universeview.ui /.gitignore: -------------------------------------------------------------------------------- 1 | # C++ objects and libs 2 | *.slo 3 | *.lo 4 | *.o 5 | *.a 6 | *.la 7 | *.lai 8 | *.so 9 | *.dll 10 | *.dylib 11 | 12 | 13 | # Qt-es 14 | /.qmake.cache 15 | /.qmake.stash 16 | *.pro.user 17 | *.pro.user.* 18 | *.qbs.user 19 | *.qbs.user.* 20 | *.moc 21 | *.qm 22 | moc_*.cpp 23 | qrc_*.cpp 24 | ui_*.h 25 | Makefile* 26 | *-build-* 27 | 28 | # QtCreator 29 | 30 | *.autosave 31 | 32 | #QtCtreator Qml 33 | *.qmlproject.user 34 | *.qmlproject.user.* 35 | 36 | #Linux libs 37 | *.so.* 38 | 39 | #Libs 40 | !libs/** 41 | 42 | #Binary Output 43 | *.exe 44 | *.zip 45 | *.dmg 46 | *.AppImage 47 | *.deb 48 | 49 | #Linux installer autogenerated 50 | install/linux/AppDir/\.DirIcon 51 | install/linux/AppDir/AppRun 52 | install/linux/AppDir/*.desktop 53 | install/linux/AppDir/*.png 54 | install/linux/AppDir/qt\.conf 55 | install/linux/AppDir/sACNView 56 | install/linux/COPYRIGHT 57 | install/linux/usr/share/icons/hicolor/16x16/apps/sacnview\.png 58 | install/linux/usr/share/icons/hicolor/24x24/apps/sacnview\.png 59 | install/linux/usr/share/icons/hicolor/256x256/apps/sacnview\.png 60 | install/linux/usr/share/icons/hicolor/32x32/apps/sacnview\.png 61 | install/linux/usr/share/icons/hicolor/48x48/apps/sacnview\.png 62 | install/linux/usr/share/icons/hicolor/scalable/apps/sacnview\.png 63 | install/linux/build/ 64 | install/linux/fpm-checkout/ 65 | 66 | translations/sACNView\.ts 67 | 68 | libs/\.gclient_entries 69 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "libs/breakpad"] 2 | path = libs/breakpad 3 | url = https://github.com/google/breakpad.git 4 | [submodule "tools/depot_tools"] 5 | path = tools/depot_tools 6 | url = https://chromium.googlesource.com/chromium/tools/depot_tools.git 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # sACNView ![Build Status](https://github.com/docsteer/sacnview/actions/workflows/build.yml/badge.svg) 2 | 3 | sACNView is a tool for viewing, monitoring and testing the ANSI/ESTA E1.31 protcol, informally known as "Streaming ACN". 4 | 5 | For general information on the project, visit the [web site](http://docsteer.github.io/sacnview/) 6 | 7 | This protocol is used in lighting systems (typically theatre, television, live entertainment and other systems where a high performance stream of data is required). 8 | 9 | This is sACNView mark 2. The original program was written in Borland Delphi, but this new version supplants it. It is written in C++, using the Qt library and sACN reception code from [Electronic Theatre Controls](http://www.etcconnect.com). 10 | 11 | # Installation 12 | If you are interested in simply using the program, visit the [product web site](http://docsteer.github.io/sacnview/) to download installers for your platform (Linux, Mac or Windows OS). 13 | 14 | # Building 15 | If you are interested in building the application you will need the following: 16 | 17 | * Qt Library and Creator - https://www.qt.io/ide/ 18 | * Note : Due to [this bug](https://bugreports.qt.io/browse/QTBUG-27641) in Qt you need to use Qt version 5.9.0 or higher to build sACNView. 19 | * To build the windows installer - NSIS - http://nsis.sourceforge.net/ and the [SimpleFW NSIS Plugin](http://nsis.sourceforge.net/NSIS_Simple_Firewall_Plugin) 20 | * If NSIS is included in your $PATH the installer will be built automatically 21 | 22 | The application uses a couple of external libraries: 23 | 24 | * Google Breakpad for crash reporting 25 | * LibPCAP for captured packet playback 26 | 27 | You need to acquire the Breakpad library by using the git `submodule` command 28 | 29 | 1. Clone the repository (`git clone https://github.com/docsteer/sacnview.git`) 30 | 2. Switch to the directory (`cd sacnview`) 31 | 3. Initialize the submodules (`git submodule init`) 32 | 4. Download the submodule (`git submodule update`) 33 | 34 | After that, to build, open the .PRO file in the root directory and build with Qt Creator 35 | 36 | -------------------------------------------------------------------------------- /docs/404.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/CNAME: -------------------------------------------------------------------------------- 1 | sacnview.org -------------------------------------------------------------------------------- /docs/_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-cayman 2 | title: sACNView 3 | description: sACNView, a tool for sending and receiving the Streaming ACN control protocol 4 | show_downloads: true 5 | 6 | -------------------------------------------------------------------------------- /docs/assets/css/style.scss: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | 4 | @import "{{ site.theme }}"; 5 | 6 | /* Make the inner wide enough for 4 buttons */ 7 | .inner { 8 | width: 640px; 9 | } 10 | 11 | a.button { 12 | width: 126px; 13 | } 14 | -------------------------------------------------------------------------------- /docs/assets/images/action_shot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/action_shot.png -------------------------------------------------------------------------------- /docs/assets/images/capture_playback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/capture_playback.png -------------------------------------------------------------------------------- /docs/assets/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/icon.png -------------------------------------------------------------------------------- /docs/assets/images/linux-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/linux-icon.png -------------------------------------------------------------------------------- /docs/assets/images/mac-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/mac-icon.png -------------------------------------------------------------------------------- /docs/assets/images/multi_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/multi_dialog.png -------------------------------------------------------------------------------- /docs/assets/images/multi_universe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/multi_universe.png -------------------------------------------------------------------------------- /docs/assets/images/pcap_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/pcap_dialog.png -------------------------------------------------------------------------------- /docs/assets/images/preferencesdialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/preferencesdialog.png -------------------------------------------------------------------------------- /docs/assets/images/scope.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/scope.png -------------------------------------------------------------------------------- /docs/assets/images/scopeview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/scopeview.png -------------------------------------------------------------------------------- /docs/assets/images/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/settings.png -------------------------------------------------------------------------------- /docs/assets/images/snapshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/snapshot.png -------------------------------------------------------------------------------- /docs/assets/images/snapshot_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/snapshot_dialog.png -------------------------------------------------------------------------------- /docs/assets/images/transmit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/transmit.png -------------------------------------------------------------------------------- /docs/assets/images/transmitview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/transmitview.png -------------------------------------------------------------------------------- /docs/assets/images/transmitwindow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/transmitwindow.png -------------------------------------------------------------------------------- /docs/assets/images/univ_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/univ_view.png -------------------------------------------------------------------------------- /docs/assets/images/universelist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/universelist.png -------------------------------------------------------------------------------- /docs/assets/images/universeview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/universeview.png -------------------------------------------------------------------------------- /docs/assets/images/win-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/win-icon.png -------------------------------------------------------------------------------- /docs/assets/images/winxp-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/docs/assets/images/winxp-icon.png -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | sACNView is a tool for viewing, monitoring and testing the ANSI/ESTA E1.31 protocol, informally known as "Streaming ACN". 2 | 3 | This protocol is used in lighting systems (typically theatre, television, live entertainment and other systems where a high performance stream of data is required). It is closely related to USITT DMX-512A, providing multiple streams of DMX-like data over an Ethernet network. 4 | 5 | This is sACNView mark 2, which supplants the original version. 6 | 7 | # How to Install 8 | Use the buttons at the top of this page to download and install the program for your operating system 9 | 10 | # Supported Platforms 11 | * Windows 7 or newer 12 | * MacOS 10.13.4 (High Sierra) or newer 13 | * Linux (Debian based e.g. Ubuntu) 14 | 15 | # Windows XP 16 | Windows XP is no longer supported on new builds, but you can get the last version supporting XP [here](https://github.com/docsteer/sacnview/releases/download/v2.1.2/sACNView_v2.1.2-WinXP.exe) 17 | # How to Use 18 | See the [Documentation](./documentation.html) page for information on how to use the application 19 | 20 | # License and Usage 21 | 22 | sACNView is free software. It is a personal project and not supported by any company. It is provided free of charge and without any warranty. 23 | 24 | sACNView is licensed under the [Apache 2.0 license](https://www.apache.org/licenses/LICENSE-2.0). 25 | 26 | # Support 27 | 28 | You can create bug reports via the issue tracker on the [project Github site](https://github.com/docsteer/sacnview/). 29 | -------------------------------------------------------------------------------- /install/deploy/.placeholder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/install/deploy/.placeholder -------------------------------------------------------------------------------- /install/linux/AppDir/.placeholder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/install/linux/AppDir/.placeholder -------------------------------------------------------------------------------- /install/linux/_FPM_Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # feel free to change these to whatever makes sense 3 | # 4 | # debian package we rely on 5 | RUBY_PACKAGE=ruby2.3 6 | # and the executable that comes from it 7 | RUBY_BIN=/usr/bin/ruby 8 | # the version we name the deb 9 | VERSION=1.10.2 10 | # where to get the sauce 11 | GIT_URL=https://github.com/jordansissel/fpm.git 12 | # the tag we checkout to build from 13 | TAG_SPEC=tags/v$(VERSION) 14 | 15 | CHECKOUT_DIR=fpm-checkout 16 | BUILD_DIR=build 17 | LIB_DIR=$(BUILD_DIR)/usr/lib/fpm 18 | BIN_DIR=$(BUILD_DIR)/usr/bin 19 | GEM_PATH:=$(shell readlink -f .)/build/gem 20 | FPM_BIN=$(BIN_DIR)/fpm 21 | BUNDLE_BIN=$(GEM_PATH)/bin/bundle 22 | BUNDLE_CMD=$(RUBY_CMD) $(BUNDLE_BIN) 23 | FPM_CMD=$(FPM_BIN) 24 | GEM_CMD=$(RUBY_BIN) -S gem 25 | 26 | .PHONY: clean 27 | clean: 28 | rm -rf $(CHECKOUT_DIR) 29 | rm -rf $(BUILD_DIR) 30 | rm -f fpm*.deb 31 | 32 | $(CHECKOUT_DIR): 33 | rm -rf $(CHECKOUT_DIR) 34 | git clone $(GIT_URL) $(CHECKOUT_DIR) 35 | cd $(CHECKOUT_DIR) && git fetch && git checkout $(TAG_SPEC) 36 | 37 | $(BUNDLE_BIN): 38 | $(GEM_CMD) install bundler --install-dir=$(GEM_PATH) --no-ri --no-rdoc 39 | 40 | $(FPM_BIN): 41 | mkdir --parents $(BIN_DIR) 42 | # Couldn't think of a nice way to do this, so here is this code turd 43 | echo "#! $(RUBY_BIN)" > $(FPM_BIN) 44 | echo 'load File.dirname($$0) + "/../lib/fpm/bundle/bundler/setup.rb"' >> $(FPM_BIN) 45 | echo 'require "fpm"' >> $(FPM_BIN) 46 | echo 'require "fpm/command"' >> $(FPM_BIN) 47 | echo 'exit(FPM::Command.run || 0)' >> $(FPM_BIN) 48 | chmod +x $(FPM_BIN) 49 | 50 | .PHONY: install 51 | install: $(CHECKOUT_DIR) $(BUNDLE_BIN) $(FPM_BIN) 52 | mkdir --parents $(LIB_DIR) 53 | cd $(CHECKOUT_DIR) && GEM_PATH=$(GEM_PATH) $(BUNDLE_CMD) install --without=development --standalone 54 | cd $(CHECKOUT_DIR) && gem build fpm.gemspec 55 | tar -xf $(CHECKOUT_DIR)/fpm*gem -C $(BUILD_DIR) 56 | tar --touch -xf $(BUILD_DIR)/data.tar.gz -C $(LIB_DIR) 57 | cp -r $(CHECKOUT_DIR)/bundle $(LIB_DIR)/bundle 58 | 59 | .PHONY: package 60 | package: install 61 | $(FPM_BIN) -s dir -t deb -n fpm -d $(RUBY_PACKAGE) -v $(VERSION) -C $(BUILD_DIR) usr 62 | -------------------------------------------------------------------------------- /install/linux/opt/sacnview/.placeholder: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /install/linux/usr/share/applications/sacnview.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Name=sACNView 2 4 | Exec=/opt/sacnview/sACNView2.AppImage 5 | Icon=sacnview 6 | Comment=Streaming ACN Viewer mark2 7 | Categories=Network; 8 | Terminal=false 9 | -------------------------------------------------------------------------------- /install/linux/usr/share/icons/hicolor/16x16/apps/.placeholder: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /install/linux/usr/share/icons/hicolor/24x24/apps/.placeholder: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /install/linux/usr/share/icons/hicolor/256x256/apps/.placeholder: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /install/linux/usr/share/icons/hicolor/32x32/apps/.placeholder: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /install/linux/usr/share/icons/hicolor/48x48/apps/.placeholder: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /install/linux/usr/share/icons/hicolor/scalable/apps/.placeholder: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /install/mac/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2008-2014 Andrey Tarantsov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /install/mac/builder/create-dmg.builder: -------------------------------------------------------------------------------- 1 | SET app_name create-dmg 2 | 3 | VERSION create-dmg.cur create-dmg heads/master 4 | 5 | NEWDIR build.dir temp %-build - 6 | 7 | NEWFILE create-dmg.zip featured %.zip % 8 | 9 | 10 | COPYTO [build.dir] 11 | INTO create-dmg [create-dmg.cur]/create-dmg 12 | INTO sample [create-dmg.cur]/sample 13 | INTO support [create-dmg.cur]/support 14 | 15 | SUBSTVARS [build.dir]/create-dmg [[]] 16 | 17 | 18 | ZIP [create-dmg.zip] 19 | INTO [build-files-prefix] [build.dir] 20 | 21 | 22 | PUT megabox-builds create-dmg.zip 23 | PUT megabox-builds build.log 24 | 25 | PUT s3-builds create-dmg.zip 26 | PUT s3-builds build.log 27 | -------------------------------------------------------------------------------- /install/mac/sample: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | test -f test2.dmg && rm test2.dmg 3 | ./create-dmg --window-size 500 300 --background ~/Projects/eclipse-osx-repackager/build/background.gif --icon-size 96 --volname "Hyper Foo" --app-drop-link 380 205 --icon "Eclipse OS X Repackager" 110 205 test2.dmg /Users/andreyvit/Projects/eclipse-osx-repackager/temp/Eclipse\ OS\ X\ Repackager\ r10/ 4 | -------------------------------------------------------------------------------- /install/mac/sign-mac-executable.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # Adapted from https://www.update.rocks/blog/osx-signing-with-travis/ 3 | # Uses a base64 encoded certificate in an environment variable to set up signing 4 | # Exits if the variable isn't set 5 | 6 | KEY_CHAIN=buildtest2.keychain 7 | CERTIFICATE_P12=certificate.p12 8 | 9 | # Check for the variable 10 | if [ -z ${CERTIFICATE_OSX_P12+x} ]; then 11 | echo "No macos signing setup - output will be unsigned" 12 | exit 13 | else 14 | echo "macos signing is setup - output will be signed" 15 | fi 16 | 17 | # Recreate the certificate from the secure environment variable 18 | echo $CERTIFICATE_OSX_P12 | base64 --decode > $CERTIFICATE_P12 19 | 20 | #create a keychain 21 | security create-keychain -p travis $KEY_CHAIN 22 | 23 | # Make the keychain the default so identities are found 24 | security default-keychain -s $KEY_CHAIN 25 | 26 | # Unlock the keychain 27 | security unlock-keychain -p travis $KEY_CHAIN 28 | 29 | # Set keychain locking timeout to 1 hour 30 | security set-keychain-settings -t 3600 -u $KEY_CHAIN 31 | 32 | security import $CERTIFICATE_P12 -k $KEY_CHAIN -P $CERTIFICATE_PASSWORD -T /usr/bin/codesign; 33 | 34 | security set-key-partition-list -S apple-tool:,apple: -s -k travis $KEY_CHAIN 35 | 36 | # remove certs 37 | rm -fr *.p12 38 | -------------------------------------------------------------------------------- /install/mac/support/template.applescript: -------------------------------------------------------------------------------- 1 | on run (volumeName) 2 | tell application "Finder" 3 | tell disk (volumeName as string) 4 | open 5 | 6 | set theXOrigin to WINX 7 | set theYOrigin to WINY 8 | set theWidth to WINW 9 | set theHeight to WINH 10 | 11 | set theBottomRightX to (theXOrigin + theWidth) 12 | set theBottomRightY to (theYOrigin + theHeight) 13 | set dsStore to "\"" & "/Volumes/" & volumeName & "/" & ".DS_STORE\"" 14 | 15 | tell container window 16 | set current view to icon view 17 | set toolbar visible to false 18 | set statusbar visible to false 19 | set the bounds to {theXOrigin, theYOrigin, theBottomRightX, theBottomRightY} 20 | set statusbar visible to false 21 | REPOSITION_HIDDEN_FILES_CLAUSE 22 | end tell 23 | 24 | set opts to the icon view options of container window 25 | tell opts 26 | set icon size to ICON_SIZE 27 | set text size to TEXT_SIZE 28 | set arrangement to not arranged 29 | end tell 30 | BACKGROUND_CLAUSE 31 | 32 | -- Positioning 33 | POSITION_CLAUSE 34 | 35 | -- Hiding 36 | HIDING_CLAUSE 37 | 38 | -- Application Link Clause 39 | APPLICATION_CLAUSE 40 | close 41 | open 42 | 43 | update without registering applications 44 | -- Force saving of the size 45 | delay 1 46 | 47 | tell container window 48 | set statusbar visible to false 49 | set the bounds to {theXOrigin, theYOrigin, theBottomRightX - 10, theBottomRightY - 10} 50 | end tell 51 | 52 | update without registering applications 53 | end tell 54 | 55 | delay 1 56 | 57 | tell disk (volumeName as string) 58 | tell container window 59 | set statusbar visible to false 60 | set the bounds to {theXOrigin, theYOrigin, theBottomRightX, theBottomRightY} 61 | end tell 62 | 63 | update without registering applications 64 | end tell 65 | 66 | --give the finder some time to write the .DS_Store file 67 | delay 3 68 | 69 | set waitTime to 0 70 | set ejectMe to false 71 | repeat while ejectMe is false 72 | delay 1 73 | set waitTime to waitTime + 1 74 | 75 | if (do shell script "[ -f " & dsStore & " ]; echo $?") = "0" then set ejectMe to true 76 | end repeat 77 | log "waited " & waitTime & " seconds for .DS_STORE to be created." 78 | end tell 79 | end run 80 | -------------------------------------------------------------------------------- /ipc example/excel/IPC Example.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/ipc example/excel/IPC Example.xlsm -------------------------------------------------------------------------------- /libs/.gclient: -------------------------------------------------------------------------------- 1 | solutions = [ 2 | { "name" : "breakpad", 3 | "url" : "https://github.com/google/breakpad.git", 4 | "deps_file" : "DEPS", 5 | "managed" : False, 6 | "custom_deps" : { 7 | }, 8 | "custom_vars": {}, 9 | }, 10 | ] 11 | cache_dir = None 12 | -------------------------------------------------------------------------------- /libs/.gclient_entries: -------------------------------------------------------------------------------- 1 | entries = { 2 | 'breakpad': 'https://github.com/google/breakpad.git', 3 | 'src/src/testing': 'https://github.com/google/googletest.git@release-1.8.0', 4 | 'src/src/third_party/lss': 'https://chromium.googlesource.com/linux-syscall-support@e6527b0cd469e3ff5764785dadcb39bf7d787154', 5 | 'src/src/third_party/protobuf/protobuf': 'https://github.com/google/protobuf.git@cb6dd4ef5f82e41e06179dcd57d3b1d9246ad6ac', 6 | 'src/src/tools/gyp': 'https://chromium.googlesource.com/external/gyp@324dd166b7c0b39d513026fa52d6280ac6d56770', 7 | } 8 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4.7z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4.7z -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Bin/Packet.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/Bin/Packet.dll -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Bin/wpcap.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/Bin/wpcap.dll -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Bin/x64/Packet.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/Bin/x64/Packet.dll -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Bin/x64/wpcap.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/Bin/x64/wpcap.dll -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/GNUmakefile: -------------------------------------------------------------------------------- 1 | # Makefile for cygwin gcc 2 | # Nate Lawson 3 | 4 | SUBDIRS = basic_dump basic_dump_ex iflist pcap_filter pktdump_ex readfile readfile_ex savedump sendpack UDPdump 5 | 6 | all clean install uninstall: ${SUBDIRS} 7 | for subdir in ${SUBDIRS}; do \ 8 | echo "Entering $$subdir"; \ 9 | (cd $$subdir && ${MAKE} $@) \ 10 | done; 11 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/UDPdump/GNUmakefile: -------------------------------------------------------------------------------- 1 | # Makefile for cygwin gcc 2 | # Loris Degioanni 3 | 4 | PCAP_PATH = ../../lib 5 | CFLAGS = -g -O -mno-cygwin -I ../../include 6 | 7 | OBJS = udpdump.o 8 | LIBS = -L ${PCAP_PATH} -lwpcap -lwsock32 9 | 10 | all: ${OBJS} 11 | ${CC} ${CFLAGS} -o udpdump.exe ${OBJS} ${LIBS} 12 | 13 | clean: 14 | rm -f ${OBJS} udpdump.exe 15 | 16 | .c.o: 17 | ${CC} ${CFLAGS} -c -o $*.o $< 18 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/UDPdump/UDPdump.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "UDPdump"=.\UDPdump.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/basic_dump/GNUmakefile: -------------------------------------------------------------------------------- 1 | # Makefile for cygwin gcc 2 | # Nate Lawson 3 | 4 | PCAP_PATH = ../../lib 5 | CFLAGS = -g -O -mno-cygwin -I ../../include 6 | 7 | OBJS = basic_dump.o 8 | LIBS = -L ${PCAP_PATH} -lwpcap 9 | 10 | all: ${OBJS} 11 | ${CC} ${CFLAGS} -o basic_dump.exe ${OBJS} ${LIBS} 12 | 13 | clean: 14 | rm -f ${OBJS} basic_dump.exe 15 | 16 | .c.o: 17 | ${CC} ${CFLAGS} -c -o $*.o $< 18 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/basic_dump/basic_dump.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "basic_dump"=.\basic_dump.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/basic_dump_ex/GNUmakefile: -------------------------------------------------------------------------------- 1 | # Makefile for cygwin gcc 2 | # Nate Lawson 3 | 4 | PCAP_PATH = ../../lib 5 | CFLAGS = -g -O -mno-cygwin -I ../../include 6 | 7 | OBJS = basic_dump_ex.o 8 | LIBS = -L ${PCAP_PATH} -lwpcap 9 | 10 | all: ${OBJS} 11 | ${CC} ${CFLAGS} -o basic_dump_ex.exe ${OBJS} ${LIBS} 12 | 13 | clean: 14 | rm -f ${OBJS} basic_dump_ex.exe 15 | 16 | .c.o: 17 | ${CC} ${CFLAGS} -c -o $*.o $< 18 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/basic_dump_ex/basic_dump_ex.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "basic_dump_ex"=.\basic_dump_ex.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/iflist/GNUmakefile: -------------------------------------------------------------------------------- 1 | # Makefile for cygwin gcc 2 | # Nate Lawson 3 | 4 | PCAP_PATH = ../../lib 5 | CFLAGS = -g -O -mno-cygwin -I ../../include 6 | 7 | OBJS = iflist.o 8 | LIBS = -L ${PCAP_PATH} -lwpcap 9 | 10 | all: ${OBJS} 11 | ${CC} ${CFLAGS} -o iflist.exe ${OBJS} ${LIBS} 12 | 13 | clean: 14 | rm -f ${OBJS} iflist.exe 15 | 16 | .c.o: 17 | ${CC} ${CFLAGS} -c -o $*.o $< 18 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/iflist/iflist.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "iflist"=.\iflist.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/pcap_filter/GNUmakefile: -------------------------------------------------------------------------------- 1 | # Makefile for cygwin gcc 2 | # Nate Lawson 3 | 4 | PCAP_PATH = ../../lib 5 | CFLAGS = -g -O -mno-cygwin -I ../../include 6 | 7 | OBJS = pcap_filter.o 8 | LIBS = -L ${PCAP_PATH} -lwpcap 9 | 10 | all: ${OBJS} 11 | ${CC} ${CFLAGS} -o pf.exe ${OBJS} ${LIBS} 12 | 13 | clean: 14 | rm -f ${OBJS} pf.exe 15 | 16 | .c.o: 17 | ${CC} ${CFLAGS} -c -o $*.o $< 18 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/pcap_filter/pcap_filter.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "pcap_filter"=.\pcap_filter.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/pktdump_ex/GNUmakefile: -------------------------------------------------------------------------------- 1 | PCAP_PATH = ../../lib 2 | CFLAGS = -g -O -mno-cygwin -I ../../include 3 | 4 | OBJS = pktdump_ex.o 5 | LIBS = -L ${PCAP_PATH} -lwpcap 6 | 7 | all: ${OBJS} 8 | ${CC} ${CFLAGS} -o pktdump_ex.exe ${OBJS} ${LIBS} 9 | 10 | clean: 11 | rm -f ${OBJS} pktdump_ex.exe 12 | 13 | .c.o: 14 | ${CC} ${CFLAGS} -c -o $*.o $< 15 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/pktdump_ex/pktdump_ex.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "pktdump_ex"=.\pktdump_ex.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/readfile/GNUmakefile: -------------------------------------------------------------------------------- 1 | # Makefile for cygwin gcc 2 | # Nate Lawson 3 | 4 | PCAP_PATH = ../../lib 5 | CFLAGS = -g -O -mno-cygwin -I ../../include 6 | 7 | OBJS = readfile.o 8 | LIBS = -L ${PCAP_PATH} -lwpcap 9 | 10 | all: ${OBJS} 11 | ${CC} ${CFLAGS} -o readfile.exe ${OBJS} ${LIBS} 12 | 13 | clean: 14 | rm -f ${OBJS} readfile.exe 15 | 16 | .c.o: 17 | ${CC} ${CFLAGS} -c -o $*.o $< 18 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/readfile/readfile.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #define LINE_LEN 16 5 | 6 | void dispatcher_handler(u_char *, const struct pcap_pkthdr *, const u_char *); 7 | 8 | int main(int argc, char **argv) 9 | { 10 | pcap_t *fp; 11 | char errbuf[PCAP_ERRBUF_SIZE]; 12 | 13 | if(argc != 2) 14 | { 15 | printf("usage: %s filename", argv[0]); 16 | return -1; 17 | 18 | } 19 | 20 | /* Open the capture file */ 21 | if ((fp = pcap_open_offline(argv[1], // name of the device 22 | errbuf // error buffer 23 | )) == NULL) 24 | { 25 | fprintf(stderr,"\nUnable to open the file %s.\n", argv[1]); 26 | return -1; 27 | } 28 | 29 | /* read and dispatch packets until EOF is reached */ 30 | pcap_loop(fp, 0, dispatcher_handler, NULL); 31 | 32 | pcap_close(fp); 33 | return 0; 34 | } 35 | 36 | 37 | 38 | void dispatcher_handler(u_char *temp1, 39 | const struct pcap_pkthdr *header, 40 | const u_char *pkt_data) 41 | { 42 | u_int i=0; 43 | 44 | /* 45 | * unused variable 46 | */ 47 | (VOID*)temp1; 48 | 49 | /* print pkt timestamp and pkt len */ 50 | printf("%ld:%ld (%ld)\n", header->ts.tv_sec, header->ts.tv_usec, header->len); 51 | 52 | /* Print the packet */ 53 | for (i=1; (i < header->caplen + 1 ) ; i++) 54 | { 55 | printf("%.2x ", pkt_data[i-1]); 56 | if ( (i % LINE_LEN) == 0) printf("\n"); 57 | } 58 | 59 | printf("\n\n"); 60 | 61 | } 62 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/readfile/readfile.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "readfile"=.\readfile.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/readfile_ex/GNUmakefile: -------------------------------------------------------------------------------- 1 | # Makefile for cygwin gcc 2 | # Nate Lawson 3 | 4 | PCAP_PATH = ../../lib 5 | CFLAGS = -g -O -mno-cygwin -I ../../include 6 | 7 | OBJS = readfile_ex.o 8 | LIBS = -L ${PCAP_PATH} -lwpcap 9 | 10 | all: ${OBJS} 11 | ${CC} ${CFLAGS} -o readfile_ex.exe ${OBJS} ${LIBS} 12 | 13 | clean: 14 | rm -f ${OBJS} readfile_ex.exe 15 | 16 | .c.o: 17 | ${CC} ${CFLAGS} -c -o $*.o $< 18 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/readfile_ex/readfile_ex.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #define LINE_LEN 16 5 | 6 | int main(int argc, char **argv) 7 | { 8 | pcap_t *fp; 9 | char errbuf[PCAP_ERRBUF_SIZE]; 10 | struct pcap_pkthdr *header; 11 | const u_char *pkt_data; 12 | u_int i=0; 13 | int res; 14 | 15 | if(argc != 2) 16 | { 17 | printf("usage: %s filename", argv[0]); 18 | return -1; 19 | 20 | } 21 | 22 | /* Open the capture file */ 23 | if ((fp = pcap_open_offline(argv[1], // name of the device 24 | errbuf // error buffer 25 | )) == NULL) 26 | { 27 | fprintf(stderr,"\nUnable to open the file %s.\n", argv[1]); 28 | return -1; 29 | } 30 | 31 | /* Retrieve the packets from the file */ 32 | while((res = pcap_next_ex(fp, &header, &pkt_data)) >= 0) 33 | { 34 | /* print pkt timestamp and pkt len */ 35 | printf("%ld:%ld (%ld)\n", header->ts.tv_sec, header->ts.tv_usec, header->len); 36 | 37 | /* Print the packet */ 38 | for (i=1; (i < header->caplen + 1 ) ; i++) 39 | { 40 | printf("%.2x ", pkt_data[i-1]); 41 | if ( (i % LINE_LEN) == 0) printf("\n"); 42 | } 43 | 44 | printf("\n\n"); 45 | } 46 | 47 | 48 | if (res == -1) 49 | { 50 | printf("Error reading the packets: %s\n", pcap_geterr(fp)); 51 | } 52 | 53 | pcap_close(fp); 54 | return 0; 55 | } 56 | 57 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/readfile_ex/readfile_ex.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "readfile_ex"=.\readfile_ex.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/savedump/GNUmakefile: -------------------------------------------------------------------------------- 1 | # Makefile for cygwin gcc 2 | # Nate Lawson 3 | 4 | PCAP_PATH = ../../lib 5 | CFLAGS = -g -O -mno-cygwin -I ../../include 6 | 7 | OBJS = savedump.o 8 | LIBS = -L ${PCAP_PATH} -lwpcap 9 | 10 | all: ${OBJS} 11 | ${CC} ${CFLAGS} -o savedump.exe ${OBJS} ${LIBS} 12 | 13 | clean: 14 | rm -f ${OBJS} savedump.exe 15 | 16 | .c.o: 17 | ${CC} ${CFLAGS} -c -o $*.o $< 18 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/savedump/savedump.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "savedump"=.\savedump.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/sendpack/GNUmakefile: -------------------------------------------------------------------------------- 1 | # Makefile for cygwin gcc 2 | # Nate Lawson 3 | 4 | PCAP_PATH = ../../lib 5 | CFLAGS = -g -O -mno-cygwin -I ../../include 6 | 7 | OBJS = sendpack.o 8 | LIBS = -L ${PCAP_PATH} -lwpcap 9 | 10 | all: ${OBJS} 11 | ${CC} ${CFLAGS} -o sendpack.exe ${OBJS} ${LIBS} 12 | 13 | clean: 14 | rm -f ${OBJS} sendpack.exe 15 | 16 | .c.o: 17 | ${CC} ${CFLAGS} -c -o $*.o $< 18 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/sendpack/sendpack.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include 5 | 6 | 7 | int main(int argc, char **argv) 8 | { 9 | pcap_t *fp; 10 | char errbuf[PCAP_ERRBUF_SIZE]; 11 | u_char packet[100]; 12 | int i; 13 | 14 | /* Check the validity of the command line */ 15 | if (argc != 2) 16 | { 17 | printf("usage: %s interface", argv[0]); 18 | return 1; 19 | } 20 | 21 | /* Open the adapter */ 22 | if ((fp = pcap_open_live(argv[1], // name of the device 23 | 65536, // portion of the packet to capture. It doesn't matter in this case 24 | 1, // promiscuous mode (nonzero means promiscuous) 25 | 1000, // read timeout 26 | errbuf // error buffer 27 | )) == NULL) 28 | { 29 | fprintf(stderr,"\nUnable to open the adapter. %s is not supported by WinPcap\n", argv[1]); 30 | return 2; 31 | } 32 | 33 | /* Supposing to be on ethernet, set mac destination to 1:1:1:1:1:1 */ 34 | packet[0]=1; 35 | packet[1]=1; 36 | packet[2]=1; 37 | packet[3]=1; 38 | packet[4]=1; 39 | packet[5]=1; 40 | 41 | /* set mac source to 2:2:2:2:2:2 */ 42 | packet[6]=2; 43 | packet[7]=2; 44 | packet[8]=2; 45 | packet[9]=2; 46 | packet[10]=2; 47 | packet[11]=2; 48 | 49 | /* Fill the rest of the packet */ 50 | for(i=12;i<100;i++) 51 | { 52 | packet[i]= (u_char)i; 53 | } 54 | 55 | /* Send down the packet */ 56 | if (pcap_sendpacket(fp, // Adapter 57 | packet, // buffer with the packet 58 | 100 // size 59 | ) != 0) 60 | { 61 | fprintf(stderr,"\nError sending the packet: %s\n", pcap_geterr(fp)); 62 | return 3; 63 | } 64 | 65 | pcap_close(fp); 66 | return 0; 67 | } 68 | 69 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-pcap/sendpack/sendpack.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "sendpack"=.\sendpack.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-remote/PacketDriver/readme.txt: -------------------------------------------------------------------------------- 1 | These files use the packet.dll API instead of wpcap.dll. 2 | The use of packet.dll API is strongly discouraged. 3 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-remote/UDPdump/UDPdump.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "UDPdump"=.\UDPdump.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-remote/UserLevelBridge/UserBridge.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "UserBridge"=.\UserBridge.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-remote/iflist/iflist.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "iflist"=.\iflist.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-remote/misc/MakeaAll.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "basic_dump"=.\basic_dump.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Project: "basic_dump_ex"=.\basic_dump_ex.dsp - Package Owner=<4> 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<4> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | Project: "readfile"=.\readfile.dsp - Package Owner=<4> 31 | 32 | Package=<5> 33 | {{{ 34 | }}} 35 | 36 | Package=<4> 37 | {{{ 38 | }}} 39 | 40 | ############################################################################### 41 | 42 | Project: "readfile_ex"=.\readfile_ex.dsp - Package Owner=<4> 43 | 44 | Package=<5> 45 | {{{ 46 | }}} 47 | 48 | Package=<4> 49 | {{{ 50 | }}} 51 | 52 | ############################################################################### 53 | 54 | Project: "savedump"=.\savedump.dsp - Package Owner=<4> 55 | 56 | Package=<5> 57 | {{{ 58 | }}} 59 | 60 | Package=<4> 61 | {{{ 62 | }}} 63 | 64 | ############################################################################### 65 | 66 | Project: "sendpack"=.\sendpack.dsp - Package Owner=<4> 67 | 68 | Package=<5> 69 | {{{ 70 | }}} 71 | 72 | Package=<4> 73 | {{{ 74 | }}} 75 | 76 | ############################################################################### 77 | 78 | Global: 79 | 80 | Package=<5> 81 | {{{ 82 | }}} 83 | 84 | Package=<3> 85 | {{{ 86 | }}} 87 | 88 | ############################################################################### 89 | 90 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-remote/misc/readfile.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #define LINE_LEN 16 5 | 6 | void dispatcher_handler(u_char *, const struct pcap_pkthdr *, const u_char *); 7 | 8 | int main(int argc, char **argv) 9 | { 10 | pcap_t *fp; 11 | char errbuf[PCAP_ERRBUF_SIZE]; 12 | char source[PCAP_BUF_SIZE]; 13 | 14 | if(argc != 2){ 15 | 16 | printf("usage: %s filename", argv[0]); 17 | return -1; 18 | 19 | } 20 | 21 | /* Create the source string according to the new WinPcap syntax */ 22 | if ( pcap_createsrcstr( source, // variable that will keep the source string 23 | PCAP_SRC_FILE, // we want to open a file 24 | NULL, // remote host 25 | NULL, // port on the remote host 26 | argv[1], // name of the file we want to open 27 | errbuf // error buffer 28 | ) != 0) 29 | { 30 | fprintf(stderr,"\nError creating a source string\n"); 31 | return -1; 32 | } 33 | 34 | /* Open the capture file */ 35 | if ( (fp= pcap_open(source, // name of the device 36 | 65536, // portion of the packet to capture 37 | // 65536 guarantees that the whole packet will be captured on all the link layers 38 | PCAP_OPENFLAG_PROMISCUOUS, // promiscuous mode 39 | 1000, // read timeout 40 | NULL, // authentication on the remote machine 41 | errbuf // error buffer 42 | ) ) == NULL) 43 | { 44 | fprintf(stderr,"\nUnable to open the file %s.\n", source); 45 | return -1; 46 | } 47 | 48 | // read and dispatch packets until EOF is reached 49 | pcap_loop(fp, 0, dispatcher_handler, NULL); 50 | 51 | return 0; 52 | } 53 | 54 | 55 | 56 | void dispatcher_handler(u_char *temp1, 57 | const struct pcap_pkthdr *header, const u_char *pkt_data) 58 | { 59 | u_int i=0; 60 | 61 | /* 62 | * Unused variable 63 | */ 64 | (VOID)temp1; 65 | 66 | /* print pkt timestamp and pkt len */ 67 | printf("%ld:%ld (%ld)\n", header->ts.tv_sec, header->ts.tv_usec, header->len); 68 | 69 | /* Print the packet */ 70 | for (i=1; (i < header->caplen + 1 ) ; i++) 71 | { 72 | printf("%.2x ", pkt_data[i-1]); 73 | if ( (i % LINE_LEN) == 0) printf("\n"); 74 | } 75 | 76 | printf("\n\n"); 77 | 78 | } 79 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-remote/misc/readfile_ex.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #define LINE_LEN 16 5 | 6 | int main(int argc, char **argv) 7 | { 8 | pcap_t *fp; 9 | char errbuf[PCAP_ERRBUF_SIZE]; 10 | char source[PCAP_BUF_SIZE]; 11 | struct pcap_pkthdr *header; 12 | const u_char *pkt_data; 13 | u_int i=0; 14 | int res; 15 | 16 | if(argc != 2) 17 | { 18 | printf("usage: %s filename", argv[0]); 19 | return -1; 20 | } 21 | 22 | /* Create the source string according to the new WinPcap syntax */ 23 | if ( pcap_createsrcstr( source, // variable that will keep the source string 24 | PCAP_SRC_FILE, // we want to open a file 25 | NULL, // remote host 26 | NULL, // port on the remote host 27 | argv[1], // name of the file we want to open 28 | errbuf // error buffer 29 | ) != 0) 30 | { 31 | fprintf(stderr,"\nError creating a source string\n"); 32 | return -1; 33 | } 34 | 35 | /* Open the capture file */ 36 | if ( (fp= pcap_open(source, // name of the device 37 | 65536, // portion of the packet to capture 38 | // 65536 guarantees that the whole packet will be captured on all the link layers 39 | PCAP_OPENFLAG_PROMISCUOUS, // promiscuous mode 40 | 1000, // read timeout 41 | NULL, // authentication on the remote machine 42 | errbuf // error buffer 43 | ) ) == NULL) 44 | { 45 | fprintf(stderr,"\nUnable to open the file %s.\n", source); 46 | return -1; 47 | } 48 | 49 | /* Retrieve the packets from the file */ 50 | while((res = pcap_next_ex( fp, &header, &pkt_data)) >= 0) 51 | { 52 | /* print pkt timestamp and pkt len */ 53 | printf("%ld:%ld (%ld)\n", header->ts.tv_sec, header->ts.tv_usec, header->len); 54 | 55 | /* Print the packet */ 56 | for (i=1; (i < header->caplen + 1 ) ; i++) 57 | { 58 | printf("%.2x ", pkt_data[i-1]); 59 | if ( (i % LINE_LEN) == 0) printf("\n"); 60 | } 61 | 62 | printf("\n\n"); 63 | } 64 | 65 | 66 | if (res == -1) 67 | { 68 | printf("Error reading the packets: %s\n", pcap_geterr(fp)); 69 | } 70 | 71 | return 0; 72 | } 73 | 74 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-remote/misc/sendpack.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include 5 | 6 | 7 | void main(int argc, char **argv) 8 | { 9 | pcap_t *fp; 10 | char errbuf[PCAP_ERRBUF_SIZE]; 11 | u_char packet[100]; 12 | int i; 13 | 14 | /* Check the validity of the command line */ 15 | if (argc != 2) 16 | { 17 | printf("usage: %s interface (e.g. 'rpcap://eth0')", argv[0]); 18 | return; 19 | } 20 | 21 | /* Open the output device */ 22 | if ( (fp= pcap_open(argv[1], // name of the device 23 | 100, // portion of the packet to capture (only the first 100 bytes) 24 | PCAP_OPENFLAG_PROMISCUOUS, // promiscuous mode 25 | 1000, // read timeout 26 | NULL, // authentication on the remote machine 27 | errbuf // error buffer 28 | ) ) == NULL) 29 | { 30 | fprintf(stderr,"\nUnable to open the adapter. %s is not supported by WinPcap\n", argv[1]); 31 | return; 32 | } 33 | 34 | /* Supposing to be on ethernet, set mac destination to 1:1:1:1:1:1 */ 35 | packet[0]=1; 36 | packet[1]=1; 37 | packet[2]=1; 38 | packet[3]=1; 39 | packet[4]=1; 40 | packet[5]=1; 41 | 42 | /* set mac source to 2:2:2:2:2:2 */ 43 | packet[6]=2; 44 | packet[7]=2; 45 | packet[8]=2; 46 | packet[9]=2; 47 | packet[10]=2; 48 | packet[11]=2; 49 | 50 | /* Fill the rest of the packet */ 51 | for(i=12;i<100;i++) 52 | { 53 | packet[i]=(u_char)i; 54 | } 55 | 56 | /* Send down the packet */ 57 | if (pcap_sendpacket(fp, packet, 100 /* size */) != 0) 58 | { 59 | fprintf(stderr,"\nError sending the packet: %s\n", pcap_geterr(fp)); 60 | return; 61 | } 62 | 63 | return; 64 | } 65 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-remote/pcap_filter/pcap_filter.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "pcap_filter"=.\pcap_filter.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-remote/pktdump_ex/pktdump_ex.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "pktdump_ex"=.\pktdump_ex.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-remote/sendcap/sencap.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "sendcap"=.\sendcap.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-remote/smp_1/smp_1.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "smp_1"=.\smp_1.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Examples-remote/tcptop/tcptop.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "tcptop"=.\tcptop.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Include/pcap-namedb.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1994, 1996 3 | * The Regents of the University of California. All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions 7 | * are met: 8 | * 1. Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * 3. All advertising materials mentioning features or use of this software 14 | * must display the following acknowledgement: 15 | * This product includes software developed by the Computer Systems 16 | * Engineering Group at Lawrence Berkeley Laboratory. 17 | * 4. Neither the name of the University nor of the Laboratory may be used 18 | * to endorse or promote products derived from this software without 19 | * specific prior written permission. 20 | * 21 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 22 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 25 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 | * SUCH DAMAGE. 32 | */ 33 | 34 | /* 35 | * For backwards compatibility. 36 | * 37 | * Note to OS vendors: do NOT get rid of this file! Some applications 38 | * might expect to be able to include . 39 | */ 40 | #include 41 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Include/pcap.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1993, 1994, 1995, 1996, 1997 3 | * The Regents of the University of California. All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions 7 | * are met: 8 | * 1. Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * 3. All advertising materials mentioning features or use of this software 14 | * must display the following acknowledgement: 15 | * This product includes software developed by the Computer Systems 16 | * Engineering Group at Lawrence Berkeley Laboratory. 17 | * 4. Neither the name of the University nor of the Laboratory may be used 18 | * to endorse or promote products derived from this software without 19 | * specific prior written permission. 20 | * 21 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 22 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 25 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 | * SUCH DAMAGE. 32 | */ 33 | 34 | /* 35 | * For backwards compatibility. 36 | * 37 | * Note to OS vendors: do NOT get rid of this file! Many applications 38 | * expect to be able to include , and at least some of them 39 | * go through contortions in their configure scripts to try to detect 40 | * OSes that have "helpfully" moved pcap.h to without 41 | * leaving behind a file. 42 | */ 43 | #include 44 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Include/pcap/bluetooth.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2006 Paolo Abeni (Italy) 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions 7 | * are met: 8 | * 9 | * 1. Redistributions of source code must retain the above copyright 10 | * notice, this list of conditions and the following disclaimer. 11 | * 2. Redistributions in binary form must reproduce the above copyright 12 | * notice, this list of conditions and the following disclaimer in the 13 | * documentation and/or other materials provided with the distribution. 14 | * 3. The name of the author may not be used to endorse or promote 15 | * products derived from this software without specific prior written 16 | * permission. 17 | * 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | * 30 | * bluetooth data struct 31 | * By Paolo Abeni 32 | */ 33 | 34 | #ifndef _PCAP_BLUETOOTH_STRUCTS_H__ 35 | #define _PCAP_BLUETOOTH_STRUCTS_H__ 36 | 37 | /* 38 | * Header prepended libpcap to each bluetooth h4 frame, 39 | * fields are in network byte order 40 | */ 41 | typedef struct _pcap_bluetooth_h4_header { 42 | u_int32_t direction; /* if first bit is set direction is incoming */ 43 | } pcap_bluetooth_h4_header; 44 | 45 | /* 46 | * Header prepended libpcap to each bluetooth linux monitor frame, 47 | * fields are in network byte order 48 | */ 49 | typedef struct _pcap_bluetooth_linux_monitor_header { 50 | u_int16_t adapter_id; 51 | u_int16_t opcode; 52 | } pcap_bluetooth_linux_monitor_header; 53 | 54 | 55 | #endif 56 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Include/pcap/vlan.h: -------------------------------------------------------------------------------- 1 | /*- 2 | * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997 3 | * The Regents of the University of California. All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions 7 | * are met: 8 | * 1. Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * 3. All advertising materials mentioning features or use of this software 14 | * must display the following acknowledgement: 15 | * This product includes software developed by the University of 16 | * California, Berkeley and its contributors. 17 | * 4. Neither the name of the University nor the names of its contributors 18 | * may be used to endorse or promote products derived from this software 19 | * without specific prior written permission. 20 | * 21 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 22 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 25 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 | * SUCH DAMAGE. 32 | */ 33 | 34 | #ifndef lib_pcap_vlan_h 35 | #define lib_pcap_vlan_h 36 | 37 | struct vlan_tag { 38 | u_int16_t vlan_tpid; /* ETH_P_8021Q */ 39 | u_int16_t vlan_tci; /* VLAN TCI */ 40 | }; 41 | 42 | #define VLAN_TAG_LEN 4 43 | 44 | #endif 45 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Lib/Packet.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/Lib/Packet.lib -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Lib/wpcap.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/Lib/wpcap.lib -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Lib/x64/Packet.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/Lib/x64/Packet.lib -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/Lib/x64/wpcap.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/Lib/x64/wpcap.lib -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/WinPcap_docs.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/bc_s.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/bdwn.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/closed.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/doxygen.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/dump.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/dump.gif -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/encoding.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/encoding.gif -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/ftv2blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/ftv2blank.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/ftv2doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/ftv2doc.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/ftv2folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/ftv2folderclosed.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/ftv2folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/ftv2folderopen.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/ftv2lastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/ftv2lastnode.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/ftv2link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/ftv2link.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/ftv2mlastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/ftv2mlastnode.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/ftv2mnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/ftv2mnode.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/ftv2node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/ftv2node.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/ftv2plastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/ftv2plastnode.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/ftv2pnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/ftv2pnode.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/ftv2splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/ftv2splitbar.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/ftv2vertline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/ftv2vertline.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/group__NPF.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/group__NPF.html -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/group__remote__auth__methods.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WinPcap: Authentication methods supported by the RPCAP protocol 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
WinPcap 21 |  4.1.3 22 |
23 |
27 |
28 | 29 | 30 | 39 |
40 |
41 |
42 |
Authentication methods supported by the RPCAP protocol
43 |
44 |
45 |
46 | 47 |
48 |

49 | documentation. Copyright (c) 2002-2005 Politecnico di Torino. Copyright (c) 2005-2010 50 | CACE Technologies. Copyright (c) 2010-2013 51 | Riverbed Technology. All rights reserved.

52 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/group__remote__open__flags.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WinPcap: Flags defined in the pcap_open() function 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
WinPcap 21 |  4.1.3 22 |
23 |
27 |
28 | 29 | 30 | 39 |
40 |
41 |
42 |
Flags defined in the pcap_open() function
43 |
44 |
45 |
46 | 47 |
48 |

49 | documentation. Copyright (c) 2002-2005 Politecnico di Torino. Copyright (c) 2005-2010 50 | CACE Technologies. Copyright (c) 2010-2013 51 | Riverbed Technology. All rights reserved.

52 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/group__remote__pri__func.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WinPcap: Internal Functions 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
WinPcap 21 |  4.1.3 22 |
23 |
27 |
28 | 29 | 30 | 39 |
40 |
41 |
42 |
Internal Functions
43 |
44 |
45 |
46 | 47 |
48 |

49 | documentation. Copyright (c) 2002-2005 Politecnico di Torino. Copyright (c) 2005-2010 50 | CACE Technologies. Copyright (c) 2010-2013 51 | Riverbed Technology. All rights reserved.

52 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/group__remote__samp__methods.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WinPcap: Sampling methods defined in the pcap_setsampling() function 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
WinPcap 21 |  4.1.3 22 |
23 |
27 |
28 | 29 | 30 | 39 |
40 |
41 |
42 |
Sampling methods defined in the pcap_setsampling() function
43 |
44 |
45 |
46 | 47 |
48 |

49 | documentation. Copyright (c) 2002-2005 Politecnico di Torino. Copyright (c) 2005-2010 50 | CACE Technologies. Copyright (c) 2010-2013 51 | Riverbed Technology. All rights reserved.

52 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/group__remote__source__ID.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WinPcap: Identifiers related to the new source syntax 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
WinPcap 21 |  4.1.3 22 |
23 |
27 |
28 | 29 | 30 | 39 |
40 |
41 |
42 |
Identifiers related to the new source syntax
43 |
44 |
45 |
46 | 47 |
48 |

49 | documentation. Copyright (c) 2002-2005 Politecnico di Torino. Copyright (c) 2005-2010 50 | CACE Technologies. Copyright (c) 2010-2013 51 | Riverbed Technology. All rights reserved.

52 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/group__remote__source__string.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WinPcap: Strings related to the new source syntax 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
WinPcap 21 |  4.1.3 22 |
23 |
27 |
28 | 29 | 30 | 39 |
40 |
41 |
42 |
Strings related to the new source syntax
43 |
44 |
45 |
46 | 47 |
48 |

49 | documentation. Copyright (c) 2002-2005 Politecnico di Torino. Copyright (c) 2005-2010 50 | CACE Technologies. Copyright (c) 2010-2013 51 | Riverbed Technology. All rights reserved.

52 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/group__remotefunc.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WinPcap: Exported Functions 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
WinPcap 21 |  4.1.3 22 |
23 |
27 |
28 | 29 | 30 | 39 |
40 |
41 |
42 |
Exported Functions
43 |
44 |
45 |
46 | 47 |
48 |

49 | documentation. Copyright (c) 2002-2005 Politecnico di Torino. Copyright (c) 2005-2010 50 | CACE Technologies. Copyright (c) 2010-2013 51 | Riverbed Technology. All rights reserved.

52 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/incs_2pcap_8h_source.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/incs_2pcap_8h_source.html -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/internals-arch.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/internals-arch.gif -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/main_8txt.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WinPcap: main.txt File Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
WinPcap 21 |  4.1.3 22 |
23 |
27 |
28 | 29 | 30 | 39 | 45 |
46 |
47 |
48 |
main.txt File Reference
49 |
50 |
51 |
52 | 53 |
54 |

55 | documentation. Copyright (c) 2002-2005 Politecnico di Torino. Copyright (c) 2005-2010 56 | CACE Technologies. Copyright (c) 2010-2013 57 | Riverbed Technology. All rights reserved.

58 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/nav_f.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/nav_g.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/nav_h.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/npf-dump.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/npf-dump.gif -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/npf-ndis.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/npf-ndis.gif -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/npf-npf.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/npf-npf.gif -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/open.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/stats.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/stats.gif -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/stats_wpcap.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/stats_wpcap.gif -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/structpcap__addr.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/structpcap__addr.html -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/sync_off.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/sync_on.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/tab_a.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/tab_b.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/tab_h.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/tab_s.png -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/tabs.css: -------------------------------------------------------------------------------- 1 | .tabs, .tabs2, .tabs3 { 2 | background-image: url('tab_b.png'); 3 | width: 100%; 4 | z-index: 101; 5 | font-size: 13px; 6 | font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; 7 | } 8 | 9 | .tabs2 { 10 | font-size: 10px; 11 | } 12 | .tabs3 { 13 | font-size: 9px; 14 | } 15 | 16 | .tablist { 17 | margin: 0; 18 | padding: 0; 19 | display: table; 20 | } 21 | 22 | .tablist li { 23 | float: left; 24 | display: table-cell; 25 | background-image: url('tab_b.png'); 26 | line-height: 36px; 27 | list-style: none; 28 | } 29 | 30 | .tablist a { 31 | display: block; 32 | padding: 0 20px; 33 | font-weight: bold; 34 | background-image:url('tab_s.png'); 35 | background-repeat:no-repeat; 36 | background-position:right; 37 | color: #283A5D; 38 | text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); 39 | text-decoration: none; 40 | outline: none; 41 | } 42 | 43 | .tabs3 .tablist a { 44 | padding: 0 10px; 45 | } 46 | 47 | .tablist a:hover { 48 | background-image: url('tab_h.png'); 49 | background-repeat:repeat-x; 50 | color: #fff; 51 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 52 | text-decoration: none; 53 | } 54 | 55 | .tablist li.current a { 56 | background-image: url('tab_a.png'); 57 | background-repeat:repeat-x; 58 | color: #fff; 59 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 60 | } 61 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/winpcap.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/winpcap.gif -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/winpcap_small.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/WinPcap-413-173-b4/docs/html/winpcap_small.gif -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/wpcap__tut1_8txt.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WinPcap: wpcap_tut1.txt File Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
WinPcap 21 |  4.1.3 22 |
23 |
27 |
28 | 29 | 30 | 39 | 45 |
46 |
47 |
48 |
wpcap_tut1.txt File Reference
49 |
50 |
51 |
52 | 53 |
54 |

55 | documentation. Copyright (c) 2002-2005 Politecnico di Torino. Copyright (c) 2005-2010 56 | CACE Technologies. Copyright (c) 2010-2013 57 | Riverbed Technology. All rights reserved.

58 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/wpcap__tut2_8txt.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WinPcap: wpcap_tut2.txt File Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
WinPcap 21 |  4.1.3 22 |
23 |
27 |
28 | 29 | 30 | 39 | 45 |
46 |
47 |
48 |
wpcap_tut2.txt File Reference
49 |
50 |
51 |
52 | 53 |
54 |

55 | documentation. Copyright (c) 2002-2005 Politecnico di Torino. Copyright (c) 2005-2010 56 | CACE Technologies. Copyright (c) 2010-2013 57 | Riverbed Technology. All rights reserved.

58 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/wpcap__tut3_8txt.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WinPcap: wpcap_tut3.txt File Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
WinPcap 21 |  4.1.3 22 |
23 |
27 |
28 | 29 | 30 | 39 | 45 |
46 |
47 |
48 |
wpcap_tut3.txt File Reference
49 |
50 |
51 |
52 | 53 |
54 |

55 | documentation. Copyright (c) 2002-2005 Politecnico di Torino. Copyright (c) 2005-2010 56 | CACE Technologies. Copyright (c) 2010-2013 57 | Riverbed Technology. All rights reserved.

58 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/wpcap__tut4_8txt.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WinPcap: wpcap_tut4.txt File Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
WinPcap 21 |  4.1.3 22 |
23 |
27 |
28 | 29 | 30 | 39 | 45 |
46 |
47 |
48 |
wpcap_tut4.txt File Reference
49 |
50 |
51 |
52 | 53 |
54 |

55 | documentation. Copyright (c) 2002-2005 Politecnico di Torino. Copyright (c) 2005-2010 56 | CACE Technologies. Copyright (c) 2010-2013 57 | Riverbed Technology. All rights reserved.

58 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/wpcap__tut5_8txt.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WinPcap: wpcap_tut5.txt File Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
WinPcap 21 |  4.1.3 22 |
23 |
27 |
28 | 29 | 30 | 39 | 45 |
46 |
47 |
48 |
wpcap_tut5.txt File Reference
49 |
50 |
51 |
52 | 53 |
54 |

55 | documentation. Copyright (c) 2002-2005 Politecnico di Torino. Copyright (c) 2005-2010 56 | CACE Technologies. Copyright (c) 2010-2013 57 | Riverbed Technology. All rights reserved.

58 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/wpcap__tut6_8txt.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WinPcap: wpcap_tut6.txt File Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
WinPcap 21 |  4.1.3 22 |
23 |
27 |
28 | 29 | 30 | 39 | 45 |
46 |
47 |
48 |
wpcap_tut6.txt File Reference
49 |
50 |
51 |
52 | 53 |
54 |

55 | documentation. Copyright (c) 2002-2005 Politecnico di Torino. Copyright (c) 2005-2010 56 | CACE Technologies. Copyright (c) 2010-2013 57 | Riverbed Technology. All rights reserved.

58 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/wpcap__tut7_8txt.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WinPcap: wpcap_tut7.txt File Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
WinPcap 21 |  4.1.3 22 |
23 |
27 |
28 | 29 | 30 | 39 | 45 |
46 |
47 |
48 |
wpcap_tut7.txt File Reference
49 |
50 |
51 |
52 | 53 |
54 |

55 | documentation. Copyright (c) 2002-2005 Politecnico di Torino. Copyright (c) 2005-2010 56 | CACE Technologies. Copyright (c) 2010-2013 57 | Riverbed Technology. All rights reserved.

58 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/wpcap__tut8_8txt.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WinPcap: wpcap_tut8.txt File Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
WinPcap 21 |  4.1.3 22 |
23 |
27 |
28 | 29 | 30 | 39 | 45 |
46 |
47 |
48 |
wpcap_tut8.txt File Reference
49 |
50 |
51 |
52 | 53 |
54 |

55 | documentation. Copyright (c) 2002-2005 Politecnico di Torino. Copyright (c) 2005-2010 56 | CACE Technologies. Copyright (c) 2010-2013 57 | Riverbed Technology. All rights reserved.

58 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/wpcap__tut9_8txt.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WinPcap: wpcap_tut9.txt File Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
WinPcap 21 |  4.1.3 22 |
23 |
27 |
28 | 29 | 30 | 39 | 45 |
46 |
47 |
48 |
wpcap_tut9.txt File Reference
49 |
50 |
51 |
52 | 53 |
54 |

55 | documentation. Copyright (c) 2002-2005 Politecnico di Torino. Copyright (c) 2005-2010 56 | CACE Technologies. Copyright (c) 2010-2013 57 | Riverbed Technology. All rights reserved.

58 | -------------------------------------------------------------------------------- /libs/WinPcap-413-173-b4/docs/html/wpcap__tut_8txt.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WinPcap: wpcap_tut.txt File Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
WinPcap 21 |  4.1.3 22 |
23 |
27 |
28 | 29 | 30 | 39 | 45 |
46 |
47 |
48 |
wpcap_tut.txt File Reference
49 |
50 |
51 |
52 | 53 |
54 |

55 | documentation. Copyright (c) 2002-2005 Politecnico di Torino. Copyright (c) 2005-2010 56 | CACE Technologies. Copyright (c) 2010-2013 57 | Riverbed Technology. All rights reserved.

58 | -------------------------------------------------------------------------------- /libs/openssl-1.0.2g-i386-win32.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.0.2g-i386-win32.zip -------------------------------------------------------------------------------- /libs/openssl-1.0.2g-win32/HashInfo.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.0.2g-win32/HashInfo.txt -------------------------------------------------------------------------------- /libs/openssl-1.0.2g-win32/libeay32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.0.2g-win32/libeay32.dll -------------------------------------------------------------------------------- /libs/openssl-1.0.2g-win32/ssleay32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.0.2g-win32/ssleay32.dll -------------------------------------------------------------------------------- /libs/openssl-1.0.2g-win64/HashInfo.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.0.2g-win64/HashInfo.txt -------------------------------------------------------------------------------- /libs/openssl-1.0.2g-win64/libeay32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.0.2g-win64/libeay32.dll -------------------------------------------------------------------------------- /libs/openssl-1.0.2g-win64/ssleay32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.0.2g-win64/ssleay32.dll -------------------------------------------------------------------------------- /libs/openssl-1.0.2g-x64_86-win64.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.0.2g-x64_86-win64.zip -------------------------------------------------------------------------------- /libs/openssl-1.0.2j-i386-win32.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.0.2j-i386-win32.zip -------------------------------------------------------------------------------- /libs/openssl-1.0.2j-win32/HashInfo.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.0.2j-win32/HashInfo.txt -------------------------------------------------------------------------------- /libs/openssl-1.0.2j-win32/libeay32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.0.2j-win32/libeay32.dll -------------------------------------------------------------------------------- /libs/openssl-1.0.2j-win32/ssleay32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.0.2j-win32/ssleay32.dll -------------------------------------------------------------------------------- /libs/openssl-1.0.2j-win64/HashInfo.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.0.2j-win64/HashInfo.txt -------------------------------------------------------------------------------- /libs/openssl-1.0.2j-win64/libeay32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.0.2j-win64/libeay32.dll -------------------------------------------------------------------------------- /libs/openssl-1.0.2j-win64/ssleay32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.0.2j-win64/ssleay32.dll -------------------------------------------------------------------------------- /libs/openssl-1.0.2j-x64_86-win64.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.0.2j-x64_86-win64.zip -------------------------------------------------------------------------------- /libs/openssl-1.1.1b-win32/libcrypto-1_1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.1.1b-win32/libcrypto-1_1.dll -------------------------------------------------------------------------------- /libs/openssl-1.1.1b-win32/libssl-1_1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.1.1b-win32/libssl-1_1.dll -------------------------------------------------------------------------------- /libs/openssl-1.1.1b-win32/readme.txt: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------- 2 | OpenSSL v1.1.1b Win32 for ICS, http://www.overbyte.be 3 | ----------------------------------------------------------------------- 4 | 5 | Built with: 6 | Visual Studio Build Tools 2017 7 | The Netwide Assembler (NASM) v2.11.05 8 | Strawberry Perl v5.20.3.1 9 | 10 | Build Commands: 11 | perl configure VC-WIN32-rtt 12 | nmake 13 | 14 | Custom configuration file (.conf file at the "Configurations" folder): 15 | 16 | ## -*- mode: perl; -*- 17 | ## Personal configuration targets 18 | 19 | %targets = ( 20 | "VC-WIN32-rtt" => { 21 | inherit_from => [ "VC-WIN32" ], 22 | cflags => sub{my $v=pop; $v=~ s/\/MD/\/MT/ig; return $v}, 23 | lflags => "/nologo /release", 24 | }, 25 | "VC-WIN64A-rtt" => { 26 | inherit_from => [ "VC-WIN64A" ], 27 | cflags => sub{my $v=pop; $v=~ s/\/MD/\/MT/ig; return $v}, 28 | lflags => "/nologo /release", 29 | }, 30 | ); -------------------------------------------------------------------------------- /libs/openssl-1.1.1b-win64/libcrypto-1_1-x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.1.1b-win64/libcrypto-1_1-x64.dll -------------------------------------------------------------------------------- /libs/openssl-1.1.1b-win64/libssl-1_1-x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.1.1b-win64/libssl-1_1-x64.dll -------------------------------------------------------------------------------- /libs/openssl-1.1.1b-win64/readme.txt: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------- 2 | OpenSSL v1.1.1b Win64 for ICS, http://www.overbyte.be 3 | ----------------------------------------------------------------------- 4 | 5 | Built with: 6 | Visual Studio Build Tools 2017 7 | The Netwide Assembler (NASM) v2.11.05 8 | Strawberry Perl v5.20.3.1 9 | 10 | Build Commands: 11 | perl configure VC-WIN64A-rtt 12 | nmake 13 | 14 | Custom configuration file (.conf file at the "Configurations" folder): 15 | 16 | ## -*- mode: perl; -*- 17 | ## Personal configuration targets 18 | 19 | %targets = ( 20 | "VC-WIN32-rtt" => { 21 | inherit_from => [ "VC-WIN32" ], 22 | cflags => sub{my $v=pop; $v=~ s/\/MD/\/MT/ig; return $v}, 23 | lflags => "/nologo /release", 24 | }, 25 | "VC-WIN64A-rtt" => { 26 | inherit_from => [ "VC-WIN64A" ], 27 | cflags => sub{my $v=pop; $v=~ s/\/MD/\/MT/ig; return $v}, 28 | lflags => "/nologo /release", 29 | }, 30 | ); -------------------------------------------------------------------------------- /libs/openssl-1.1.1g-win32/libcrypto-1_1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.1.1g-win32/libcrypto-1_1.dll -------------------------------------------------------------------------------- /libs/openssl-1.1.1g-win32/libssl-1_1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.1.1g-win32/libssl-1_1.dll -------------------------------------------------------------------------------- /libs/openssl-1.1.1g-win32/readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.1.1g-win32/readme.txt -------------------------------------------------------------------------------- /libs/openssl-1.1.1g-win64/libcrypto-1_1-x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.1.1g-win64/libcrypto-1_1-x64.dll -------------------------------------------------------------------------------- /libs/openssl-1.1.1g-win64/libssl-1_1-x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.1.1g-win64/libssl-1_1-x64.dll -------------------------------------------------------------------------------- /libs/openssl-1.1.1g-win64/readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/libs/openssl-1.1.1g-win64/readme.txt -------------------------------------------------------------------------------- /res/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/Logo.png -------------------------------------------------------------------------------- /res/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/add.png -------------------------------------------------------------------------------- /res/add_multi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/add_multi.png -------------------------------------------------------------------------------- /res/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/back.png -------------------------------------------------------------------------------- /res/beep.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/beep.wav -------------------------------------------------------------------------------- /res/camera.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/camera.wav -------------------------------------------------------------------------------- /res/capture_playback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/capture_playback.png -------------------------------------------------------------------------------- /res/clear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/clear.png -------------------------------------------------------------------------------- /res/forward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/forward.png -------------------------------------------------------------------------------- /res/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/icon.icns -------------------------------------------------------------------------------- /res/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/icon.ico -------------------------------------------------------------------------------- /res/icon_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/icon_16.png -------------------------------------------------------------------------------- /res/icon_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/icon_24.png -------------------------------------------------------------------------------- /res/icon_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/icon_256.png -------------------------------------------------------------------------------- /res/icon_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/icon_32.png -------------------------------------------------------------------------------- /res/icon_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/icon_48.png -------------------------------------------------------------------------------- /res/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/info.png -------------------------------------------------------------------------------- /res/ledgreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/ledgreen.png -------------------------------------------------------------------------------- /res/ledred.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/ledred.png -------------------------------------------------------------------------------- /res/mac_install_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/mac_install_bg.png -------------------------------------------------------------------------------- /res/multi_universe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/multi_universe.png -------------------------------------------------------------------------------- /res/pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/pause.png -------------------------------------------------------------------------------- /res/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/play.png -------------------------------------------------------------------------------- /res/record.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/record.png -------------------------------------------------------------------------------- /res/remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/remove.png -------------------------------------------------------------------------------- /res/resources.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | scope.png 4 | transmit.png 5 | settings.png 6 | snapshot.png 7 | univ_view.png 8 | info.png 9 | pause.png 10 | play.png 11 | record.png 12 | back.png 13 | forward.png 14 | multi_universe.png 15 | add.png 16 | remove.png 17 | add_multi.png 18 | spin_up.png 19 | spin_down.png 20 | spin_down_dark.png 21 | spin_up_dark.png 22 | capture_playback.png 23 | clear.png 24 | ledgreen.png 25 | ledred.png 26 | 27 | 28 | Logo.png 29 | 30 | 31 | camera.wav 32 | beep.wav 33 | 34 | 35 | -------------------------------------------------------------------------------- /res/sacnview.rc: -------------------------------------------------------------------------------- 1 | IDI_ICON1 ICON DISCARDABLE "icon.ico" -------------------------------------------------------------------------------- /res/scope.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/scope.png -------------------------------------------------------------------------------- /res/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/settings.png -------------------------------------------------------------------------------- /res/snapshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/snapshot.png -------------------------------------------------------------------------------- /res/spin_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/spin_down.png -------------------------------------------------------------------------------- /res/spin_down_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/spin_down_dark.png -------------------------------------------------------------------------------- /res/spin_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/spin_up.png -------------------------------------------------------------------------------- /res/spin_up_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/spin_up_dark.png -------------------------------------------------------------------------------- /res/transmit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/transmit.png -------------------------------------------------------------------------------- /res/univ_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/res/univ_view.png -------------------------------------------------------------------------------- /src/aboutdialog.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016 Tom Steer 2 | // http://www.tomsteer.net 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | 16 | #ifndef ABOUTDIALOG_H 17 | #define ABOUTDIALOG_H 18 | 19 | #include "streamingacn.h" 20 | #include "sacnlistener.h" 21 | #include 22 | #include 23 | #include 24 | 25 | namespace Ui { 26 | class aboutDialog; 27 | } 28 | 29 | class aboutDialog : public QDialog 30 | { 31 | Q_OBJECT 32 | 33 | public: 34 | explicit aboutDialog(QWidget *parent = Q_NULLPTR); 35 | ~aboutDialog(); 36 | 37 | private slots: 38 | void updateDisplay(); 39 | 40 | void on_twDiag_expanded(const QModelIndex &index); 41 | void on_twDiag_collapsed(const QModelIndex &index); 42 | 43 | void on_aboutDialog_finished(int result); 44 | 45 | private: 46 | Ui::aboutDialog *ui; 47 | QTimer *m_displayTimer; 48 | 49 | struct universeDetails 50 | { 51 | universeDetails() {} 52 | 53 | sACNManager::tListener listener; 54 | QTreeWidgetItem* treeUniverse; 55 | QTreeWidgetItem* treeMergesPerSecond; 56 | QTreeWidgetItem* treeMergesBindStatus; 57 | QTreeWidgetItem* treeMergesBindStatusUnicast; 58 | QTreeWidgetItem* treeMergesBindStatusMulticast; 59 | }; 60 | QList m_universeDetails; 61 | 62 | void resizeDiagColumn(); 63 | void bindStatus(QTreeWidgetItem *treeItem, sACNRxSocket::eBindStatus bindStatus); 64 | }; 65 | 66 | #endif // ABOUTDIALOG_H 67 | -------------------------------------------------------------------------------- /src/addmultidialog.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016 Tom Steer 2 | // http://www.tomsteer.net 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | 16 | #ifndef ADDMULTIDIALOG_H 17 | #define ADDMULTIDIALOG_H 18 | 19 | #include 20 | #include "sacneffectengine.h" 21 | 22 | namespace Ui { 23 | class AddMultiDialog; 24 | } 25 | 26 | class AddMultiDialog : public QDialog 27 | { 28 | Q_OBJECT 29 | 30 | public: 31 | explicit AddMultiDialog(QWidget *parent = 0); 32 | ~AddMultiDialog(); 33 | 34 | int startUniverse(); 35 | int universeCount(); 36 | sACNEffectEngine::FxMode mode(); 37 | int startAddress(); 38 | int endAddress(); 39 | bool startNow(); 40 | int level(); 41 | qreal rate(); 42 | int priority(); 43 | 44 | private slots: 45 | void rangeChanged(); 46 | void on_cbEffect_currentIndexChanged(int index); 47 | void on_slLevel_sliderMoved(int value); 48 | void on_slLevel_valueChanged(int value); 49 | void on_dlFadeRate_valueChanged(int value); 50 | private: 51 | Ui::AddMultiDialog *ui; 52 | void setupFxControl(); 53 | 54 | }; 55 | 56 | #endif // ADDMULTIDIALOG_H 57 | -------------------------------------------------------------------------------- /src/bigdisplay.h: -------------------------------------------------------------------------------- 1 | #ifndef BIGDISPLAY_H 2 | #define BIGDISPLAY_H 3 | 4 | #include 5 | #include "consts.h" 6 | 7 | namespace Ui { 8 | class BigDisplay; 9 | } 10 | 11 | class BigDisplay : public QWidget 12 | { 13 | Q_OBJECT 14 | 15 | public: 16 | explicit BigDisplay(int universe, quint16 address, QWidget *parent = 0); 17 | ~BigDisplay(); 18 | 19 | private: 20 | Ui::BigDisplay *ui; 21 | 22 | enum tabModes 23 | { 24 | tabModes_bit8, 25 | tabModes_bit16, 26 | tabModes_rgb 27 | }; 28 | 29 | private slots: 30 | void dataReady(int universe, quint16 address, QPointF data); 31 | 32 | void on_tabWidget_currentChanged(int index); 33 | 34 | private: 35 | void displayLevel(); 36 | 37 | quint32 m_level; 38 | }; 39 | 40 | #endif // BIGDISPLAY_H 41 | -------------------------------------------------------------------------------- /src/configureperchanpriodlg.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016 Tom Steer 2 | // http://www.tomsteer.net 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | 16 | 17 | #ifndef CONFIGUREPERCHANPRIODLG_H 18 | #define CONFIGUREPERCHANPRIODLG_H 19 | 20 | #include 21 | #include 22 | #include "consts.h" 23 | 24 | namespace Ui { 25 | class ConfigurePerChanPrioDlg; 26 | } 27 | 28 | class ConfigurePerChanPrioDlg : public QDialog 29 | { 30 | Q_OBJECT 31 | 32 | public: 33 | explicit ConfigurePerChanPrioDlg(QWidget *parent = Q_NULLPTR); 34 | ~ConfigurePerChanPrioDlg(); 35 | void setData(quint8 *data); 36 | quint8 *data(); 37 | public slots: 38 | void on_btnSetAll_pressed(); 39 | void on_btnSet_pressed(); 40 | void on_widget_selectedCellsChanged(QList cells); 41 | void on_btnPresetRec_toggled(bool on); 42 | void presetButtonPressed(); 43 | private: 44 | Ui::ConfigurePerChanPrioDlg *ui; 45 | quint8 m_data[MAX_DMX_ADDRESS]; 46 | QList m_presets; 47 | QListm_presetButtons; 48 | QList m_selectedCells; 49 | }; 50 | 51 | #endif // CONFIGUREPERCHANPRIODLG_H 52 | -------------------------------------------------------------------------------- /src/crash_handler.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | namespace Breakpad { 5 | class CrashHandlerPrivate; 6 | class CrashHandler 7 | { 8 | public: 9 | static CrashHandler* instance(); 10 | void Init(const QString& reportPath); 11 | 12 | void setReportCrashesToSystem(bool report); 13 | bool writeMinidump(); 14 | 15 | private: 16 | CrashHandler(); 17 | ~CrashHandler(); 18 | Q_DISABLE_COPY(CrashHandler) 19 | CrashHandlerPrivate* d; 20 | }; 21 | } 22 | -------------------------------------------------------------------------------- /src/crash_test.cpp: -------------------------------------------------------------------------------- 1 | #include "crash_test.h" 2 | #include "ui_crash_test.h" 3 | 4 | #include 5 | 6 | CrashTest::CrashTest(QWidget *parent) : 7 | QDialog(parent), 8 | ui(new Ui::CrashTest) 9 | { 10 | ui->setupUi(this); 11 | 12 | m_signalMapper = new QSignalMapper(this); 13 | 14 | for (uint n = 0; n < numOfCrashMethods; n++) { 15 | QPushButton *b = new QPushButton(this); 16 | b->setText(QString("Method %1").arg(n)); 17 | connect(b, SIGNAL(clicked()), m_signalMapper, SLOT(map())); 18 | m_signalMapper->setMapping(b, n); 19 | 20 | ui->verticalLayout->addWidget(b); 21 | } 22 | 23 | connect(m_signalMapper, SIGNAL(mapped(int)), 24 | this, SLOT(crashMethod(int))); 25 | } 26 | 27 | CrashTest::~CrashTest() 28 | { 29 | delete ui; 30 | } 31 | 32 | void CrashTest::crashMethod(const int id) 33 | { 34 | switch (id) { 35 | default: 36 | case 0: 37 | { 38 | abort(); 39 | break; 40 | } 41 | case 1: 42 | { 43 | void* jump = nullptr; 44 | ((void(*)())jump)(); 45 | break; 46 | } 47 | case 2: 48 | { 49 | *((int*) 0) = 0; 50 | } 51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /src/crash_test.h: -------------------------------------------------------------------------------- 1 | #ifndef CRASHTEST_H 2 | #define CRASHTEST_H 3 | 4 | #include 5 | #include 6 | 7 | namespace Ui { 8 | class CrashTest; 9 | } 10 | 11 | class CrashTest : public QDialog 12 | { 13 | Q_OBJECT 14 | 15 | public: 16 | explicit CrashTest(QWidget *parent = 0); 17 | ~CrashTest(); 18 | 19 | private slots: 20 | void crashMethod(const int id); 21 | 22 | private: 23 | const uint numOfCrashMethods = 3; 24 | 25 | Ui::CrashTest *ui; 26 | QSignalMapper *m_signalMapper; 27 | }; 28 | 29 | #endif // CRASHTEST_H 30 | -------------------------------------------------------------------------------- /src/flickerfinderinfoform.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2016 Tom Steer 2 | // http://www.tomsteer.net 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | 16 | #include "flickerfinderinfoform.h" 17 | #include "ui_flickerfinderinfoform.h" 18 | #include "consts.h" 19 | #include "preferences.h" 20 | 21 | FlickerFinderInfoForm::FlickerFinderInfoForm(QWidget *parent) : 22 | QDialog(parent), 23 | ui(new Ui::FlickerFinderInfoForm) 24 | { 25 | ui->setupUi(this); 26 | QPalette p = ui->wLower->palette(); 27 | p.setColor(QPalette::Background, flickerLowerColor); 28 | ui->wLower->setPalette(p); 29 | p.setColor(QPalette::Background, flickerHigherColor); 30 | ui->wHigher->setPalette(p); 31 | p.setColor(QPalette::Background, flickerChangedColor); 32 | ui->wChange->setPalette(p); 33 | } 34 | 35 | FlickerFinderInfoForm::~FlickerFinderInfoForm() 36 | { 37 | if(ui->cbDontShowAgain->isChecked()) 38 | { 39 | Preferences::getInstance()->setFlickerFinderShowInfo(false); 40 | } 41 | delete ui; 42 | } 43 | -------------------------------------------------------------------------------- /src/flickerfinderinfoform.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016 Tom Steer 2 | // http://www.tomsteer.net 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | 16 | #ifndef FLICKERFINDERINFOFORM_H 17 | #define FLICKERFINDERINFOFORM_H 18 | 19 | #include 20 | 21 | namespace Ui { 22 | class FlickerFinderInfoForm; 23 | } 24 | 25 | class FlickerFinderInfoForm : public QDialog 26 | { 27 | Q_OBJECT 28 | 29 | public: 30 | explicit FlickerFinderInfoForm(QWidget *parent = 0); 31 | ~FlickerFinderInfoForm(); 32 | 33 | private: 34 | Ui::FlickerFinderInfoForm *ui; 35 | }; 36 | 37 | #endif // FLICKERFINDERINFOFORM_H 38 | -------------------------------------------------------------------------------- /src/grideditwidget.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2016 Tom Steer 2 | // http://www.tomsteer.net 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | 16 | #include "grideditwidget.h" 17 | #include 18 | #include "consts.h" 19 | 20 | GridEditWidget::GridEditWidget(QWidget *parent) : GridWidget(parent) 21 | { 22 | setMultiSelect(true); 23 | } 24 | 25 | 26 | void GridEditWidget::wheelEvent(QWheelEvent *event) 27 | { 28 | int numDegrees = event->delta() / 8; 29 | int numSteps = numDegrees / 15; 30 | 31 | QList> level_list; 32 | 33 | QListIteratori(selectedCells()); 34 | while(i.hasNext()) 35 | { 36 | int cell = i.next(); 37 | int value = cellValue(cell).toInt(); 38 | value += numSteps; 39 | 40 | if(!(valuem_maximum)) 41 | { 42 | setCellValue(cell, QString::number(value)); 43 | level_list << QPair(cell, value); 44 | } 45 | } 46 | 47 | if(level_list.count()>0) 48 | emit levelsSet(level_list); 49 | 50 | update(); 51 | 52 | event->accept(); 53 | } 54 | 55 | void GridEditWidget::setAllValues(int value) 56 | { 57 | for(int i=0; i<512; i++) 58 | { 59 | setCellValue(i, QString::number(value)); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /src/grideditwidget.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016 Tom Steer 2 | // http://www.tomsteer.net 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | 16 | #ifndef GRIDEDITWIDGET_H 17 | #define GRIDEDITWIDGET_H 18 | 19 | #include 20 | #include 21 | #include "gridwidget.h" 22 | 23 | /** 24 | * @brief The GridEditWidget class provides a widget, based on the grid widget, which allows 25 | * editing of per channel priority values 26 | */ 27 | class GridEditWidget : public GridWidget 28 | { 29 | Q_OBJECT 30 | public: 31 | GridEditWidget(QWidget *parent = Q_NULLPTR); 32 | void setMinimum(int min) {m_minimum = min;} 33 | void setMaximum(int max) {m_maximum = max;} 34 | void setAllValues(int value); 35 | signals: 36 | void levelsSet(QList> setLevels); 37 | protected: 38 | virtual void wheelEvent(QWheelEvent *event); 39 | private: 40 | int m_minimum = 0; 41 | int m_maximum = 100; 42 | }; 43 | 44 | #endif // GRIDEDITWIDGET_H 45 | -------------------------------------------------------------------------------- /src/ipc.h: -------------------------------------------------------------------------------- 1 | #ifndef IPC_H 2 | #define IPC_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include "mdimainwindow.h" 8 | #include "sacnlistener.h" 9 | #include "sacnsender.h" 10 | 11 | class IPC : public QObject 12 | { 13 | Q_OBJECT 14 | public: 15 | IPC(MDIMainWindow *w, QObject *parent = 0); 16 | virtual ~IPC(); 17 | bool isListening() {return m_pipe->isListening();} 18 | 19 | private: 20 | QLocalServer *m_pipe; 21 | MDIMainWindow *main_window; 22 | 23 | private slots: 24 | void newConnection(); 25 | void foreground(); 26 | }; 27 | 28 | class IPC_Client : public QObject 29 | { 30 | Q_OBJECT 31 | public: 32 | IPC_Client(QLocalSocket *client, QObject *parent = 0); 33 | virtual ~IPC_Client(); 34 | 35 | private: 36 | QLocalSocket *m_client; 37 | QSharedPointerm_listener; 38 | sACNSentUniverse *m_sender; 39 | 40 | private slots: 41 | void readyRead(); 42 | void levelsChanged(); 43 | 44 | signals: 45 | void foreground(); 46 | }; 47 | 48 | #endif // IPC_H 49 | -------------------------------------------------------------------------------- /src/logwindow.h: -------------------------------------------------------------------------------- 1 | #ifndef LOGWINDOW_H 2 | #define LOGWINDOW_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include "sacnlistener.h" 8 | 9 | namespace Ui { 10 | class LogWindow; 11 | } 12 | 13 | class LogWindow : public QWidget 14 | { 15 | Q_OBJECT 16 | 17 | public: 18 | explicit LogWindow(int universe, QWidget *parent = 0); 19 | ~LogWindow(); 20 | 21 | private slots: 22 | void onLevelsChanged(); 23 | void onSourceFound(sACNSource *source); 24 | void onSourceResume(sACNSource *source); 25 | void onSourceLost(sACNSource *source); 26 | 27 | void on_btnCopyClipboard_pressed(); 28 | void on_btnClear_pressed(); 29 | 30 | void on_cbLevels_clicked(bool checked); 31 | void on_cbSources_clicked(bool checked); 32 | 33 | void on_cbDisplayFormat_currentIndexChanged(int index); 34 | 35 | void on_cbLogToFile_clicked(bool checked); 36 | void on_pbLogToFile_clicked(); 37 | 38 | private: 39 | Ui::LogWindow *ui; 40 | 41 | sACNManager::tListener m_listener; 42 | 43 | QFile *m_file; 44 | QTextStream *m_fileStream; 45 | void closeLogFile(); 46 | bool openLogFile(); 47 | 48 | void appendLogLine(QString &line); 49 | 50 | struct sTimeFormat { 51 | QString friendlyName; 52 | QString strFormat; 53 | Qt::DateFormat dateFormat; 54 | }; 55 | QList lTimeFormat = { 56 | #ifndef TARGET_WINXP 57 | {tr("ISO8601 w/Ms"), QString(), Qt::ISODateWithMs}, 58 | #endif 59 | {tr("ISO8601"), QString(), Qt::ISODate}, 60 | {tr("US 12Hour (sACNView 1)"), "M/d/yyyy h:mm:ss AP", (Qt::DateFormat)NULL}, 61 | {tr("EU 12Hour"), "d/M/yyyy h:mm:ss AP", (Qt::DateFormat)NULL}, 62 | }; 63 | 64 | struct sDisplayFormat { 65 | QString friendlyName; 66 | QString format; 67 | QChar seperator; 68 | bool onlyChangedAllowed; 69 | }; 70 | QList lDisplayFormat = { 71 | {tr("[Level1],[Levelx]...[Level512]"), "{LEVEL}", QChar(','), false}, 72 | {tr("[Chan]@[Level]"), "{CHAN}@{LEVEL} ", QChar(' '), true}, 73 | }; 74 | 75 | enum eLevelFormat { 76 | levelFormatByte, 77 | levelFormatPercent, 78 | levelFormatHex 79 | }; 80 | }; 81 | 82 | 83 | 84 | #endif // LOGWINDOW_H 85 | -------------------------------------------------------------------------------- /src/mdimainwindow.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016 Tom Steer 2 | // http://www.tomsteer.net 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | 16 | #ifndef MDIMAINWINDOW_H 17 | #define MDIMAINWINDOW_H 18 | 19 | #include 20 | 21 | class sACNUniverseListModel; 22 | class sACNDiscoveredSourceListModel; 23 | class sACNSourceListProxy; 24 | 25 | namespace Ui { 26 | class MDIMainWindow; 27 | } 28 | 29 | class MDIMainWindow : public QMainWindow 30 | { 31 | Q_OBJECT 32 | 33 | public: 34 | explicit MDIMainWindow(QWidget *parent = 0); 35 | ~MDIMainWindow(); 36 | 37 | void showWidgetAsMdiWindow(QWidget *w); 38 | 39 | void saveMdiWindows(); 40 | void restoreMdiWindows(); 41 | protected slots: 42 | void on_actionScopeView_triggered(bool checked); 43 | void on_actionRecieve_triggered(bool checked); 44 | void on_actionTranmsit_triggered(bool checked); 45 | void on_actionSettings_triggered(bool checked); 46 | void on_actionSnapshot_triggered(bool checked); 47 | void on_btnUnivListBack_pressed(); 48 | void on_btnUnivListForward_pressed(); 49 | void on_sbUniverseList_valueChanged(int value); 50 | void universeDoubleClick(const QModelIndex &index); 51 | void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end); 52 | private slots: 53 | void on_actionAbout_triggered(bool checked); 54 | 55 | void on_actionMultiUniverse_triggered(); 56 | 57 | void on_actionPCAPPlayback_triggered(); 58 | 59 | void on_pbFewer_clicked(); 60 | 61 | void on_pbMore_clicked(); 62 | private: 63 | Ui::MDIMainWindow *ui; 64 | sACNUniverseListModel *m_model; 65 | sACNDiscoveredSourceListModel *m_modelDiscovered; 66 | sACNSourceListProxy *m_proxy; 67 | int getSelectedUniverse(); 68 | }; 69 | 70 | #endif // MDIMAINWINDOW_H 71 | -------------------------------------------------------------------------------- /src/nicselectdialog.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016 Tom Steer 2 | // http://www.tomsteer.net 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | 16 | #ifndef NICSELECTDIALOG_H 17 | #define NICSELECTDIALOG_H 18 | 19 | #include 20 | #include 21 | #include 22 | 23 | namespace Ui { 24 | class NICSelectDialog; 25 | } 26 | 27 | class NICSelectDialog : public QDialog 28 | { 29 | Q_OBJECT 30 | 31 | public: 32 | explicit NICSelectDialog(QWidget *parent = 0); 33 | ~NICSelectDialog(); 34 | QNetworkInterface getSelectedInterface() const {return m_selectedInterface;}; 35 | protected slots: 36 | void on_listWidget_itemSelectionChanged(); 37 | void on_btnSelect_pressed(); 38 | void on_btnWorkOffline_pressed(); 39 | private: 40 | Ui::NICSelectDialog *ui; 41 | QNetworkInterface m_selectedInterface; 42 | QList m_interfaceList; 43 | }; 44 | 45 | #endif // NICSELECTDIALOG_H 46 | -------------------------------------------------------------------------------- /src/pcapplayback.h: -------------------------------------------------------------------------------- 1 | #ifndef PCAPPLAYBACK_H 2 | #define PCAPPLAYBACK_H 3 | 4 | #include 5 | #include "pcapplaybacksender.h" 6 | 7 | namespace Ui { 8 | class PcapPlayback; 9 | } 10 | 11 | class PcapPlayback : public QWidget 12 | { 13 | Q_OBJECT 14 | 15 | public: 16 | explicit PcapPlayback(QWidget *parent = 0); 17 | ~PcapPlayback(); 18 | 19 | private slots: 20 | void on_btnOpen_clicked(); 21 | void on_btnStartPause_clicked(); 22 | void increaseProgress(); 23 | void playbackFinished(); 24 | void playbackClosed(); 25 | void playbackThreadClosed(); 26 | void error(QString errorMessage); 27 | 28 | void on_btnReset_clicked(); 29 | 30 | private: 31 | Ui::PcapPlayback *ui; 32 | 33 | pcapplaybacksender *sender; 34 | 35 | void openThread(); 36 | void closeThread(); 37 | void updateUIBtns(bool clear = false); 38 | }; 39 | 40 | #endif // PCAPPLAYBACK_H 41 | -------------------------------------------------------------------------------- /src/pcapplaybacksender.h: -------------------------------------------------------------------------------- 1 | #ifndef PCAPPLAYBACKSENDER_H 2 | #define PCAPPLAYBACKSENDER_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include "sacn/sacnsocket.h" 11 | 12 | #define sacn_packet_filter "ip and udp and dst port 5568 and dst net 239.255.0.0 mask 255.255.6.0" 13 | 14 | class pcapplaybacksender : public QThread 15 | { 16 | Q_OBJECT 17 | 18 | public: 19 | explicit pcapplaybacksender(QString FileName); 20 | ~pcapplaybacksender(); 21 | 22 | bool isRunning(); 23 | 24 | private: 25 | bool openFile(); 26 | void closeFile(); 27 | void run(); 28 | 29 | signals: 30 | void error(QString errorMessage); 31 | void packetSent(); 32 | void sendingFinished(); 33 | void sendingClosed(); 34 | 35 | public slots: 36 | void play(); 37 | void pause(); 38 | void reset(); 39 | void quit(); 40 | 41 | private: 42 | QThread *m_thread; 43 | QString m_filename; 44 | 45 | typedef struct pcap pcap_t; 46 | pcap_t *m_pcap_in; 47 | QMutex m_pcap_in_Mutex; 48 | pcap_t *m_pcap_out; 49 | QMutex m_pcap_out_Mutex; 50 | bool m_running; 51 | bool m_shutdown; 52 | QTime m_pktLastTime; 53 | 54 | typedef struct pcap_pkthdr pcap_pkthdr_t; 55 | QNetworkDatagram createDatagram(pcap_t *hpcap, pcap_pkthdr_t *pkt_header, const unsigned char *pkt_data); 56 | }; 57 | 58 | #endif // PCAPPLAYBACKSENDER_H 59 | -------------------------------------------------------------------------------- /src/preferencesdialog.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016 Tom Steer 2 | // http://www.tomsteer.net 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | 16 | #ifndef PREFERENCESDIALOG_H 17 | #define PREFERENCESDIALOG_H 18 | 19 | #include "translations/translationdialog.h" 20 | #include 21 | #include 22 | 23 | class QRadioButton; 24 | 25 | 26 | namespace Ui { 27 | class PreferencesDialog; 28 | } 29 | 30 | class PreferencesDialog : public QDialog 31 | { 32 | Q_OBJECT 33 | 34 | public: 35 | explicit PreferencesDialog(QWidget *parent = 0); 36 | ~PreferencesDialog(); 37 | 38 | private slots: 39 | void on_buttonBox_accepted(); 40 | 41 | private: 42 | Ui::PreferencesDialog *ui; 43 | QList m_interfaceList; 44 | QList m_interfaceButtons; 45 | TranslationDialog* m_translation; 46 | 47 | }; 48 | 49 | #endif // PREFERENCESDIALOG_H 50 | -------------------------------------------------------------------------------- /src/qt56.h: -------------------------------------------------------------------------------- 1 | #ifndef QT56_H 2 | #define QT56_H 3 | 4 | #if (QT_VERSION < QT_VERSION_CHECK(5, 8, 0)) 5 | /* 6 | * Q_FALLTHROUGH() 7 | * This function was introduced in Qt 5.8. 8 | * 9 | * /src/corelib/global/qcompilerdetection.h 10 | */ 11 | #if defined(__cplusplus) 12 | #if QT_HAS_CPP_ATTRIBUTE(clang::fallthrough) 13 | # define Q_FALLTHROUGH() [[clang::fallthrough]] 14 | #elif QT_HAS_CPP_ATTRIBUTE(gnu::fallthrough) 15 | # define Q_FALLTHROUGH() [[gnu::fallthrough]] 16 | #elif QT_HAS_CPP_ATTRIBUTE(fallthrough) 17 | # define Q_FALLTHROUGH() [[fallthrough]] 18 | #endif 19 | #endif 20 | #ifndef Q_FALLTHROUGH 21 | # if (defined(Q_CC_GNU) && Q_CC_GNU >= 700) && !defined(Q_CC_INTEL) 22 | # define Q_FALLTHROUGH() __attribute__((fallthrough)) 23 | # else 24 | # define Q_FALLTHROUGH() (void)0 25 | #endif 26 | #endif 27 | #endif 28 | 29 | 30 | #endif // QT56_H 31 | -------------------------------------------------------------------------------- /src/sacn/ACNShare/tock.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2015 Electronic Theatre Controls, http://www.etcconnect.com 2 | // 3 | // Permission is hereby granted, free of charge, to any person obtaining a copy 4 | // of this software and associated documentation files (the "Software"), to deal 5 | // in the Software without restriction, including without limitation the rights 6 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | // copies of the Software, and to permit persons to whom the Software is 8 | // furnished to do so, subject to the following conditions: 9 | // 10 | // The above copyright notice and this permission notice shall be included in 11 | // all copies or substantial portions of the Software. 12 | // 13 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | // THE SOFTWARE. 20 | 21 | /* tock.cpp 22 | 23 | Implementation of the platforms-specific part of the tock library. 24 | */ 25 | 26 | #include "tock.h" 27 | #include 28 | 29 | static QElapsedTimer timer; 30 | 31 | //Initializes the tock layer. Only needs to be called once per application 32 | bool Tock_StartLib() 33 | { 34 | timer.start(); 35 | return true; 36 | } 37 | 38 | //Gets a tock representing the current time 39 | tock Tock_GetTock() 40 | { 41 | return tock(timer.elapsed()); 42 | } 43 | 44 | //Shuts down the tock layer. 45 | void Tock_StopLib() 46 | { 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/sacn/StreamCli/StreamCli.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 9.00 2 | # Visual Studio 2005 3 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StreamCli", "StreamCli.vcproj", "{16CA4F54-D3B5-4870-8AC4-A831EE1E8157}" 4 | EndProject 5 | Global 6 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 7 | Debug|Win32 = Debug|Win32 8 | Release|Win32 = Release|Win32 9 | EndGlobalSection 10 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 11 | {16CA4F54-D3B5-4870-8AC4-A831EE1E8157}.Debug|Win32.ActiveCfg = Debug|Win32 12 | {16CA4F54-D3B5-4870-8AC4-A831EE1E8157}.Debug|Win32.Build.0 = Debug|Win32 13 | {16CA4F54-D3B5-4870-8AC4-A831EE1E8157}.Release|Win32.ActiveCfg = Release|Win32 14 | {16CA4F54-D3B5-4870-8AC4-A831EE1E8157}.Release|Win32.Build.0 = Release|Win32 15 | EndGlobalSection 16 | GlobalSection(SolutionProperties) = preSolution 17 | HideSolutionNode = FALSE 18 | EndGlobalSection 19 | GlobalSection(DPCodeReviewSolutionGUID) = preSolution 20 | DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000} 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /src/sacn/StreamSrv/StreamSrv.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/sacn/StreamSrv/StreamSrv.cpp -------------------------------------------------------------------------------- /src/sacn/StreamSrv/StreamSrv.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 9.00 2 | # Visual Studio 2005 3 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StreamSrv", "StreamSrv.vcproj", "{88FB3D90-DD44-4B9F-A25F-20109431561C}" 4 | EndProject 5 | Global 6 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 7 | Debug|Win32 = Debug|Win32 8 | Release|Win32 = Release|Win32 9 | EndGlobalSection 10 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 11 | {88FB3D90-DD44-4B9F-A25F-20109431561C}.Debug|Win32.ActiveCfg = Debug|Win32 12 | {88FB3D90-DD44-4B9F-A25F-20109431561C}.Debug|Win32.Build.0 = Debug|Win32 13 | {88FB3D90-DD44-4B9F-A25F-20109431561C}.Release|Win32.ActiveCfg = Release|Win32 14 | {88FB3D90-DD44-4B9F-A25F-20109431561C}.Release|Win32.Build.0 = Release|Win32 15 | EndGlobalSection 16 | GlobalSection(SolutionProperties) = preSolution 17 | HideSolutionNode = FALSE 18 | EndGlobalSection 19 | GlobalSection(DPCodeReviewSolutionGUID) = preSolution 20 | DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000} 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /src/sacn/e1_11.h: -------------------------------------------------------------------------------- 1 | #ifndef E1_11_H 2 | #define E1_11_H 3 | 4 | namespace E1_11 { 5 | static const unsigned int MAX_REFRESH_RATE_HZ = 44; // E1.11:2008 Table 6 6 | } 7 | 8 | #endif // E1_11_H 9 | -------------------------------------------------------------------------------- /src/sacn/firewallcheck.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include "firewallcheck.h" 6 | #include "streamcommon.h" 7 | 8 | #ifdef Q_OS_WIN 9 | #include "netfw.h" 10 | #include "Objbase.h" 11 | #endif 12 | 13 | FwCheck::FwCheck_t FwCheck::isFWBlocked(QHostAddress ip) 14 | { 15 | FwCheck_t ret; 16 | 17 | #ifdef Q_OS_WIN 18 | qDebug() << "Firewall Starting Check"; 19 | HRESULT hr = S_OK; 20 | INetFwMgr* fwMgr = NULL; 21 | 22 | VARIANT allowed; 23 | VARIANT restricted; 24 | QString filename = QDir::toNativeSeparators(QCoreApplication::applicationFilePath()); 25 | BSTR bstrFilename = SysAllocString(reinterpret_cast(filename.utf16())); 26 | QString ipaddress = ip.toString(); 27 | BSTR bstrIpaddress = SysAllocString(reinterpret_cast(ipaddress.utf16())); 28 | 29 | // Create instance of firewall manager 30 | hr = CoCreateInstance( 31 | __uuidof(NetFwMgr), 32 | NULL, 33 | CLSCTX_INPROC_SERVER, 34 | __uuidof(INetFwMgr), 35 | (void**)&fwMgr 36 | ); 37 | if (!FAILED(hr)) 38 | { 39 | // Check if port is blocked 40 | hr = fwMgr->IsPortAllowed( 41 | bstrFilename, 42 | NET_FW_IP_VERSION_V4, 43 | STREAM_IP_PORT, 44 | bstrIpaddress, 45 | NET_FW_IP_PROTOCOL_UDP, 46 | &allowed, 47 | &restricted 48 | ); 49 | 50 | ret.allowed = (VARIANT_TRUE == allowed.boolVal); 51 | qDebug() << "Firewall - Allowed:" << ret.allowed; 52 | ret.restricted = (VARIANT_TRUE == restricted.boolVal); 53 | qDebug() << "Firewall - Restricted:" << ret.restricted; 54 | 55 | fwMgr->Release(); 56 | } else { 57 | qDebug() << "Firewall Check Failed" << hr; 58 | } 59 | 60 | // Clean up (SysFreeString is null pointer safe) 61 | SysFreeString(bstrFilename); 62 | SysFreeString(bstrIpaddress); 63 | 64 | ret.allowed = (VARIANT_TRUE == allowed.boolVal); 65 | ret.restricted = (VARIANT_TRUE == restricted.boolVal); 66 | #else //Q_WS_WIN 67 | Q_UNUSED(ip); 68 | #endif 69 | 70 | return ret; 71 | } 72 | -------------------------------------------------------------------------------- /src/sacn/firewallcheck.h: -------------------------------------------------------------------------------- 1 | #ifndef FIREWALLCHECK_H 2 | #define FIREWALLCHECK_H 3 | 4 | namespace FwCheck { 5 | struct FwCheck_t { 6 | bool allowed = true; 7 | bool restricted = false; 8 | }; 9 | FwCheck_t isFWBlocked(QHostAddress ip); 10 | } 11 | 12 | #endif // FIREWALLCHECK_H 13 | -------------------------------------------------------------------------------- /src/sacn/fpscounter.cpp: -------------------------------------------------------------------------------- 1 | #include "fpscounter.h" 2 | #include 3 | 4 | #define updateInterval 1000 5 | 6 | fpsCounter::fpsCounter(QObject *parent) : QObject(parent), 7 | currentFps(0), 8 | previousFps(0), 9 | lastTime(0) 10 | { 11 | QTimer *timer = new QTimer(this); 12 | connect(timer, SIGNAL(timeout()), this, SLOT(updateFPS())); 13 | timer->start(updateInterval); 14 | } 15 | 16 | void fpsCounter::updateFPS() 17 | { 18 | QMutexLocker queueLocker(&queueMutex); 19 | 20 | // We need at least two frame to calculate interval 21 | if (frameTimes.count() < 2) 22 | { 23 | // No frames, or very old single frame 24 | if ( 25 | (frameTimes.count() == 0) || 26 | ((frameTimes.count() == 1) && (QDateTime::currentMSecsSinceEpoch() > (frameTimes.back() + (updateInterval * 2)))) 27 | ) 28 | { 29 | previousFps = currentFps; 30 | currentFps = 0; 31 | } 32 | } else { 33 | if (lastTime == 0) 34 | lastTime = frameTimes.takeFirst(); 35 | 36 | // Create list of all intervals 37 | QList intervals; 38 | while (frameTimes.count()) 39 | { 40 | auto time = frameTimes.takeFirst(); 41 | 42 | if (time > lastTime) 43 | { 44 | intervals << time - lastTime; 45 | lastTime = time; 46 | } 47 | } 48 | 49 | if (intervals.isEmpty()) return; 50 | 51 | // Calculate average of the intervals 52 | time_t intervalTotal = 0; 53 | for (auto interval: intervals) 54 | { 55 | intervalTotal += interval; 56 | } 57 | auto intervalAvg = intervalTotal / intervals.count(); 58 | 59 | // Calculate the current FPS 60 | previousFps = currentFps; 61 | currentFps = 1000 / static_cast(intervalAvg); 62 | } 63 | 64 | // Flag if the FPS has changed 65 | newFps = ((previousFps < currentFps) | (previousFps > currentFps)); 66 | } 67 | 68 | void fpsCounter::newFrame() 69 | { 70 | QMutexLocker queueLocker(&queueMutex); 71 | frameTimes.append(QDateTime::currentMSecsSinceEpoch()); 72 | } 73 | -------------------------------------------------------------------------------- /src/sacn/fpscounter.h: -------------------------------------------------------------------------------- 1 | #ifndef FPSCounter_H 2 | #define FPSCounter_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | class fpsCounter : public QObject 10 | { 11 | Q_OBJECT 12 | public: 13 | explicit fpsCounter(QObject *parent = nullptr); 14 | 15 | // Return current FPS 16 | float FPS() { newFps = false; return currentFps;} 17 | 18 | // Returns true if FPS has changed since last checked 19 | bool isNewFPS() { return newFps; } 20 | 21 | // Log new frame 22 | void newFrame(); 23 | 24 | private slots: 25 | void updateFPS(); 26 | 27 | private: 28 | typedef time_t quint64; 29 | 30 | float currentFps; 31 | float previousFps; 32 | bool newFps; 33 | 34 | QMutex queueMutex; 35 | QList frameTimes; 36 | time_t lastTime; 37 | }; 38 | 39 | #endif // FPSCounter_H 40 | -------------------------------------------------------------------------------- /src/sacn/sacnsocket.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016 Tom Steer 2 | // http://www.tomsteer.net 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | 16 | #ifndef SACNSOCKET_H 17 | #define SACNSOCKET_H 18 | 19 | #include 20 | #include 21 | #include 22 | 23 | class sACNRxSocket : public QUdpSocket 24 | { 25 | Q_OBJECT 26 | public: 27 | sACNRxSocket(QNetworkInterface iface, QObject *parent = Q_NULLPTR); 28 | 29 | enum eBindStatus 30 | { 31 | BIND_UNKNOWN, 32 | BIND_OK, 33 | BIND_FAILED 34 | }; 35 | struct sBindStatus 36 | { 37 | sBindStatus() { 38 | unicast = BIND_UNKNOWN; 39 | multicast = BIND_UNKNOWN; 40 | } 41 | eBindStatus unicast; 42 | eBindStatus multicast; 43 | }; 44 | 45 | sBindStatus bind(quint16 universe); 46 | int getBoundUniverse() { return m_universe; } 47 | QNetworkInterface getBoundInterface() { return m_interface; } 48 | 49 | private: 50 | QNetworkInterface m_interface; 51 | int m_universe; 52 | }; 53 | 54 | class sACNTxSocket : public QUdpSocket 55 | { 56 | Q_OBJECT 57 | public: 58 | sACNTxSocket(QNetworkInterface iface, QObject *parent = Q_NULLPTR); 59 | 60 | bool bind(); 61 | 62 | //qint64 writeDatagram(const QNetworkDatagram &datagram); 63 | qint64 writeDatagram(const char *data, qint64 len, const QHostAddress &host, quint16 port); 64 | inline qint64 writeDatagram(const QByteArray &datagram, const QHostAddress &host, quint16 port) 65 | { return writeDatagram(datagram.constData(), datagram.size(), host, port); } 66 | 67 | private: 68 | QNetworkInterface m_interface; 69 | }; 70 | 71 | 72 | #endif // SACNSOCKET_H 73 | -------------------------------------------------------------------------------- /src/scopewindow.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016 Tom Steer 2 | // http://www.tomsteer.net 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | 16 | #ifndef SCOPEWINDOW_H 17 | #define SCOPEWINDOW_H 18 | 19 | class ScopeChannel; 20 | class QTableWidgetItem; 21 | 22 | #include 23 | #include 24 | #include 25 | #include "streamingacn.h" 26 | #include "consts.h" 27 | 28 | namespace Ui { 29 | class ScopeWindow; 30 | } 31 | 32 | class ScopeWindow : public QWidget 33 | { 34 | Q_OBJECT 35 | 36 | public: 37 | explicit ScopeWindow(int universe = MIN_SACN_UNIVERSE, QWidget *parent = 0); 38 | ~ScopeWindow(); 39 | private slots: 40 | void timebaseChanged(int value); 41 | void on_btnStart_pressed(); 42 | void on_btnStop_pressed(); 43 | void on_btnAddChannel_pressed(); 44 | void on_btnRemoveChannel_pressed(); 45 | void on_tableWidget_cellDoubleClicked(int row, int col); 46 | void on_tableWidget_itemChanged(QTableWidgetItem * item); 47 | void on_buttonGroup_buttonPressed(int id); 48 | void on_cbTriggerMode_currentIndexChanged(int index); 49 | void on_sbTriggerLevel_valueChanged(int value); 50 | void on_scopeWidget_stopped(); 51 | private: 52 | Ui::ScopeWindow *ui; 53 | QList m_channels; 54 | QButtonGroup *m_radioGroup; 55 | QHash m_universes; 56 | 57 | enum { 58 | COL_UNIVERSE, 59 | COL_ADDRESS, 60 | COL_ENABLED, 61 | COL_COLOUR, 62 | COL_TRIGGER, 63 | COL_16BIT 64 | }; 65 | int m_defaultUniverse; 66 | }; 67 | 68 | #endif // SCOPEWINDOW_H 69 | -------------------------------------------------------------------------------- /src/snapshot.h: -------------------------------------------------------------------------------- 1 | #ifndef SNAPSHOT_H 2 | #define SNAPSHOT_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include "streamingacn.h" 8 | #include "clssnapshot.h" 9 | #include "consts.h" 10 | 11 | namespace Ui { 12 | class Snapshot; 13 | } 14 | 15 | class Snapshot : public QWidget 16 | { 17 | Q_OBJECT 18 | public: 19 | explicit Snapshot(int firstUniverse = MIN_SACN_UNIVERSE, QWidget *parent = Q_NULLPTR); 20 | ~Snapshot(); 21 | 22 | enum state 23 | { 24 | stSetup, 25 | stCountDown5, 26 | stCountDown4, 27 | stCountDown3, 28 | stCountDown2, 29 | stCountDown1, 30 | stReadyPlayback, 31 | stPlayback, 32 | stReplay 33 | }; 34 | 35 | class PlaybackBtn : public QToolButton 36 | { 37 | public: 38 | PlaybackBtn(QWidget *parent = Q_NULLPTR); 39 | 40 | void setPlay(); 41 | void setPause(); 42 | }; 43 | 44 | class InfoLbl : public QLabel 45 | { 46 | public: 47 | InfoLbl(QWidget *parent = Q_NULLPTR); 48 | 49 | void setText(Snapshot::state state); 50 | virtual void setText(const QString &t) { QLabel::setText(t); } 51 | }; 52 | 53 | protected slots: 54 | void counterTick(); 55 | void on_btnSnapshot_pressed(); 56 | void on_btnPlay_pressed(); 57 | void btnPlay_update(bool updateState = false); 58 | void on_btnAddRow_clicked(); 59 | void on_btnRemoveRow_clicked(); 60 | void senderTimedOut(); 61 | void senderStopped(); 62 | void senderStarted(); 63 | void updateMatchIcon(); 64 | protected: 65 | virtual void resizeEvent(QResizeEvent *event); 66 | 67 | private slots: 68 | void on_tableWidget_itemSelectionChanged(); 69 | 70 | private: 71 | enum { 72 | COL_BUTTON, 73 | COL_UNIVERSE, 74 | COL_PRIORITY, 75 | COLCOUNT 76 | }; 77 | 78 | void setState(state s); 79 | void setState(int s) { setState(static_cast(s)); } 80 | void saveSnapshot(); 81 | void playSnapshot(); 82 | void stopSnapshot(); 83 | Ui::Snapshot *ui; 84 | QTimer *m_countdown; 85 | state m_state; 86 | QSound *m_camera, *m_beep; 87 | QList m_snapshots; 88 | quint16 m_firstUniverse; 89 | CID m_cid; 90 | }; 91 | 92 | 93 | 94 | #endif // SNAPSHOT_H 95 | -------------------------------------------------------------------------------- /src/theme/README.txt: -------------------------------------------------------------------------------- 1 | Dark Theme from https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle -------------------------------------------------------------------------------- /src/theme/darkstyle.h: -------------------------------------------------------------------------------- 1 | /* 2 | ############################################################################### 3 | # # 4 | # The MIT License # 5 | # # 6 | # Copyright (C) 2017 by Juergen Skrotzky (JorgenVikingGod@gmail.com) # 7 | # >> https://github.com/Jorgen-VikingGod # 8 | # # 9 | # Sources: https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle # 10 | # # 11 | ############################################################################### 12 | */ 13 | 14 | #ifndef _DarkStyle_HPP 15 | #define _DarkStyle_HPP 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | class DarkStyle : public QProxyStyle 24 | { 25 | Q_OBJECT 26 | public: 27 | DarkStyle(); 28 | explicit DarkStyle(QStyle *style); 29 | 30 | QStyle *baseStyle() const; 31 | 32 | void polish(QPalette &palette) override; 33 | void polish(QApplication *app) override; 34 | virtual void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = Q_NULLPTR) const override; 35 | virtual void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = Q_NULLPTR) const override; 36 | 37 | private: 38 | QStyle *styleBase(QStyle *style=Q_NULLPTR) const; 39 | }; 40 | 41 | #endif // _DarkStyle_HPP 42 | 43 | //***************************************************************************** 44 | // END OF FILE 45 | //***************************************************************************** 46 | -------------------------------------------------------------------------------- /src/theme/darkstyle.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | darkstyle/darkstyle.qss 4 | darkstyle/icon_close.png 5 | darkstyle/icon_undock.png 6 | darkstyle/icon_branch_closed.png 7 | darkstyle/icon_branch_end.png 8 | darkstyle/icon_branch_more.png 9 | darkstyle/icon_branch_open.png 10 | darkstyle/icon_vline.png 11 | darkstyle/icon_checkbox_checked.png 12 | darkstyle/icon_checkbox_indeterminate.png 13 | darkstyle/icon_checkbox_unchecked.png 14 | darkstyle/icon_checkbox_checked_pressed.png 15 | darkstyle/icon_checkbox_indeterminate_pressed.png 16 | darkstyle/icon_checkbox_unchecked_pressed.png 17 | darkstyle/icon_checkbox_checked_disabled.png 18 | darkstyle/icon_checkbox_indeterminate_disabled.png 19 | darkstyle/icon_checkbox_unchecked_disabled.png 20 | darkstyle/icon_radiobutton_checked.png 21 | darkstyle/icon_radiobutton_unchecked.png 22 | darkstyle/icon_radiobutton_checked_pressed.png 23 | darkstyle/icon_radiobutton_unchecked_pressed.png 24 | darkstyle/icon_radiobutton_checked_disabled.png 25 | darkstyle/icon_radiobutton_unchecked_disabled.png 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_branch_closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_branch_closed.png -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_branch_end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_branch_end.png -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_branch_more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_branch_more.png -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_branch_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_branch_open.png -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_checkbox_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_checkbox_checked.png -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_checkbox_checked_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_checkbox_checked_disabled.png -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_checkbox_checked_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_checkbox_checked_pressed.png -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_checkbox_indeterminate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_checkbox_indeterminate.png -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_checkbox_indeterminate_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_checkbox_indeterminate_disabled.png -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_checkbox_indeterminate_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_checkbox_indeterminate_pressed.png -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_checkbox_unchecked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_checkbox_unchecked.png -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_checkbox_unchecked_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_checkbox_unchecked_disabled.png -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_checkbox_unchecked_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_checkbox_unchecked_pressed.png -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_close.png -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_radiobutton_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_radiobutton_checked.png -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_radiobutton_checked_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_radiobutton_checked_disabled.png -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_radiobutton_checked_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_radiobutton_checked_pressed.png -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_radiobutton_unchecked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_radiobutton_unchecked.png -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_radiobutton_unchecked_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_radiobutton_unchecked_disabled.png -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_radiobutton_unchecked_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_radiobutton_unchecked_pressed.png -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_undock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_undock.png -------------------------------------------------------------------------------- /src/theme/darkstyle/icon_vline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docsteer/sacnview/601f474120920308c6396c25f7455f48623579a3/src/theme/darkstyle/icon_vline.png -------------------------------------------------------------------------------- /src/universedisplay.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016 Tom Steer 2 | // http://www.tomsteer.net 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | 16 | #ifndef UNIVERSEDISPLAY_H 17 | #define UNIVERSEDISPLAY_H 18 | 19 | #include "sacnlistener.h" 20 | #include "gridwidget.h" 21 | #include "consts.h" 22 | 23 | class UniverseDisplay : public GridWidget 24 | { 25 | Q_OBJECT 26 | public: 27 | explicit UniverseDisplay(QWidget *parent = 0); 28 | virtual ~UniverseDisplay() {} 29 | bool flickerFinder() const { return m_flickerFinder; } 30 | 31 | Q_PROPERTY(bool showChannelPriority READ showChannelPriority WRITE setShowChannelPriority NOTIFY showChannelPriorityChanged) 32 | bool showChannelPriority() const { return m_showChannelPriority; } 33 | Q_SLOT void setShowChannelPriority(bool enable); 34 | Q_SIGNAL void showChannelPriorityChanged(bool enable); 35 | 36 | public slots: 37 | void setUniverse(int universe); 38 | void levelsChanged(); 39 | void pause(); 40 | void setFlickerFinder(bool on); 41 | private: 42 | sACNMergedSourceList m_sources; 43 | sACNManager::tListener m_listener; 44 | quint8 m_flickerFinderLevels[MAX_DMX_ADDRESS]; 45 | bool m_flickerFinderHasChanged[MAX_DMX_ADDRESS]; 46 | bool m_flickerFinder; 47 | bool m_showChannelPriority; 48 | }; 49 | 50 | #endif // UNIVERSEDISPLAY_H 51 | -------------------------------------------------------------------------------- /src/versioncheck.h: -------------------------------------------------------------------------------- 1 | #ifndef VERSIONCHECK_H 2 | #define VERSIONCHECK_H 3 | 4 | #include "consts.h" 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | 21 | namespace Ui { 22 | class NewVersionDialog; 23 | } 24 | 25 | class NewVersionDialog : public QDialog 26 | { 27 | Q_OBJECT 28 | public: 29 | NewVersionDialog(QWidget *parent = Q_NULLPTR); 30 | 31 | void setNewVersionNumber(const QString &version); 32 | void setNewVersionInfo(const QString &info); 33 | void setDownloadUrl(const QString &url); 34 | private slots: 35 | void on_btnInstall_pressed(); 36 | void on_btnExitInstall_pressed(); 37 | void on_btnCancelDl_pressed(); 38 | void progress(qint64 bytes, qint64 total); 39 | void finished(); 40 | void dataReadyRead(); 41 | private: 42 | Ui::NewVersionDialog *ui; 43 | QString m_dlUrl; 44 | QString m_newVersion; 45 | QNetworkAccessManager *m_manager; 46 | QNetworkReply *m_reply; 47 | QFile m_dlFile; 48 | QString m_storagePath; 49 | void doDownload(const QUrl &url); 50 | }; 51 | 52 | class VersionCheck : public QObject 53 | { 54 | Q_OBJECT 55 | public: 56 | VersionCheck(QObject *parent = 0); 57 | 58 | public slots: 59 | void replyFinished (QNetworkReply *reply); 60 | 61 | private: 62 | QNetworkAccessManager *manager; 63 | }; 64 | 65 | #endif // VERSIONCHECK_H 66 | -------------------------------------------------------------------------------- /src/widgets/monitorspinbox.h: -------------------------------------------------------------------------------- 1 | #ifndef MONITORSPINBOX_H 2 | #define MONITORSPINBOX_H 3 | 4 | #include 5 | #include "sacnlistener.h" 6 | 7 | class monitorspinbox : public QAbstractSpinBox 8 | { 9 | Q_OBJECT 10 | public: 11 | monitorspinbox(QWidget* parent = nullptr); 12 | 13 | quint16 address() const { return m_address; } 14 | void setAddress(int universe, quint16 address); 15 | void setAddress(quint16 address) { setAddress(m_listener->universe(), address); } 16 | 17 | int universe() const { return m_listener->universe(); } 18 | 19 | quint8 level() const { 20 | auto level = m_listener->mergedLevels().at(m_address).level; 21 | return level > 0 ? level : 0; 22 | } 23 | 24 | signals: 25 | void dataReady(int universe, quint16 address, QPointF data); 26 | 27 | protected: 28 | void stepBy(int steps); 29 | QAbstractSpinBox::StepEnabled stepEnabled() const {return StepUpEnabled | StepDownEnabled; } 30 | 31 | QValidator::State validate(QString &input, int &pos) const; 32 | QValidator::State validate(const quint16 value) const; 33 | 34 | quint16 addressFromText(const QString &text) const; 35 | QString textFromAddress(quint16 address) const; 36 | 37 | private: 38 | sACNManager::tListener m_listener; 39 | void setupListener(int universe); 40 | quint16 m_address; 41 | }; 42 | 43 | #endif // MONITORSPINBOX_H 44 | -------------------------------------------------------------------------------- /src/xpwarning.h: -------------------------------------------------------------------------------- 1 | #ifndef XPWARNING_H 2 | #define XPWARNING_H 3 | 4 | #include 5 | 6 | /* 7 | * Returns true if Windows XP 8 | */ 9 | bool XPOnlyFeature() { 10 | #ifdef TARGET_WINXP 11 | QMessageBox msgBox; 12 | msgBox.setStandardButtons(QMessageBox::Ok); 13 | msgBox.setIcon(QMessageBox::Information); 14 | msgBox.setText(QObject::tr("This binary is intended for Windows XP only\r\nThis feature is unavailable")); 15 | msgBox.exec(); 16 | return true; 17 | #else 18 | return false; 19 | #endif 20 | } 21 | 22 | #endif // XPWARNING_H 23 | -------------------------------------------------------------------------------- /translations.pri: -------------------------------------------------------------------------------- 1 | # Supported languages 2 | ## **Add new .qm to translations.qrc** 3 | ## **Update translations.cpp** 4 | LANGUAGES = en fr de es 5 | 6 | TRANSLATIONS_DIR = $${_PRO_FILE_PWD_}/translations 7 | SOURCES += \ 8 | $${TRANSLATIONS_DIR}/translationdialog.cpp \ 9 | $${TRANSLATIONS_DIR}/translations.cpp 10 | HEADERS += \ 11 | $${TRANSLATIONS_DIR}/translationdialog.h \ 12 | $${TRANSLATIONS_DIR}/translations.h 13 | FORMS += \ 14 | $${TRANSLATIONS_DIR}/translationdialog.ui 15 | RESOURCES += \ 16 | $${TRANSLATIONS_DIR}/translations.qrc 17 | 18 | # Create/update .ts Files 19 | qtPrepareTool(LUPDATE, lupdate) 20 | command = $$LUPDATE -no-obsolete $$shell_quote($$_PRO_FILE_) 21 | system($$command)|error("Failed to run: $$command") 22 | 23 | ## https://appbus.wordpress.com/2016/04/28/howto-translations-i18n/ 24 | # Available translations 25 | defineReplace(prependAll) { 26 | for(a,$$1):result += $$2$${a}$$3 27 | return($$result) 28 | } 29 | tsroot = $$join(TARGET,,,.ts) 30 | tstarget = $$join(TARGET,,,_) 31 | TRANSLATIONS = $${TRANSLATIONS_DIR}/$$tsroot 32 | TRANSLATIONS += $$prependAll(LANGUAGES, $${TRANSLATIONS_DIR}/$$tstarget, .ts) 33 | 34 | # run LRELEASE to generate the qm files 35 | qtPrepareTool(LRELEASE, lrelease) 36 | for(tsfile, TRANSLATIONS) { 37 | command = $$LRELEASE $$shell_quote($$tsfile) 38 | system($$command)|error("Failed to run: $$command") 39 | } 40 | -------------------------------------------------------------------------------- /translations/translationdialog.h: -------------------------------------------------------------------------------- 1 | #ifndef TRANSLATIONDIALOG_H 2 | #define TRANSLATIONDIALOG_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | 11 | namespace Ui { 12 | class TranslationDialog; 13 | } 14 | 15 | class TranslationDialog : public QDialog 16 | { 17 | Q_OBJECT 18 | 19 | public: 20 | /* Translation dialog/handler 21 | * 22 | * @arg CurrentFilename (Optional) - Fullpath to current tranlation file 23 | * @arg VBoxLayout (Optional) - VBoxLayout to fill with checkboxes, if nullptr a dialog is created and displayed 24 | */ 25 | explicit TranslationDialog(const QLocale DefaultLocale, QVBoxLayout *VBoxLayout = Q_NULLPTR, QWidget *parent = Q_NULLPTR); 26 | ~TranslationDialog(); 27 | 28 | /* exec() 29 | * 30 | * Display dialog, if multiple options avaliabe, and block until close 31 | */ 32 | virtual int exec(); 33 | 34 | public: 35 | bool LoadTranslation(const QLocale locale); 36 | bool LoadTranslation() { 37 | return LoadTranslation(m_locate); 38 | } 39 | 40 | QLocale GetSelectedLocale(); 41 | 42 | private slots: 43 | void on_buttonBox_accepted(); 44 | 45 | private: 46 | Ui::TranslationDialog *ui; 47 | QButtonGroup *m_bgTranslations; 48 | QLocale m_locate; 49 | }; 50 | 51 | #endif // TRANSLATIONDIALOG_H 52 | -------------------------------------------------------------------------------- /translations/translationdialog.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | TranslationDialog 4 | 5 | 6 | Qt::ApplicationModal 7 | 8 | 9 | 10 | 0 11 | 0 12 | 200 13 | 98 14 | 15 | 16 | 17 | 18 | 0 19 | 0 20 | 21 | 22 | 23 | Qt::NoContextMenu 24 | 25 | 26 | sACNView 27 | 28 | 29 | 30 | :/Logo.png:/Logo.png 31 | 32 | 33 | 34 | 35 | 36 | 37 | 0 38 | 0 39 | 40 | 41 | 42 | Select Language 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 0 52 | 0 53 | 54 | 55 | 56 | QDialogButtonBox::Ok 57 | 58 | 59 | true 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /translations/translations.cpp: -------------------------------------------------------------------------------- 1 | #include "translations/translations.h" 2 | 3 | const QList Translations::lTranslations = 4 | { 5 | { 6 | "English", 7 | QLocale::English, 8 | QStringList{} 9 | }, 10 | { 11 | "Français", 12 | QLocale::French, 13 | QStringList{"Tom Wickens", "Pilou Roy"} 14 | }, 15 | { 16 | "Deutsch", 17 | QLocale::German, 18 | QStringList{"Tom Wickens"} 19 | }, 20 | { 21 | "Español", 22 | QLocale::Spanish, 23 | QStringList{"Tom Wickens"} 24 | } 25 | }; 26 | -------------------------------------------------------------------------------- /translations/translations.h: -------------------------------------------------------------------------------- 1 | #ifndef TRANSLATIONS_H 2 | #define TRANSLATIONS_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | class Translations { 10 | 11 | public: 12 | struct sTranslations 13 | { 14 | QString NativeLanguageName; 15 | QLocale::Language Language; 16 | QStringList Translators; 17 | }; 18 | 19 | static const QList lTranslations; 20 | }; 21 | 22 | 23 | #endif // TRANSLATIONS_H 24 | -------------------------------------------------------------------------------- /translations/translations.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | sACNView.qm 4 | sACNView_de.qm 5 | sACNView_en.qm 6 | sACNView_es.qm 7 | sACNView_fr.qm 8 | 9 | 10 | -------------------------------------------------------------------------------- /ui/crash_test.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | CrashTest 4 | 5 | 6 | Qt::ApplicationModal 7 | 8 | 9 | 10 | 0 11 | 0 12 | 300 13 | 18 14 | 15 | 16 | 17 | 18 | 0 19 | 0 20 | 21 | 22 | 23 | sACNView Crash Tester 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /ui/nicselectdialog.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | NICSelectDialog 4 | 5 | 6 | 7 | 0 8 | 0 9 | 400 10 | 181 11 | 12 | 13 | 14 | Select Network Interface 15 | 16 | 17 | 18 | 19 | 20 | Select a network interface on which to work with Streaming ACN. 21 | 22 | 23 | Qt::AlignCenter 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | Qt::Horizontal 36 | 37 | 38 | 39 | 40 40 | 20 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | Work Offline 49 | 50 | 51 | 52 | 53 | 54 | 55 | Select 56 | 57 | 58 | true 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | --------------------------------------------------------------------------------