diff options
author | Jaap Keuter <jaap.keuter@xs4all.nl> | 2009-02-22 11:43:37 +0000 |
---|---|---|
committer | Jaap Keuter <jaap.keuter@xs4all.nl> | 2009-02-22 11:43:37 +0000 |
commit | 9da243b13caeabae1264568d9256ef35de9708f2 (patch) | |
tree | c8d9cbc25659cbfc57d79ea5a9073bd6e281a4dd /plugins | |
parent | 4683efcfe2f04350f90416f93291eab8ad321a97 (diff) | |
download | wireshark-9da243b13caeabae1264568d9256ef35de9708f2.tar.gz wireshark-9da243b13caeabae1264568d9256ef35de9708f2.tar.bz2 wireshark-9da243b13caeabae1264568d9256ef35de9708f2.zip |
Incorporate plugin dissector into build in collection.
svn path=/trunk/; revision=27505
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/Makefile.am | 1 | ||||
-rw-r--r-- | plugins/Makefile.nmake | 4 | ||||
-rw-r--r-- | plugins/artnet/AUTHORS | 3 | ||||
-rw-r--r-- | plugins/artnet/COPYING | 340 | ||||
-rw-r--r-- | plugins/artnet/ChangeLog | 16 | ||||
-rw-r--r-- | plugins/artnet/INSTALL | 0 | ||||
-rw-r--r-- | plugins/artnet/Makefile.am | 127 | ||||
-rw-r--r-- | plugins/artnet/Makefile.common | 31 | ||||
-rw-r--r-- | plugins/artnet/Makefile.nmake | 106 | ||||
-rw-r--r-- | plugins/artnet/NEWS | 0 | ||||
-rw-r--r-- | plugins/artnet/moduleinfo.h | 17 | ||||
-rw-r--r-- | plugins/artnet/moduleinfo.nmake | 28 | ||||
-rw-r--r-- | plugins/artnet/packet-artnet.c | 2705 | ||||
-rw-r--r-- | plugins/artnet/plugin.rc.in | 34 |
14 files changed, 0 insertions, 3412 deletions
diff --git a/plugins/Makefile.am b/plugins/Makefile.am index 5d51540c17..ad7f9c02f3 100644 --- a/plugins/Makefile.am +++ b/plugins/Makefile.am @@ -24,7 +24,6 @@ -include Custom.make SUBDIRS = $(_CUSTOM_SUBDIRS_) \ agentx \ - artnet \ asn1 \ docsis \ ethercat \ diff --git a/plugins/Makefile.nmake b/plugins/Makefile.nmake index ec0448bc3d..bcd606c161 100644 --- a/plugins/Makefile.nmake +++ b/plugins/Makefile.nmake @@ -33,9 +33,6 @@ process-plugins: cd agentx $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake $(PLUGIN_TARGET) cd .. - cd artnet - $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake $(PLUGIN_TARGET) - cd .. cd asn1 $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake $(PLUGIN_TARGET) cd .. @@ -92,7 +89,6 @@ install-plugins: !IFDEF ENABLE_LIBWIRESHARK cd.. xcopy plugins\agentx\*.dll $(INSTALL_DIR)\plugins\$(VERSION) /d - xcopy plugins\artnet\*.dll $(INSTALL_DIR)\plugins\$(VERSION) /d xcopy plugins\asn1\*.dll $(INSTALL_DIR)\plugins\$(VERSION) /d xcopy plugins\docsis\*.dll $(INSTALL_DIR)\plugins\$(VERSION) /d xcopy plugins\ethercat\*.dll $(INSTALL_DIR)\plugins\$(VERSION) /d diff --git a/plugins/artnet/AUTHORS b/plugins/artnet/AUTHORS deleted file mode 100644 index 2f7c1251c4..0000000000 --- a/plugins/artnet/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ -Author : -Erwin Rol <erwin@erwinrol.com> - diff --git a/plugins/artnet/COPYING b/plugins/artnet/COPYING deleted file mode 100644 index d60c31a97a..0000000000 --- a/plugins/artnet/COPYING +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - <signature of Ty Coon>, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/plugins/artnet/ChangeLog b/plugins/artnet/ChangeLog deleted file mode 100644 index 4f1d55b68e..0000000000 --- a/plugins/artnet/ChangeLog +++ /dev/null @@ -1,16 +0,0 @@ -$Id$ - -Overview of changes in Art-Net Ethereal plugin: - -Version 0.0.3: - -* Some small changes in the TOD frames -* Using RDM dissector for ArtRdm packets - -Version 0.0.2 - -* Number of new packets -* Added strings for several fields -* Use "Art-Net" instead of "ArtNET" -* Number of (endian) bugs fixed - diff --git a/plugins/artnet/INSTALL b/plugins/artnet/INSTALL deleted file mode 100644 index e69de29bb2..0000000000 --- a/plugins/artnet/INSTALL +++ /dev/null diff --git a/plugins/artnet/Makefile.am b/plugins/artnet/Makefile.am deleted file mode 100644 index 5ab499b0e5..0000000000 --- a/plugins/artnet/Makefile.am +++ /dev/null @@ -1,127 +0,0 @@ -# Makefile.am -# Automake file for ArtNET plugin -# -# $Id$ -# -# Wireshark - Network traffic analyzer -# By Gerald Combs <gerald@wireshark.org> -# Copyright 1998 Gerald Combs -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# - -INCLUDES = -I$(top_srcdir) -I$(includedir) - -include Makefile.common - -if HAVE_WARNINGS_AS_ERRORS -AM_CFLAGS = -Werror -endif - -plugindir = @plugindir@ - -plugin_LTLIBRARIES = artnet.la -artnet_la_SOURCES = \ - plugin.c \ - moduleinfo.h \ - $(DISSECTOR_SRC) \ - $(DISSECTOR_INCLUDES) -artnet_la_LDFLAGS = -module -avoid-version -artnet_la_LIBADD = @PLUGIN_LIBS@ - -# Libs must be cleared, or else libtool won't create a shared module. -# If your module needs to be linked against any particular libraries, -# add them here. -LIBS = - -# -# Build plugin.c, which contains the plugin version[] string, a -# function plugin_register() that calls the register routines for all -# protocols, and a function plugin_reg_handoff() that calls the handoff -# registration routines for all protocols. -# -# We do this by scanning sources. If that turns out to be too slow, -# maybe we could just require every .o file to have an register routine -# of a given name (packet-aarp.o -> proto_register_aarp, etc.). -# -# Formatting conventions: The name of the proto_register_* routines an -# proto_reg_handoff_* routines must start in column zero, or must be -# preceded only by "void " starting in column zero, and must not be -# inside #if. -# -# DISSECTOR_SRC is assumed to have all the files that need to be scanned. -# -# For some unknown reason, having a big "for" loop in the Makefile -# to scan all the files doesn't work with some "make"s; they seem to -# pass only the first few names in the list to the shell, for some -# reason. -# -# Therefore, we have a script to generate the plugin.c file. -# The shell script runs slowly, as multiple greps and seds are run -# for each input file; this is especially slow on Windows. Therefore, -# if Python is present (as indicated by PYTHON being defined), we run -# a faster Python script to do that work instead. -# -# The first argument is the directory in which the source files live. -# The second argument is "plugin", to indicate that we should build -# a plugin.c file for a plugin. -# All subsequent arguments are the files to scan. -# -plugin.c: $(DISSECTOR_SRC) $(top_srcdir)/tools/make-dissector-reg \ - $(top_srcdir)/tools/make-dissector-reg.py - @if test -n "$(PYTHON)"; then \ - echo Making plugin.c with python ; \ - $(PYTHON) $(top_srcdir)/tools/make-dissector-reg.py $(srcdir) \ - plugin $(DISSECTOR_SRC) ; \ - else \ - echo Making plugin.c with shell script ; \ - $(top_srcdir)/tools/make-dissector-reg $(srcdir) \ - $(plugin_src) plugin $(DISSECTOR_SRC) ; \ - fi - -# -# Currently plugin.c can be included in the distribution because -# we always build all protocol dissectors. We used to have to check -# whether or not to build the snmp dissector. If we again need to -# variably build something, making plugin.c non-portable, uncomment -# the dist-hook line below. -# -# Oh, yuk. We don't want to include "plugin.c" in the distribution, as -# its contents depend on the configuration, and therefore we want it -# to be built when the first "make" is done; however, Automake insists -# on putting *all* source into the distribution. -# -# We work around this by having a "dist-hook" rule that deletes -# "plugin.c", so that "dist" won't pick it up. -# -#dist-hook: -# @rm -f $(distdir)/plugin.c - -CLEANFILES = \ - artnet \ - *~ - -MAINTAINERCLEANFILES = \ - Makefile.in \ - plugin.c - -EXTRA_DIST = \ - Makefile.common \ - Makefile.nmake \ - moduleinfo.nmake \ - plugin.rc.in - -checkapi: - $(PERL) $(top_srcdir)/tools/checkAPIs.pl -g abort -g termoutput $(DISSECTOR_SRC) diff --git a/plugins/artnet/Makefile.common b/plugins/artnet/Makefile.common deleted file mode 100644 index 392d7a7aa5..0000000000 --- a/plugins/artnet/Makefile.common +++ /dev/null @@ -1,31 +0,0 @@ -# Makefile.common for ArtNET plugin -# Contains the stuff from Makefile.am and Makefile.nmake that is -# a) common to both files and -# b) portable between both files -# -# $Id$ -# -# Wireshark - Network traffic analyzer -# By Gerald Combs <gerald@wireshark.org> -# Copyright 1998 Gerald Combs -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# the name of the plugin -PLUGIN_NAME = artnet - -# the dissector sources (without any helpers) -DISSECTOR_SRC = \ - packet-artnet.c diff --git a/plugins/artnet/Makefile.nmake b/plugins/artnet/Makefile.nmake deleted file mode 100644 index acc863edc3..0000000000 --- a/plugins/artnet/Makefile.nmake +++ /dev/null @@ -1,106 +0,0 @@ -# Makefile.nmake -# nmake file for Wireshark plugin -# -# $Id$ -# - -include ..\..\config.nmake -include moduleinfo.nmake - -include Makefile.common - -CFLAGS=/WX /DHAVE_CONFIG_H /I../.. $(GLIB_CFLAGS) \ - /I$(PCAP_DIR)\include -D_U_="" $(LOCAL_CFLAGS) - -.c.obj:: - $(CC) $(CFLAGS) -Fd.\ -c $< - -LDFLAGS = $(PLUGIN_LDFLAGS) - -!IFDEF ENABLE_LIBWIRESHARK -LINK_PLUGIN_WITH=..\..\epan\libwireshark.lib -CFLAGS=/DHAVE_WIN32_LIBWIRESHARK_LIB /D_NEED_VAR_IMPORT_ $(CFLAGS) - -DISSECTOR_OBJECTS = $(DISSECTOR_SRC:.c=.obj) - -DISSECTOR_SUPPORT_OBJECTS = $(DISSECTOR_SUPPORT_SRC:.c=.obj) - -OBJECTS = $(DISSECTOR_OBJECTS) $(DISSECTOR_SUPPORT_OBJECTS) plugin.obj - -RESOURCE=$(PLUGIN_NAME).res - -all: $(PLUGIN_NAME).dll - -$(PLUGIN_NAME).rc : moduleinfo.nmake - sed -e s/@PLUGIN_NAME@/$(PLUGIN_NAME)/ \ - -e s/@RC_MODULE_VERSION@/$(RC_MODULE_VERSION)/ \ - -e s/@RC_VERSION@/$(RC_VERSION)/ \ - -e s/@MODULE_VERSION@/$(MODULE_VERSION)/ \ - -e s/@PACKAGE@/$(PACKAGE)/ \ - -e s/@VERSION@/$(VERSION)/ \ - -e s/@MSVC_VARIANT@/$(MSVC_VARIANT)/ \ - < plugin.rc.in > $@ - -$(PLUGIN_NAME).dll $(PLUGIN_NAME).exp $(PLUGIN_NAME).lib : $(OBJECTS) $(LINK_PLUGIN_WITH) $(RESOURCE) - link -dll /out:$(PLUGIN_NAME).dll $(LDFLAGS) $(OBJECTS) $(LINK_PLUGIN_WITH) \ - $(GLIB_LIBS) $(RESOURCE) -!IF $(MSC_VER_REQUIRED) >= 1400 - mt.exe -nologo -manifest "$(PLUGIN_NAME).dll.manifest" -outputresource:$(PLUGIN_NAME).dll;2 -!ENDIF - -# -# Build plugin.c, which contains the plugin version[] string, a -# function plugin_register() that calls the register routines for all -# protocols, and a function plugin_reg_handoff() that calls the handoff -# registration routines for all protocols. -# -# We do this by scanning sources. If that turns out to be too slow, -# maybe we could just require every .o file to have an register routine -# of a given name (packet-aarp.o -> proto_register_aarp, etc.). -# -# Formatting conventions: The name of the proto_register_* routines an -# proto_reg_handoff_* routines must start in column zero, or must be -# preceded only by "void " starting in column zero, and must not be -# inside #if. -# -# DISSECTOR_SRC is assumed to have all the files that need to be scanned. -# -# For some unknown reason, having a big "for" loop in the Makefile -# to scan all the files doesn't work with some "make"s; they seem to -# pass only the first few names in the list to the shell, for some -# reason. -# -# Therefore, we have a script to generate the plugin.c file. -# The shell script runs slowly, as multiple greps and seds are run -# for each input file; this is especially slow on Windows. Therefore, -# if Python is present (as indicated by PYTHON being defined), we run -# a faster Python script to do that work instead. -# -# The first argument is the directory in which the source files live. -# The second argument is "plugin", to indicate that we should build -# a plugin.c file for a plugin. -# All subsequent arguments are the files to scan. -# -!IFDEF PYTHON -plugin.c: $(DISSECTOR_SRC) moduleinfo.h ../../tools/make-dissector-reg.py - @echo Making plugin.c (using python) - @$(PYTHON) "../../tools/make-dissector-reg.py" . plugin $(DISSECTOR_SRC) -!ELSE -plugin.c: $(DISSECTOR_SRC) moduleinfo.h ../../tools/make-dissector-reg - @echo Making plugin.c (using sh) - @$(SH) ../../tools/make-dissector-reg . plugin $(DISSECTOR_SRC) -!ENDIF - -!ENDIF - -clean: - rm -f $(OBJECTS) $(RESOURCE) plugin.c *.pdb \ - $(PLUGIN_NAME).dll $(PLUGIN_NAME).dll.manifest $(PLUGIN_NAME).lib \ - $(PLUGIN_NAME).exp $(PLUGIN_NAME).rc - -distclean: clean - -maintainer-clean: distclean - -checkapi: - $(PERL) ../../tools/checkAPIs.pl -g abort -g termoutput $(DISSECTOR_SRC) diff --git a/plugins/artnet/NEWS b/plugins/artnet/NEWS deleted file mode 100644 index e69de29bb2..0000000000 --- a/plugins/artnet/NEWS +++ /dev/null diff --git a/plugins/artnet/moduleinfo.h b/plugins/artnet/moduleinfo.h deleted file mode 100644 index 0c14d89991..0000000000 --- a/plugins/artnet/moduleinfo.h +++ /dev/null @@ -1,17 +0,0 @@ -/* Included *after* config.h, in order to re-define these macros */ - -#ifdef PACKAGE -#undef PACKAGE -#endif - -/* Name of package */ -#define PACKAGE "artnet" - - -#ifdef VERSION -#undef VERSION -#endif - -/* Version number of package */ -#define VERSION "0.0.3" - diff --git a/plugins/artnet/moduleinfo.nmake b/plugins/artnet/moduleinfo.nmake deleted file mode 100644 index 7de26ae637..0000000000 --- a/plugins/artnet/moduleinfo.nmake +++ /dev/null @@ -1,28 +0,0 @@ -# -# $Id$ -# - -# The name -PACKAGE=artnet - -# The version -MODULE_VERSION_MAJOR=0 -MODULE_VERSION_MINOR=0 -MODULE_VERSION_MICRO=3 -MODULE_VERSION_EXTRA=0 - -# -# The RC_VERSION should be comma-separated, not dot-separated, -# as per Graham Bloice's message in -# -# http://www.ethereal.com/lists/ethereal-dev/200303/msg00283.html -# -# "The RC_VERSION variable in config.nmake should be comma separated. -# This allows the resources to be built correctly and the version -# number to be correctly displayed in the explorer properties dialog -# for the executables, and XP's tooltip, rather than 0.0.0.0." -# - -MODULE_VERSION=$(MODULE_VERSION_MAJOR).$(MODULE_VERSION_MINOR).$(MODULE_VERSION_MICRO).$(MODULE_VERSION_EXTRA) -RC_MODULE_VERSION=$(MODULE_VERSION_MAJOR),$(MODULE_VERSION_MINOR),$(MODULE_VERSION_MICRO),$(MODULE_VERSION_EXTRA) - diff --git a/plugins/artnet/packet-artnet.c b/plugins/artnet/packet-artnet.c deleted file mode 100644 index 323b925ca1..0000000000 --- a/plugins/artnet/packet-artnet.c +++ /dev/null @@ -1,2705 +0,0 @@ -/* packet-artnet.c - * Routines for Art-Net packet disassembly - * - * $Id$ - * - * Copyright (c) 2003 by Erwin Rol <erwin@erwinrol.com> - * - * Wireshark - Network traffic analyzer - * By Gerald Combs <gerald@wireshark.org> - * Copyright 1999 Gerald Combs - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -/* Include files */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include <stdio.h> -#include <stdlib.h> -#include <ctype.h> -#include <time.h> -#include <string.h> -#include <epan/packet.h> -#include <epan/addr_resolv.h> -#include <epan/prefs.h> -#include <epan/strutil.h> - -/* - * See - * - * http://www.artisticlicence.com/art-net.pdf - */ - -/* Define udp_port for ArtNET */ - -#define UDP_PORT_ARTNET 0x1936 - -#define ARTNET_HEADER_LENGTH 10 -#define ARTNET_POLL_LENGTH 4 -#define ARTNET_POLL_REPLY_LENGTH 197 -#define ARTNET_POLL_REPLY_PORT_INFO_LENGTH 22 -#define ARTNET_POLL_REPLY_PORT_TYPES_LENGTH 4 -#define ARTNET_POLL_REPLY_GOOD_INPUT_LENGTH 4 -#define ARTNET_POLL_REPLY_GOOD_OUTPUT_LENGTH 4 -#define ARTNET_POLL_REPLY_SWIN_LENGTH 4 -#define ARTNET_POLL_REPLY_SWOUT_LENGTH 4 -#define ARTNET_ADDRESS_LENGTH 97 -#define ARTNET_ADDRESS_SWIN_LENGTH 4 -#define ARTNET_ADDRESS_SWOUT_LENGTH 4 -#define ARTNET_OUTPUT_LENGTH 1 -#define ARTNET_INPUT_LENGTH 10 -#define ARTNET_INPUT_INPUT_LENGTH 4 -#define ARTNET_FIRMWARE_MASTER_LENGTH 1035 -#define ARTNET_FIRMWARE_REPLY_LENGTH 26 -#define ARTNET_VIDEO_SETUP_LENGTH 74 -#define ARTNET_VIDEO_PALETTE_LENGTH 55 -#define ARTNET_VIDEO_DATA_LENGTH 8 - - -#define ARTNET_OP_POLL 0x2000 -#define ARTNET_OP_POLL_REPLY 0x2100 -#define ARTNET_OP_POLL_SERVER_REPLY 0x2200 -#define ARTNET_OP_OUTPUT 0x5000 -#define ARTNET_OP_ADDRESS 0x6000 -#define ARTNET_OP_INPUT 0x7000 -#define ARTNET_OP_VIDEO_SETUP 0xa010 -#define ARTNET_OP_VIDEO_PALETTE 0xa020 -#define ARTNET_OP_VIDEO_DATA 0xa040 - -#define ARTNET_OP_TOD_REQUEST 0x8000 -#define ARTNET_OP_TOD_DATA 0x8100 -#define ARTNET_OP_TOD_CONTROL 0x8200 -#define ARTNET_OP_RDM 0x8300 - -#define ARTNET_OP_MAC_MASTER 0xf000 -#define ARTNET_OP_MAC_SLAVE 0xf100 -#define ARTNET_OP_FIRMWARE_MASTER 0xf200 -#define ARTNET_OP_FIRMWARE_REPLY 0xf300 - -#define ARTNET_OP_IP_PROG 0xf800 -#define ARTNET_OP_IP_PROG_REPLY 0xf900 - -static const value_string artnet_opcode_vals[] = { - { ARTNET_OP_POLL, "ArtPoll packet" }, - { ARTNET_OP_POLL_REPLY, "ArtPollReply packet" }, - { ARTNET_OP_POLL_SERVER_REPLY, "ArtPollServerReply packet" }, - { ARTNET_OP_OUTPUT, "ArtDMX data packet" }, - { ARTNET_OP_ADDRESS, "ArtAddress packet" }, - { ARTNET_OP_INPUT, "ArtInput packet" }, - { ARTNET_OP_VIDEO_SETUP, "ArtVideoSetup packet" }, - { ARTNET_OP_VIDEO_PALETTE, "ArtVideoPalette packet" }, - { ARTNET_OP_VIDEO_DATA, "ArtVideoData packet" }, - { ARTNET_OP_TOD_REQUEST, "ArtTodRequest packet" }, - { ARTNET_OP_TOD_DATA, "ArtTodData packet" }, - { ARTNET_OP_TOD_CONTROL, "ArtTodControl packet" }, - { ARTNET_OP_RDM, "ArtRdm packet" }, - { ARTNET_OP_MAC_MASTER, "ArtMacMaster packet" }, - { ARTNET_OP_MAC_SLAVE, "ArtMacSlave packet" }, - { ARTNET_OP_FIRMWARE_MASTER, "ArtFirmwareMaster packet" }, - { ARTNET_OP_FIRMWARE_REPLY, "ArtFirmwareReply packet" }, - { ARTNET_OP_IP_PROG, "ArtIpProg packet" }, - { ARTNET_OP_IP_PROG_REPLY, "ArtIpProgReply packet" }, - { 0, NULL } -}; - -static const value_string artnet_oem_code_vals[] = { - { 0x0000, "Artistic Licence:DMX-Hub:4x DMX in,4x DMX out" }, - { 0x0001, "ADB:Netgate:4x DMX in,4x DMX out" }, - { 0x0002, "MA Lighting:TBA:4x DMX in,4x DMX out" }, - { 0x0003, "Artistic Licence:Ether-Lynx:2x DMX in,4x DMX out" }, - { 0x0004, "LewLight:Capture v2:TBA" }, - { 0x0005, "High End:TBA:TBA" }, - { 0x0006, "Avolites:TBA:TBA" }, - { 0x0010, "Artistic Licence:Down-Lynx:2x DMX out. Wall Panel." }, - { 0x0011, "Artistic Licence:Up-Lynx:2x DMX in. Wall Panel" }, - { 0x0014, "Artistic Licence:Net-Lynx O/P:2x DMX out. Boxed Product" }, - { 0x0015, "Artistic Licence:Net-Lynx I/P:2x DMX in. Boxed Product" }, - { 0x0030, "Doug Fleenor Design:TBA:2x DMX out" }, - { 0x0031, "Doug Fleenor Design:TBA:2x DMX in" }, - { 0x0050, "Goddard Design:DMX-Link (tm) O/P:2x DMX out" }, - { 0x0051, "Goddard Design:DMX-Link (tm) I/P:2x DMX in" }, - { 0x0070, "ADB:Net-Port O/P:2x DMX out" }, - { 0x0071, "ADB:Net-Port I/P:2x DMX in" }, - { 0x0072, "ADB:Reserved:" }, - { 0x0073, "ADB:Reserved:" }, - { 0x0074, "ADB:Reserved:" }, - { 0x0075, "ADB:Reserved:" }, - { 0x0076, "ADB:Reserved:" }, - { 0x0077, "ADB:Reserved:" }, - { 0x0078, "ADB:Reserved:" }, - { 0x0079, "ADB:Reserved:" }, - { 0x007A, "ADB:Reserved:" }, - { 0x007B, "ADB:Reserved:" }, - { 0x007C, "ADB:Reserved:" }, - { 0x007D, "ADB:Reserved:" }, - { 0x007E, "ADB:Reserved:" }, - { 0x007F, "ADB:Reserved:" }, - { 0x008C, "Zero 88:TBA:2x DMX out" }, - { 0x008D, "Zero 88:TBA:2x DMX in" }, - { 0x008E, "Flying Pig:TBA:2x DMX out" }, - { 0x008F, "Flying Pig:TBA:2x DMX in" }, - { 0x0090, "ELC:ELC 2:2x DMX out" }, - { 0x0091, "ELC:ELC 4:4x DMX in. 4x DMX out" }, - { 0x0180, "Martin:Maxxyz:4x DMX in. 4x DMX out" }, - { 0x0190, "Enttec:Reserved:" }, - { 0x0191, "Enttec:Reserved:" }, - { 0x0192, "Enttec:Reserved:" }, - { 0x0193, "Enttec:Reserved:" }, - { 0x0194, "Enttec:Reserved:" }, - { 0x0195, "Enttec:Reserved:" }, - { 0x0196, "Enttec:Reserved:" }, - { 0x0197, "Enttec:Reserved:" }, - { 0x0198, "Enttec:Reserved:" }, - { 0x0199, "Enttec:Reserved:" }, - { 0x019A, "Enttec:Reserved:" }, - { 0x019B, "Enttec:Reserved:" }, - { 0x019C, "Enttec:Reserved:" }, - { 0x019D, "Enttec:Reserved:" }, - { 0x019E, "Enttec:Reserved:" }, - { 0x019F, "Enttec:Reserved:" }, - { 0x8000, "ADB:Netgate XT:Video output and trigger inputs" }, - { 0x8001, "Artistic Licence:Net-Patch:TBA" }, - { 0x8002, "Artistic Licence:DMX-Hub XT:Video output and trigger inputs" }, - { 0x8003, "Artistic Licence:No-Worries XT:Real time data record - playback" }, - { 0, NULL } -}; - -static const value_string artnet_esta_man_vals[] = { - { 0x414C, "Artistic Licence" }, - { 0, NULL } -}; - -#define ARTNET_AC_NONE 0x00 -#define ARTNET_AC_CANCEL_MERGE 0x01 -#define ARTNET_AC_LED_NORMAL 0x02 -#define ARTNET_AC_LED_MUTE 0x03 -#define ARTNET_AC_LED_LOCATE 0x04 -#define ARTNET_AC_RESET_RX_FLAGS 0x05 -#define ARTNET_AC_MERGE_LTP0 0x10 -#define ARTNET_AC_MERGE_LTP1 0x11 -#define ARTNET_AC_MERGE_LTP2 0x12 -#define ARTNET_AC_MERGE_LTP3 0x13 -#define ARTNET_AC_MERGE_HTP0 0x50 -#define ARTNET_AC_MERGE_HTP1 0x51 -#define ARTNET_AC_MERGE_HTP2 0x52 -#define ARTNET_AC_MERGE_HTP3 0x53 -#define ARTNET_AC_CLEAR_OP0 0x90 -#define ARTNET_AC_CLEAR_OP1 0x91 -#define ARTNET_AC_CLEAR_OP2 0x92 -#define ARTNET_AC_CLEAR_OP3 0x93 - -static const value_string artnet_address_command_vals[] = { - { ARTNET_AC_NONE, "No Action" }, - { ARTNET_AC_CANCEL_MERGE, "Cancel merge" }, - { ARTNET_AC_LED_NORMAL, "LED Normal" }, - { ARTNET_AC_LED_MUTE, "LED Mute" }, - { ARTNET_AC_LED_LOCATE, "LED Locate" }, - { ARTNET_AC_RESET_RX_FLAGS, "Reset SIP text" }, - { ARTNET_AC_MERGE_LTP0, "DMX port 1 LTP" }, - { ARTNET_AC_MERGE_LTP1, "DMX port 2 LTP" }, - { ARTNET_AC_MERGE_LTP2, "DXM port 3 LTP" }, - { ARTNET_AC_MERGE_LTP3, "DMX port 4 LTP" }, - { ARTNET_AC_MERGE_HTP0, "DMX port 1 HTP" }, - { ARTNET_AC_MERGE_HTP1, "DMX port 2 HTP" }, - { ARTNET_AC_MERGE_HTP2, "DXM port 3 HTP" }, - { ARTNET_AC_MERGE_HTP3, "DMX port 4 HTP" }, - { ARTNET_AC_CLEAR_OP0, "Clear DMX port 1" }, - { ARTNET_AC_CLEAR_OP1, "Clear DMX port 2" }, - { ARTNET_AC_CLEAR_OP2, "Clear DXM port 3" }, - { ARTNET_AC_CLEAR_OP3, "Clear DMX port 4" }, - { 0, NULL } -}; - -#define ARTNET_FT_FIRM_FIRST 0x00 -#define ARTNET_FT_FIRM_CONT 0x01 -#define ARTNET_FT_FIRM_LAST 0x02 -#define ARTNET_FT_UBEA_FIRST 0x03 -#define ARTNET_FT_UBEA_CONT 0x04 -#define ARTNET_FT_UBEA_LAST 0x05 - -static const value_string artnet_firmware_master_type_vals[] = { - { ARTNET_FT_FIRM_FIRST, "FirmFirst" }, - { ARTNET_FT_FIRM_CONT, "FirmCont" }, - { ARTNET_FT_FIRM_LAST, "FirmLast" }, - { ARTNET_FT_UBEA_FIRST, "UbeaFirst" }, - { ARTNET_FT_UBEA_CONT, "UbeaCont" }, - { ARTNET_FT_UBEA_LAST, "UbeaLast" }, - { 0, NULL } -}; - -#define ARTNET_FRT_FIRM_BLOCK_GOOD 0x00 -#define ARTNET_FRT_FIRM_ALL_GOOD 0x01 -#define ARTNET_FRT_FIRM_FAIL 0xff - -static const value_string artnet_firmware_reply_type_vals[] = { - { ARTNET_FRT_FIRM_BLOCK_GOOD, "FirmBlockGood" }, - { ARTNET_FRT_FIRM_ALL_GOOD, "FirmAllGood" }, - { ARTNET_FRT_FIRM_FAIL, "FirmFail" }, - { 0, NULL } -}; - -static const value_string artnet_tod_request_command_vals[] = { - { 0, NULL } -}; - -#define ARTNET_TDC_TOD_FULL 0x00 -#define ARTNET_TDC_TOD_NAK 0xFF - -static const value_string artnet_tod_data_command_vals[] = { - { ARTNET_TDC_TOD_FULL, "TodFull" }, - { ARTNET_TDC_TOD_NAK, "TodNak" }, - { 0, NULL } -}; - -#define ARTNET_TCC_ATC_NONE 0x00 -#define ARTNET_TCC_ATC_FLUSH 0x01 - -static const value_string artnet_tod_control_command_vals[] = { - { ARTNET_TCC_ATC_NONE, "AtcNone" }, - { ARTNET_TCC_ATC_FLUSH, "AtcFlush" }, - { 0, NULL } -}; - -#define ARTNET_RC_AR_PROCESS 0x00 - -static const value_string artnet_rdm_command_vals[] = { - { ARTNET_RC_AR_PROCESS, "ArProcess" }, - { 0, NULL } -}; - -void proto_reg_handoff_artnet(void); - -/* Define the artnet proto */ -static int proto_artnet = -1; - - -/* general */ -static int hf_artnet_filler = -1; -static int hf_artnet_spare = -1; - -/* Header */ -static int hf_artnet_header = -1; -static int hf_artnet_header_id = -1; -static int hf_artnet_header_opcode = -1; -static int hf_artnet_header_protver = -1; - -/* ArtPoll */ -static int hf_artnet_poll = -1; -static int hf_artnet_poll_talktome = -1; -static int hf_artnet_poll_talktome_reply_dest = -1; -static int hf_artnet_poll_talktome_reply_type = -1; -static int hf_artnet_poll_talktome_unused = -1; - -/* ArtPollReply */ -static int hf_artnet_poll_reply = -1; -static int hf_artnet_poll_reply_ip_address = -1; -static int hf_artnet_poll_reply_port_nr = -1; -static int hf_artnet_poll_reply_versinfo = -1; -static int hf_artnet_poll_reply_subswitch = -1; -static int hf_artnet_poll_reply_oem = -1; -static int hf_artnet_poll_reply_ubea_version = -1; -static int hf_artnet_poll_reply_status = -1; -static int hf_artnet_poll_reply_esta_man = -1; -static int hf_artnet_poll_reply_short_name = -1; -static int hf_artnet_poll_reply_long_name = -1; -static int hf_artnet_poll_reply_node_report = -1; -static int hf_artnet_poll_reply_port_info = -1; -static int hf_artnet_poll_reply_num_ports = -1; -static int hf_artnet_poll_reply_port_types = -1; -static int hf_artnet_poll_reply_port_types_1 = -1; -static int hf_artnet_poll_reply_port_types_2 = -1; -static int hf_artnet_poll_reply_port_types_3 = -1; -static int hf_artnet_poll_reply_port_types_4 = -1; -static int hf_artnet_poll_reply_good_input = -1; -static int hf_artnet_poll_reply_good_input_1 = -1; -static int hf_artnet_poll_reply_good_input_2 = -1; -static int hf_artnet_poll_reply_good_input_3 = -1; -static int hf_artnet_poll_reply_good_input_4 = -1; -static int hf_artnet_poll_reply_good_output = -1; -static int hf_artnet_poll_reply_good_output_1 = -1; -static int hf_artnet_poll_reply_good_output_2 = -1; -static int hf_artnet_poll_reply_good_output_3 = -1; -static int hf_artnet_poll_reply_good_output_4 = -1; -static int hf_artnet_poll_reply_swin = -1; -static int hf_artnet_poll_reply_swin_1 = -1; -static int hf_artnet_poll_reply_swin_2 = -1; -static int hf_artnet_poll_reply_swin_3 = -1; -static int hf_artnet_poll_reply_swin_4 = -1; -static int hf_artnet_poll_reply_swout = -1; -static int hf_artnet_poll_reply_swout_1 = -1; -static int hf_artnet_poll_reply_swout_2 = -1; -static int hf_artnet_poll_reply_swout_3 = -1; -static int hf_artnet_poll_reply_swout_4 = -1; -static int hf_artnet_poll_reply_swvideo = -1; -static int hf_artnet_poll_reply_swmacro = -1; -static int hf_artnet_poll_reply_swremote = -1; -static int hf_artnet_poll_reply_mac = -1; - -/* ArtOutput */ -static int hf_artnet_output = -1; -static int hf_artnet_output_sequence = -1; -static int hf_artnet_output_physical = -1; -static int hf_artnet_output_universe = -1; -static int hf_artnet_output_length = -1; -static int hf_artnet_output_data = -1; -static int hf_artnet_output_dmx_data = -1; -static int hf_artnet_output_data_filter = -1; - -/* ArtAddress */ -static int hf_artnet_address = -1; -static int hf_artnet_address_short_name = -1; -static int hf_artnet_address_long_name = -1; -static int hf_artnet_address_swin = -1; -static int hf_artnet_address_swin_1 = -1; -static int hf_artnet_address_swin_2 = -1; -static int hf_artnet_address_swin_3 = -1; -static int hf_artnet_address_swin_4 = -1; -static int hf_artnet_address_swout = -1; -static int hf_artnet_address_swout_1 = -1; -static int hf_artnet_address_swout_2 = -1; -static int hf_artnet_address_swout_3 = -1; -static int hf_artnet_address_swout_4 = -1; -static int hf_artnet_address_subswitch = -1; -static int hf_artnet_address_swvideo = -1; -static int hf_artnet_address_command = -1; - -/* ArtInput */ -static int hf_artnet_input = -1; -static int hf_artnet_input_num_ports = -1; -static int hf_artnet_input_input = -1; -static int hf_artnet_input_input_1 = -1; -static int hf_artnet_input_input_2 = -1; -static int hf_artnet_input_input_3 = -1; -static int hf_artnet_input_input_4 = -1; - -/* ArtFirmwareMaster */ -static int hf_artnet_firmware_master = -1; -static int hf_artnet_firmware_master_type = -1; -static int hf_artnet_firmware_master_block_id = -1; -static int hf_artnet_firmware_master_length = -1; -static int hf_artnet_firmware_master_data = -1; - -/* ArtFirmwareReply */ -static int hf_artnet_firmware_reply = -1; -static int hf_artnet_firmware_reply_type = -1; - -/* ArtVideoSetup */ -static int hf_artnet_video_setup = -1; -static int hf_artnet_video_setup_control = -1; -static int hf_artnet_video_setup_font_height = -1; -static int hf_artnet_video_setup_first_font = -1; -static int hf_artnet_video_setup_last_font = -1; -static int hf_artnet_video_setup_win_font_name = -1; -static int hf_artnet_video_setup_font_data = -1; - -/* ArtVideoPalette */ -static int hf_artnet_video_palette = -1; -static int hf_artnet_video_palette_colour_red = -1; -static int hf_artnet_video_palette_colour_green = -1; -static int hf_artnet_video_palette_colour_blue = -1; - -/* ArtVideoData */ -static int hf_artnet_video_data = -1; -static int hf_artnet_video_data_pos_x = -1; -static int hf_artnet_video_data_pos_y = -1; -static int hf_artnet_video_data_len_x = -1; -static int hf_artnet_video_data_len_y = -1; -static int hf_artnet_video_data_data = -1; - -/* ArtPollServerReply */ -static int hf_artnet_poll_server_reply = -1; - -/* ArtTodRequest */ -static int hf_artnet_tod_request = -1; -static int hf_artnet_tod_request_command = -1; -static int hf_artnet_tod_request_ad_count = -1; -static int hf_artnet_tod_request_address = -1; - -/* ArtTodData */ -static int hf_artnet_tod_data = -1; -static int hf_artnet_tod_data_port = -1; -static int hf_artnet_tod_data_command_response = -1; -static int hf_artnet_tod_data_address = -1; -static int hf_artnet_tod_data_uid_total = -1; -static int hf_artnet_tod_data_block_count = -1; -static int hf_artnet_tod_data_uid_count = -1; -static int hf_artnet_tod_data_tod = -1; - -/* ArtTodControl */ -static int hf_artnet_tod_control = -1; -static int hf_artnet_tod_control_command = -1; -static int hf_artnet_tod_control_address = -1; - -/* ArtRdm */ -static int hf_artnet_rdm = -1; -static int hf_artnet_rdm_command = -1; -static int hf_artnet_rdm_address = -1; - -/* ArtIpProg */ -static int hf_artnet_ip_prog = -1; -static int hf_artnet_ip_prog_command = -1; -static int hf_artnet_ip_prog_command_prog_port = -1; -static int hf_artnet_ip_prog_command_prog_sm = -1; -static int hf_artnet_ip_prog_command_prog_ip = -1; -static int hf_artnet_ip_prog_command_reset = -1; -static int hf_artnet_ip_prog_command_unused = -1; -static int hf_artnet_ip_prog_command_prog_enable = -1; -static int hf_artnet_ip_prog_ip = -1; -static int hf_artnet_ip_prog_sm = -1; -static int hf_artnet_ip_prog_port = -1; - -/* ArtIpProgReply */ -static int hf_artnet_ip_prog_reply = -1; -static int hf_artnet_ip_prog_reply_ip = -1; -static int hf_artnet_ip_prog_reply_sm = -1; -static int hf_artnet_ip_prog_reply_port = -1; - -/* Define the tree for artnet */ -static int ett_artnet = -1; - -/* - * Here are the global variables associated with the preferences - * for artnet - */ - -static guint global_udp_port_artnet = UDP_PORT_ARTNET; -static gint global_disp_chan_val_type = 0; -static gint global_disp_col_count = 16; -static gint global_disp_chan_nr_type = 0; - -/* A static handle for the rdm dissector */ -static dissector_handle_t rdm_handle; - -static guint -dissect_artnet_poll(tvbuff_t *tvb, guint offset, proto_tree *tree) -{ - guint8 talktome; - proto_tree *flags_tree, *flags_item; - - talktome = tvb_get_guint8(tvb, offset); - flags_item = proto_tree_add_uint(tree, hf_artnet_poll_talktome, tvb, - offset, 1, talktome); - - flags_tree=proto_item_add_subtree(flags_item, ett_artnet); - proto_tree_add_item(flags_tree, hf_artnet_poll_talktome_reply_dest, tvb, offset, 1, FALSE); - proto_tree_add_item(flags_tree, hf_artnet_poll_talktome_reply_type, tvb, offset, 1, FALSE); - proto_tree_add_item(flags_tree, hf_artnet_poll_talktome_unused, tvb, offset, 1, FALSE); - - offset += 1; - - proto_tree_add_item(tree, hf_artnet_filler, tvb, - offset, 1, FALSE); - offset += 1; - - return offset; -} - -static guint -dissect_artnet_poll_reply(tvbuff_t *tvb, guint offset, proto_tree *tree) -{ - proto_tree *hi,*si,*ti; - guint8 swin,swout,swvideo,swmacro,swremote; - guint8 port_types,good_input,good_output; - guint16 num_ports; - - proto_tree_add_item(tree, hf_artnet_poll_reply_ip_address, tvb, - offset, 4, FALSE); - offset += 4; - - proto_tree_add_item(tree, hf_artnet_poll_reply_port_nr, tvb, - offset, 2, TRUE); - offset += 2; - - proto_tree_add_item(tree, hf_artnet_poll_reply_versinfo, tvb, - offset, 2, FALSE); - offset += 2; - - proto_tree_add_item(tree, hf_artnet_poll_reply_subswitch, tvb, - offset, 2, FALSE); - offset += 2; - - proto_tree_add_item(tree, hf_artnet_poll_reply_oem, tvb, - offset, 2, FALSE); - offset += 2; - - proto_tree_add_item(tree, hf_artnet_poll_reply_ubea_version, tvb, - offset, 1, FALSE); - offset += 1; - - proto_tree_add_item(tree, hf_artnet_poll_reply_status, tvb, - offset, 1, FALSE); - offset += 1; - - proto_tree_add_item(tree, hf_artnet_poll_reply_esta_man, tvb, - offset, 2, TRUE); - offset += 2; - - proto_tree_add_item(tree, hf_artnet_poll_reply_short_name, - tvb, offset, 18, FALSE); - offset += 18; - - proto_tree_add_item(tree, hf_artnet_poll_reply_long_name, - tvb, offset, 64, FALSE); - offset += 64; - - proto_tree_add_item(tree, hf_artnet_poll_reply_node_report, - tvb, offset, 64, FALSE); - offset += 64; - - - hi = proto_tree_add_item(tree, - hf_artnet_poll_reply_port_info, - tvb, - offset, - ARTNET_POLL_REPLY_PORT_INFO_LENGTH, - FALSE); - - si = proto_item_add_subtree(hi, ett_artnet); - - num_ports = tvb_get_ntohs(tvb, offset); - proto_tree_add_uint(si, hf_artnet_poll_reply_num_ports, tvb, - offset, 2, num_ports); - offset += 2; - - hi = proto_tree_add_item(si, - hf_artnet_poll_reply_port_types, - tvb, - offset, - ARTNET_POLL_REPLY_PORT_TYPES_LENGTH, - FALSE); - - ti = proto_item_add_subtree(hi, ett_artnet); - - port_types = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_poll_reply_port_types_1, tvb, - offset, 1, port_types); - offset += 1; - - port_types = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_poll_reply_port_types_2, tvb, - offset, 1, port_types); - offset += 1; - - port_types = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_poll_reply_port_types_3, tvb, - offset, 1, port_types); - offset += 1; - - port_types = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_poll_reply_port_types_4, tvb, - offset, 1, port_types); - offset += 1; - - hi = proto_tree_add_item(si, - hf_artnet_poll_reply_good_input, - tvb, - offset, - ARTNET_POLL_REPLY_GOOD_INPUT_LENGTH, - FALSE); - - ti = proto_item_add_subtree(hi, ett_artnet); - - good_input = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_poll_reply_good_input_1, tvb, - offset, 1, good_input); - offset += 1; - - good_input = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_poll_reply_good_input_2, tvb, - offset, 1, good_input); - offset += 1; - - good_input = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_poll_reply_good_input_3, tvb, - offset, 1, good_input); - offset += 1; - - good_input = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_poll_reply_good_input_4, tvb, - offset, 1, good_input); - offset += 1; - - hi = proto_tree_add_item(si, - hf_artnet_poll_reply_good_output, - tvb, - offset, - ARTNET_POLL_REPLY_GOOD_OUTPUT_LENGTH, - FALSE); - - ti = proto_item_add_subtree(hi, ett_artnet); - - good_output = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_poll_reply_good_output_1, tvb, - offset, 1, good_output); - offset += 1; - - good_output = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_poll_reply_good_output_2, tvb, - offset, 1, good_output); - offset += 1; - - good_output = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_poll_reply_good_output_3, tvb, - offset, 1, good_output); - offset += 1; - - good_output = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_poll_reply_good_output_4, tvb, - offset, 1, good_output); - offset += 1; - - hi = proto_tree_add_item(si, - hf_artnet_poll_reply_swin, - tvb, - offset, - ARTNET_POLL_REPLY_SWIN_LENGTH, - FALSE); - - ti = proto_item_add_subtree(hi, ett_artnet); - - swin = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_poll_reply_swin_1, tvb, - offset, 1, swin); - offset += 1; - - swin = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_poll_reply_swin_2, tvb, - offset, 1, swin); - offset += 1; - - swin = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_poll_reply_swin_3, tvb, - offset, 1, swin); - offset += 1; - - swin = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_poll_reply_swin_4, tvb, - offset, 1, swin); - offset += 1; - - hi = proto_tree_add_item(si, - hf_artnet_poll_reply_swout, - tvb, - offset, - ARTNET_POLL_REPLY_SWOUT_LENGTH, - FALSE); - - ti = proto_item_add_subtree(hi, ett_artnet); - - swout = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_poll_reply_swout_1, tvb, - offset, 1, swout); - offset += 1; - - swout = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_poll_reply_swout_2, tvb, - offset, 1, swout); - offset += 1; - - swout = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_poll_reply_swout_3, tvb, - offset, 1, swout); - offset += 1; - - swout = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_poll_reply_swout_4, tvb, - offset, 1, swout); - offset += 1; - - swvideo = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(tree, hf_artnet_poll_reply_swvideo, tvb, - offset, 1, swvideo); - offset += 1; - - swmacro = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(tree, hf_artnet_poll_reply_swmacro, tvb, - offset, 1, swmacro); - offset += 1; - - swremote = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(tree, hf_artnet_poll_reply_swremote, tvb, - offset, 1, swremote); - offset += 1; - - proto_tree_add_item(tree, hf_artnet_spare, tvb, - offset, 4, FALSE); - offset += 4; - - proto_tree_add_item(tree, hf_artnet_poll_reply_mac, - tvb, offset, 6, FALSE); - - offset += 6; - - return offset; -} - -static guint -dissect_artnet_output(tvbuff_t *tvb, guint offset, proto_tree *tree) -{ - proto_tree *hi,*si; - proto_item *item; - guint16 length,r,c,row_count; - guint8 v; - static char string[255]; - char* ptr; - const char* chan_format[] = { - "%2u ", - "%02x ", - "%3u " - }; - const char* string_format[] = { - "%03x: %s", - "%3u: %s" - }; - - proto_tree_add_item(tree, hf_artnet_output_sequence, tvb, - offset, 1, FALSE); - offset += 1; - - proto_tree_add_item(tree, hf_artnet_output_physical, tvb, - offset, 1, FALSE); - offset += 1; - - proto_tree_add_item(tree, hf_artnet_output_universe, tvb, - offset, 2, TRUE); - offset += 2; - - length = tvb_get_ntohs(tvb, offset); - proto_tree_add_uint(tree, hf_artnet_output_length, tvb, - offset, 2, length); - offset += 2; - - hi = proto_tree_add_item(tree, - hf_artnet_output_data, - tvb, - offset, - length, - FALSE); - - si = proto_item_add_subtree(hi, ett_artnet); - - row_count = (length/global_disp_col_count) + ((length%global_disp_col_count) == 0 ? 0 : 1); - ptr = string; - for (r=0; r < row_count;r++) { - for (c=0;(c < global_disp_col_count) && (((r*global_disp_col_count)+c) < length);c++) { - if ((c % (global_disp_col_count/2)) == 0) { - ptr += g_snprintf(ptr, sizeof string - strlen(string), " "); - } - - v = tvb_get_guint8(tvb, (offset+(r*global_disp_col_count)+c)); - if (global_disp_chan_val_type == 0) { - v = (v * 100) / 255; - if (v == 100) { - ptr += g_snprintf(ptr, sizeof string - strlen(string), "FL "); - } else { - ptr += g_snprintf(ptr, sizeof string - strlen(string), chan_format[global_disp_chan_val_type], v); - } - } else { - ptr += g_snprintf(ptr, sizeof string - strlen(string), chan_format[global_disp_chan_val_type], v); - } - } - - proto_tree_add_none_format(si,hf_artnet_output_dmx_data, tvb, - offset+(r*global_disp_col_count), c, - string_format[global_disp_chan_nr_type], (r*global_disp_col_count)+1, string); - ptr = string; - } - - /* Add the real type hidden */ - item = proto_tree_add_item(si, hf_artnet_output_data_filter, tvb, - offset, length, FALSE ); - PROTO_ITEM_SET_HIDDEN(item); - offset += length; - - return offset; -} - -static guint -dissect_artnet_address(tvbuff_t *tvb, guint offset, proto_tree *tree) { - proto_tree *hi,*si,*ti; - guint8 swin,swout,swvideo,command; - - proto_tree_add_item(tree, hf_artnet_filler, tvb, - offset, 2, FALSE); - offset += 2; - - proto_tree_add_item(tree, hf_artnet_address_short_name, - tvb, offset, 18, FALSE); - offset += 18; - - proto_tree_add_item(tree, hf_artnet_address_long_name, - tvb, offset, 64, FALSE); - offset += 64; - - hi = proto_tree_add_item(tree, - hf_artnet_address_swin, - tvb, - offset, - ARTNET_ADDRESS_SWIN_LENGTH, - FALSE); - - ti = proto_item_add_subtree(hi, ett_artnet); - - swin = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_address_swin_1, tvb, - offset, 1, swin); - offset += 1; - - swin = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_address_swin_2, tvb, - offset, 1, swin); - offset += 1; - - swin = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_address_swin_3, tvb, - offset, 1, swin); - offset += 1; - - swin = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(ti, hf_artnet_address_swin_4, tvb, - offset, 1, swin); - offset += 1; - - hi = proto_tree_add_item(tree, - hf_artnet_address_swout, - tvb, - offset, - ARTNET_ADDRESS_SWOUT_LENGTH, - FALSE); - - si = proto_item_add_subtree(hi, ett_artnet); - - swout = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(si, hf_artnet_address_swout_1, tvb, - offset, 1, swout); - offset += 1; - - swout = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(si, hf_artnet_address_swout_2, tvb, - offset, 1, swout); - offset += 1; - - swout = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(si, hf_artnet_address_swout_3, tvb, - offset, 1, swout); - offset += 1; - - swout = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(si, hf_artnet_address_swout_4, tvb, - offset, 1, swout); - offset += 1; - - swvideo = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(tree, hf_artnet_address_swvideo, tvb, - offset, 1, swvideo); - offset += 1; - - command = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(tree, hf_artnet_address_command, tvb, - offset, 1, command); - - offset += 1; - - return offset; -} - -static guint -dissect_artnet_input(tvbuff_t *tvb, guint offset, proto_tree *tree) { - proto_tree *hi,*si; - guint16 num_ports; - guint8 input; - - proto_tree_add_item(tree, hf_artnet_filler, tvb, - offset, 2, FALSE); - offset += 2; - - num_ports = tvb_get_letohs(tvb, offset); - proto_tree_add_uint(tree, hf_artnet_input_num_ports, tvb, - offset, 2, num_ports); - offset += 2; - - hi = proto_tree_add_item(tree, - hf_artnet_input_input, - tvb, - offset, - ARTNET_INPUT_INPUT_LENGTH, - FALSE); - - si = proto_item_add_subtree(hi, ett_artnet); - - input = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(si, hf_artnet_input_input_1, tvb, - offset, 1, input); - offset += 1; - - input = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(si, hf_artnet_input_input_2, tvb, - offset, 1, input); - offset += 1; - - input = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(si, hf_artnet_input_input_3, tvb, - offset, 1, input); - offset += 1; - - input = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(si, hf_artnet_input_input_4, tvb, - offset, 1, input); - offset += 1; - - return offset; -} - -static guint -dissect_artnet_video_setup(tvbuff_t *tvb, guint offset, proto_tree *tree ) { - guint32 size; - guint8 control,font_height, last_font,first_font; - - proto_tree_add_item(tree, hf_artnet_filler, tvb, - offset, 4, FALSE); - offset += 4; - - control = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(tree, hf_artnet_video_setup_control, tvb, - offset, 1, control); - offset += 1; - - font_height = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(tree, hf_artnet_video_setup_font_height, tvb, - offset, 1, font_height); - offset += 1; - - first_font = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(tree, hf_artnet_video_setup_first_font, tvb, - offset, 1, first_font); - offset += 1; - - last_font = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(tree, hf_artnet_video_setup_last_font, tvb, - offset, 1, last_font); - offset += 1; - - proto_tree_add_item(tree, hf_artnet_video_setup_win_font_name, - tvb, offset, 64, FALSE); - offset += 64; - - size = last_font * font_height; - - proto_tree_add_item(tree, hf_artnet_video_setup_font_data, tvb, - offset, size, FALSE ); - - offset += size; - - return offset; -} - -static guint -dissect_artnet_video_palette(tvbuff_t *tvb, guint offset, proto_tree *tree) -{ - proto_tree_add_item(tree, hf_artnet_filler, tvb, - offset, 2, FALSE); - offset += 2; - - proto_tree_add_item(tree, hf_artnet_video_palette_colour_red, tvb, - offset, 17, FALSE ); - offset += 17; - - proto_tree_add_item(tree, hf_artnet_video_palette_colour_green, tvb, - offset, 17, FALSE ); - offset += 17; - - proto_tree_add_item(tree, hf_artnet_video_palette_colour_blue, tvb, - offset, 17, FALSE ); - offset += 17; - - return offset; -} - -static guint -dissect_artnet_video_data(tvbuff_t *tvb, guint offset, proto_tree *tree) { - guint8 len_x, len_y; - guint32 size; - - proto_tree_add_item(tree, hf_artnet_filler, tvb, - offset, 2, FALSE); - offset += 2; - - proto_tree_add_item(tree, hf_artnet_video_data_pos_x, tvb, - offset, 1, FALSE); - offset += 1; - - proto_tree_add_item(tree, hf_artnet_video_data_pos_y, tvb, - offset, 1, FALSE); - offset += 1; - - len_x = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(tree, hf_artnet_video_data_len_x, tvb, - offset, 1, len_x); - offset += 1; - - len_y = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(tree, hf_artnet_video_data_len_y, tvb, - offset, 1, len_y); - offset += 1; - - size = len_x * len_y * 2; - - proto_tree_add_item(tree, hf_artnet_video_data_data, tvb, - offset, size, FALSE ); - - offset += size; - - return offset; -} - -static guint -dissect_artnet_firmware_master(tvbuff_t *tvb, guint offset, proto_tree *tree ) { - guint8 type,block_id; - guint32 length; - - proto_tree_add_item(tree, hf_artnet_filler, tvb, - offset, 2, FALSE); - offset += 2; - - type = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(tree, hf_artnet_firmware_master_type, tvb, - offset, 1, type); - offset += 1; - - block_id = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(tree, hf_artnet_firmware_master_block_id, tvb, - offset, 1, block_id); - offset += 1; - - length = tvb_get_ntohl(tvb, offset); - proto_tree_add_uint(tree, hf_artnet_firmware_master_length, tvb, - offset, 4, length); - offset += 4; - - proto_tree_add_item(tree, hf_artnet_spare, tvb, - offset, 20, FALSE ); - - offset += 20; - - proto_tree_add_item(tree, hf_artnet_firmware_master_data, tvb, - offset, 1024, FALSE ); - - offset += 1024; - - return offset; -} - -static guint -dissect_artnet_firmware_reply(tvbuff_t *tvb, guint offset, proto_tree *tree) { - guint8 type; - - proto_tree_add_item(tree, hf_artnet_filler, tvb, - offset, 2, FALSE); - offset += 2; - - type = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(tree, hf_artnet_firmware_reply_type, tvb, - offset, 1, type); - offset += 1; - - proto_tree_add_item(tree, hf_artnet_spare, tvb, - offset, 21, FALSE ); - - offset += 21; - - return offset; -} - -static guint -dissect_artnet_tod_request(tvbuff_t *tvb, guint offset, proto_tree *tree) -{ - guint8 ad_count; - - proto_tree_add_item(tree, hf_artnet_filler, tvb, - offset, 2, FALSE); - offset += 2; - - proto_tree_add_item(tree, hf_artnet_spare, tvb, - offset, 8, FALSE); - offset += 8; - - proto_tree_add_item(tree, hf_artnet_tod_request_command, tvb, - offset, 1, FALSE); - offset += 1; - - ad_count = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(tree, hf_artnet_tod_request_ad_count, tvb, - offset, 1, ad_count); - offset += 1; - - proto_tree_add_item(tree, hf_artnet_tod_request_address, tvb, - offset, ad_count, FALSE); - offset += ad_count; - - return offset; -} - -static guint -dissect_artnet_tod_data(tvbuff_t *tvb, guint offset, proto_tree *tree) -{ - guint8 i,uid_count; - - proto_tree_add_item(tree, hf_artnet_filler, tvb, - offset, 1, FALSE); - offset += 1; - - proto_tree_add_item(tree, hf_artnet_tod_data_port, tvb, - offset, 1, FALSE); - offset += 1; - - proto_tree_add_item(tree, hf_artnet_spare, tvb, - offset, 8, FALSE); - offset += 8; - - proto_tree_add_item(tree, hf_artnet_tod_data_command_response, tvb, - offset, 1, FALSE); - offset += 1; - - proto_tree_add_item(tree, hf_artnet_tod_data_address, tvb, - offset, 1, FALSE); - offset += 1; - - proto_tree_add_item(tree, hf_artnet_tod_data_uid_total, tvb, - offset, 2, FALSE); - offset += 2; - - proto_tree_add_item(tree, hf_artnet_tod_data_block_count, tvb, - offset, 1, FALSE); - offset += 1; - - uid_count = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(tree, hf_artnet_tod_data_uid_count, tvb, - offset, 1, uid_count); - offset += 1; - - for( i = 0; i < uid_count; i++) - { - proto_tree_add_item(tree, hf_artnet_tod_data_tod, tvb, - offset, 6, FALSE); - offset += 6; - } - - return offset; -} - -static guint -dissect_artnet_tod_control(tvbuff_t *tvb, guint offset, proto_tree *tree) -{ - proto_tree_add_item(tree, hf_artnet_filler, tvb, - offset, 2, FALSE); - offset += 2; - - proto_tree_add_item(tree, hf_artnet_spare, tvb, - offset, 8, FALSE); - offset += 8; - - proto_tree_add_item(tree, hf_artnet_tod_control_command, tvb, - offset, 1, FALSE); - offset += 1; - - proto_tree_add_item(tree, hf_artnet_tod_control_address, tvb, - offset, 1, FALSE); - offset += 1; - - return offset; -} - -static guint -dissect_artnet_rdm(tvbuff_t *tvb, guint offset, proto_tree *tree, packet_info *pinfo) -{ - guint size; - gboolean save_info; - tvbuff_t *next_tvb = NULL; - - proto_tree_add_item(tree, hf_artnet_filler, tvb, - offset, 2, FALSE); - offset += 2; - - proto_tree_add_item(tree, hf_artnet_spare, tvb, - offset, 8, FALSE); - offset += 8; - - proto_tree_add_item(tree, hf_artnet_rdm_command, tvb, - offset, 1, FALSE); - offset += 1; - - proto_tree_add_item(tree, hf_artnet_rdm_address, tvb, - offset, 1, FALSE); - offset += 1; - - size = tvb_reported_length_remaining(tvb, offset); - - save_info=col_get_writable(pinfo->cinfo); - col_set_writable(pinfo->cinfo, FALSE); - - if (!next_tvb) - next_tvb = tvb_new_subset(tvb, offset, -1, -1); - - call_dissector(rdm_handle, next_tvb, pinfo, tree); - - col_set_writable(pinfo->cinfo, save_info); - - size = tvb_reported_length_remaining(tvb, offset) - size; - - return offset + size; -} - -static guint -dissect_artnet_ip_prog(tvbuff_t *tvb, guint offset, proto_tree *tree) { - guint8 command; - proto_tree *flags_tree,*flags_item; - - proto_tree_add_item(tree, hf_artnet_filler, tvb, - offset, 2, FALSE); - offset += 2; - - command = tvb_get_guint8(tvb, offset); - flags_item = proto_tree_add_uint(tree, hf_artnet_ip_prog_command, tvb, - offset, 1, command); - - flags_tree=proto_item_add_subtree(flags_item, ett_artnet); - proto_tree_add_item(flags_tree, hf_artnet_ip_prog_command_prog_port, tvb, offset, 1, FALSE); - proto_tree_add_item(flags_tree, hf_artnet_ip_prog_command_prog_sm, tvb, offset, 1, FALSE); - proto_tree_add_item(flags_tree, hf_artnet_ip_prog_command_prog_ip, tvb, offset, 1, FALSE); - proto_tree_add_item(flags_tree, hf_artnet_ip_prog_command_reset, tvb, offset, 1, FALSE); - proto_tree_add_item(flags_tree, hf_artnet_ip_prog_command_unused, tvb, offset, 1, FALSE); - proto_tree_add_item(flags_tree, hf_artnet_ip_prog_command_prog_enable, tvb, offset, 1, FALSE); - - offset += 1; - - proto_tree_add_item(tree, hf_artnet_filler, tvb, - offset, 1, FALSE); - offset += 1; - - proto_tree_add_item(tree, hf_artnet_ip_prog_ip, tvb, - offset, 4, FALSE); - offset += 4; - - proto_tree_add_item(tree, hf_artnet_ip_prog_sm, tvb, - offset, 4, FALSE); - offset += 4; - - proto_tree_add_item(tree, hf_artnet_ip_prog_port, tvb, - offset, 2, FALSE); - offset += 2; - - proto_tree_add_item(tree, hf_artnet_spare, tvb, - offset, 8, FALSE); - offset += 8; - - return offset; -} - -static guint -dissect_artnet_ip_prog_reply(tvbuff_t *tvb, guint offset, proto_tree *tree) -{ - proto_tree_add_item(tree, hf_artnet_filler, tvb, - offset, 4, FALSE); - offset += 4; - - proto_tree_add_item(tree, hf_artnet_ip_prog_reply_ip, tvb, - offset, 4, FALSE); - offset += 4; - - proto_tree_add_item(tree, hf_artnet_ip_prog_reply_sm, tvb, - offset, 4, FALSE); - offset += 4; - - proto_tree_add_item(tree, hf_artnet_ip_prog_reply_port, tvb, - offset, 2, FALSE); - offset += 2; - - proto_tree_add_item(tree, hf_artnet_spare, tvb, - offset, 8, FALSE); - offset += 8; - - return offset; -} - -static guint -dissect_artnet_poll_server_reply(tvbuff_t *tvb, guint offset, proto_tree *tree) -{ - /* no spec released for this packet at the moment */ - proto_tree_add_item(tree, hf_artnet_filler, tvb, - offset, 182, FALSE); - offset += 182; - - return offset; -} - - -static void -dissect_artnet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - gint offset = 0; - guint size; - guint16 opcode; - proto_tree *ti,*hi,*si,*artnet_tree=NULL,*artnet_header_tree=NULL; - - /* Set the protocol column */ - if(check_col(pinfo->cinfo,COL_PROTOCOL)){ - col_set_str(pinfo->cinfo,COL_PROTOCOL,"ARTNET"); - } - - /* Clear out stuff in the info column */ - if(check_col(pinfo->cinfo,COL_INFO)){ - col_clear(pinfo->cinfo,COL_INFO); - } - - if (tree) { - ti = proto_tree_add_item(tree, proto_artnet, tvb, offset, -1, FALSE); - artnet_tree = proto_item_add_subtree(ti, ett_artnet); - - hi = proto_tree_add_item(artnet_tree, - hf_artnet_header, - tvb, - offset, - ARTNET_HEADER_LENGTH , - FALSE); - - artnet_header_tree = proto_item_add_subtree(hi, ett_artnet); - } - - if (check_col(pinfo->cinfo, COL_INFO)) { - col_append_fstr(pinfo->cinfo, COL_INFO, "%s", - tvb_get_ptr(tvb, offset, 8)); - } - if( tree ){ - proto_tree_add_item(artnet_header_tree, hf_artnet_header_id, - tvb, offset, 8, FALSE); - } - offset += 8; - - opcode = tvb_get_letohs(tvb, offset); - /* set the info column */ - if (check_col(pinfo->cinfo, COL_INFO)) { - col_add_fstr(pinfo->cinfo, COL_INFO, "%s", - val_to_str(opcode, artnet_opcode_vals, "Unknown (0x%04x)")); - } - - if( tree ){ - proto_tree_add_uint(artnet_header_tree, hf_artnet_header_opcode, tvb, - offset, 2, opcode); - } - offset += 2; - - if( opcode != ARTNET_OP_POLL_REPLY && opcode != ARTNET_OP_POLL_SERVER_REPLY ) { - if( tree ){ - proto_tree_add_item(artnet_header_tree, hf_artnet_header_protver, tvb, - offset, 2, FALSE); - - proto_item_set_len(artnet_header_tree, ARTNET_HEADER_LENGTH+2 ); - } - offset += 2; - } - - switch( opcode ) { - case ARTNET_OP_POLL: - if (tree) { - hi = proto_tree_add_item(artnet_tree, - hf_artnet_poll, - tvb, - offset, - ARTNET_POLL_LENGTH, - FALSE); - - si = proto_item_add_subtree(hi, ett_artnet); - - size = dissect_artnet_poll( tvb, offset, si ); - size -= offset; - - proto_item_set_len(si, size); - } - break; - - case ARTNET_OP_POLL_REPLY: - if (tree) { - hi = proto_tree_add_item(artnet_tree, - hf_artnet_poll_reply, - tvb, - offset, - ARTNET_POLL_REPLY_LENGTH, - FALSE); - - si = proto_item_add_subtree(hi, ett_artnet); - - size = dissect_artnet_poll_reply( tvb, offset, si); - size -= offset; - - proto_item_set_len(si, size); - } - break; - - case ARTNET_OP_OUTPUT: - if (tree) { - hi = proto_tree_add_item(artnet_tree, - hf_artnet_output, - tvb, - offset, - ARTNET_OUTPUT_LENGTH, - FALSE); - - si = proto_item_add_subtree(hi, ett_artnet); - - size = dissect_artnet_output( tvb, offset, si ); - size -= offset; - - proto_item_set_len(si, size); - } - break; - - case ARTNET_OP_ADDRESS: - if (tree) { - hi = proto_tree_add_item(artnet_tree, - hf_artnet_address, - tvb, - offset, - ARTNET_POLL_REPLY_LENGTH, - FALSE); - - si = proto_item_add_subtree(hi, ett_artnet); - - size = dissect_artnet_address( tvb, offset, si ); - size -= offset; - - proto_item_set_len(si, size); - } - break; - - case ARTNET_OP_INPUT: - if (tree) { - hi = proto_tree_add_item(artnet_tree, - hf_artnet_input, - tvb, - offset, - ARTNET_INPUT_LENGTH, - FALSE); - - si = proto_item_add_subtree(hi, ett_artnet); - - size = dissect_artnet_input( tvb, offset, si ); - size -= offset; - - proto_item_set_len(si, size); - } - break; - - case ARTNET_OP_VIDEO_SETUP: - if (tree) { - hi = proto_tree_add_item(artnet_tree, - hf_artnet_input, - tvb, - offset, - ARTNET_VIDEO_SETUP_LENGTH, - FALSE); - - si = proto_item_add_subtree(hi, ett_artnet); - - size = dissect_artnet_video_setup( tvb, offset, si ); - size -= offset; - - proto_item_set_len(si, size); - } - break; - - case ARTNET_OP_VIDEO_PALETTE: - if (tree) { - hi = proto_tree_add_item(artnet_tree, - hf_artnet_input, - tvb, - offset, - ARTNET_VIDEO_PALETTE_LENGTH, - FALSE); - - si = proto_item_add_subtree(hi, ett_artnet); - - size = dissect_artnet_video_palette( tvb, offset, si ); - size -= offset; - - proto_item_set_len(si, size); - } - break; - - case ARTNET_OP_VIDEO_DATA: - if (tree) { - hi = proto_tree_add_item(artnet_tree, - hf_artnet_input, - tvb, - offset, - ARTNET_VIDEO_DATA_LENGTH, - FALSE); - - si = proto_item_add_subtree(hi, ett_artnet); - - size = dissect_artnet_video_data( tvb, offset, si ); - size -= offset; - - proto_item_set_len(si, size); - } - break; - - case ARTNET_OP_FIRMWARE_MASTER: - if (tree) { - hi = proto_tree_add_item(artnet_tree, - hf_artnet_firmware_master, - tvb, - offset, - ARTNET_FIRMWARE_MASTER_LENGTH, - FALSE); - - si = proto_item_add_subtree(hi, ett_artnet); - - size = dissect_artnet_firmware_master( tvb, offset, si ); - size -= offset; - - proto_item_set_len(si, size); - } - break; - - case ARTNET_OP_FIRMWARE_REPLY: - if (tree) { - hi = proto_tree_add_item(artnet_tree, - hf_artnet_firmware_reply, - tvb, - offset, - ARTNET_FIRMWARE_REPLY_LENGTH, - FALSE); - - si = proto_item_add_subtree(hi, ett_artnet); - - size = dissect_artnet_firmware_reply( tvb, offset, si ); - size -= offset; - - proto_item_set_len(si, size); - } - break; - - case ARTNET_OP_TOD_REQUEST: - if (tree) { - hi = proto_tree_add_item(artnet_tree, - hf_artnet_tod_request, - tvb, - offset, - 0, - FALSE); - - si = proto_item_add_subtree(hi, ett_artnet); - - size = dissect_artnet_tod_request( tvb, offset, si ); - size -= offset; - - proto_item_set_len(si, size); - } - break; - - case ARTNET_OP_TOD_DATA: - if (tree) { - hi = proto_tree_add_item(artnet_tree, - hf_artnet_tod_data, - tvb, - offset, - 0, - FALSE); - - si = proto_item_add_subtree(hi, ett_artnet ); - - size = dissect_artnet_tod_data( tvb, offset, si ); - size -= offset; - - proto_item_set_len(si, size ); - } - break; - - case ARTNET_OP_TOD_CONTROL: - if (tree){ - hi = proto_tree_add_item(artnet_tree, - hf_artnet_tod_control, - tvb, - offset, - 0, - FALSE ); - si = proto_item_add_subtree(hi, ett_artnet ); - - size = dissect_artnet_tod_control( tvb, offset, si ); - size -= offset; - - proto_item_set_len(si, size ); - } - break; - - case ARTNET_OP_RDM: - if (tree) { - hi = proto_tree_add_item(artnet_tree, - hf_artnet_rdm, - tvb, - offset, - 0, - FALSE); - si = proto_item_add_subtree(hi,ett_artnet); - - size = dissect_artnet_rdm( tvb, offset, si, pinfo ); - size -= offset; - - proto_item_set_len( si, size ); - } - break; - - case ARTNET_OP_IP_PROG: - if (tree) { - hi = proto_tree_add_item(artnet_tree, - hf_artnet_ip_prog, - tvb, - offset, - 0, - FALSE); - si = proto_item_add_subtree(hi, ett_artnet ); - - size = dissect_artnet_ip_prog( tvb, offset, si); - size -= offset; - - proto_item_set_len(si, size ); - } - break; - - case ARTNET_OP_IP_PROG_REPLY: - if (tree) { - hi = proto_tree_add_item(artnet_tree, - hf_artnet_ip_prog_reply, - tvb, - offset, - 0, - FALSE); - si = proto_item_add_subtree(hi, ett_artnet ); - - size = dissect_artnet_ip_prog_reply( tvb, offset, si ); - size -= offset; - - proto_item_set_len(si, size ); - } - break; - - case ARTNET_OP_POLL_SERVER_REPLY: - if (tree) { - hi = proto_tree_add_item(artnet_tree, - hf_artnet_poll_server_reply, - tvb, - offset, - 0, - FALSE ); - si = proto_item_add_subtree(hi, ett_artnet ); - - size = dissect_artnet_poll_server_reply( tvb, offset, si ); - size -= offset; - - proto_item_set_len(si, size ); - } - break; - - default: - if (tree) { - proto_tree_add_text(artnet_tree, tvb, offset, -1, - "Data (%d bytes)", tvb_reported_length_remaining(tvb, offset)); - } - break; - } - - - -} - -void -proto_register_artnet(void) { - static hf_register_info hf[] = { - - /* General */ - - { &hf_artnet_filler, - { "filler", - "artnet.filler", - FT_BYTES, BASE_HEX, NULL, 0x0, - "filler", HFILL }}, - - { &hf_artnet_spare, - { "spare", - "artnet.spare", - FT_BYTES, BASE_HEX, NULL, 0x0, - "spare", HFILL }}, - - /* header */ - - { &hf_artnet_header, - { "Descriptor Header", - "artnet.header", - FT_NONE, BASE_NONE, NULL, 0, - "Art-Net Descriptor Header", HFILL }}, - - { &hf_artnet_header_id, - { "ID", - "artnet.header.id", - FT_STRING, BASE_DEC, NULL, 0x0, - "ArtNET ID", HFILL }}, - - { &hf_artnet_header_opcode, - { "Opcode", - "artnet.header.opcode", - FT_UINT16, BASE_HEX, VALS(artnet_opcode_vals), 0x0, - "Art-Net message type", HFILL }}, - - { &hf_artnet_header_protver, - { "ProVer", - "artnet.header.protver", - FT_UINT16, BASE_DEC, NULL, 0x0, - "Protcol revision number", HFILL }}, - - /* ArtPoll */ - - { &hf_artnet_poll, - { "ArtPoll packet", - "artnet.poll", - FT_NONE, BASE_NONE, NULL, 0, - "Art-Net ArtPoll packet", HFILL }}, - - { &hf_artnet_poll_talktome, - { "TalkToMe", - "artnet.poll.talktome", - FT_UINT8, BASE_HEX, NULL, 0x0, - "TalkToMe", HFILL }}, - - { &hf_artnet_poll_talktome_reply_dest, - { "Reply destination", - "artnet.poll.talktome_reply_dest", - FT_UINT8, BASE_HEX, NULL, 0x01, - "Reply destination", HFILL }}, - - { &hf_artnet_poll_talktome_reply_type, - { "Reply type", - "artnet.poll.talktome_reply_type", - FT_UINT8, BASE_HEX, NULL, 0x02, - "Reply type", HFILL }}, - - { &hf_artnet_poll_talktome_unused, - { "unused", - "artnet.poll.talktome_unused", - FT_UINT8, BASE_HEX, NULL, 0xfc, - "unused", HFILL }}, - - /* ArtPollReply */ - - { &hf_artnet_poll_reply, - { "ArtPollReply packet", - "artnet.poll_reply", - FT_NONE, BASE_NONE, NULL, 0, - "Art-Net ArtPollReply packet", HFILL }}, - - { &hf_artnet_poll_reply_ip_address, - { "IP Address", - "artnet.poll_reply.ip_address", - FT_IPv4, BASE_DEC, NULL, 0x0, - "IP Address", HFILL }}, - - { &hf_artnet_poll_reply_port_nr, - { "Port number", - "artnet.poll_reply.port_nr", - FT_UINT16, BASE_DEC, NULL, 0x0, - "Port Number", HFILL }}, - - { &hf_artnet_poll_reply_versinfo, - { "Version Info", - "artnet.poll_reply.versinfo", - FT_UINT16, BASE_HEX, NULL, 0x0, - "Version info", HFILL }}, - - { &hf_artnet_poll_reply_subswitch, - { "SubSwitch", - "artnet.poll_reply.subswitch", - FT_UINT16, BASE_HEX, NULL, 0x0, - "Subswitch version", HFILL }}, - - { &hf_artnet_poll_reply_oem, - { "Oem", - "artnet.poll_reply.oem", - FT_UINT16, BASE_HEX, VALS(artnet_oem_code_vals), 0x0, - "OEM", HFILL }}, - - { &hf_artnet_poll_reply_ubea_version, - { "UBEA Version", - "artnet.poll_reply.ubea_version", - FT_UINT8, BASE_DEC, NULL, 0x0, - "UBEA version number", HFILL }}, - - { &hf_artnet_poll_reply_status, - { "Status", - "artnet.poll_reply.status", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Status", HFILL }}, - - { &hf_artnet_poll_reply_esta_man, - { "ESTA Code", - "artnet.poll_reply.esta_man", - FT_UINT16, BASE_HEX, VALS(artnet_esta_man_vals), 0x0, - "ESTA Code", HFILL }}, - - { &hf_artnet_poll_reply_short_name, - { "Short Name", - "artnet.poll_reply.short_name", - FT_STRING, BASE_DEC, NULL, 0x0, - "Short Name", HFILL }}, - - { &hf_artnet_poll_reply_long_name, - { "Long Name", - "artnet.poll_reply.long_name", - FT_STRING, BASE_DEC, NULL, 0x0, - "Long Name", HFILL }}, - - { &hf_artnet_poll_reply_node_report, - { "Node Report", - "artnet.poll_reply.node_report", - FT_STRING, BASE_DEC, NULL, 0x0, - "Node Report", HFILL }}, - - { &hf_artnet_poll_reply_port_info, - { "Port Info", - "artnet.poll_reply.port_info", - FT_NONE, BASE_NONE, NULL, 0, - "Port Info", HFILL }}, - - { &hf_artnet_poll_reply_num_ports, - { "Number of Ports", - "artnet.poll_reply.num_ports", - FT_UINT16, BASE_DEC, NULL, 0x0, - "Number of Ports", HFILL }}, - - { &hf_artnet_poll_reply_port_types, - { "Port Types", - "artnet.poll_reply.port_types", - FT_NONE, BASE_NONE, NULL, 0, - "Port Types", HFILL }}, - - { &hf_artnet_poll_reply_port_types_1, - { "Type of Port 1", - "artnet.poll_reply.port_types_1", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Type of Port 1", HFILL }}, - - { &hf_artnet_poll_reply_port_types_2, - { "Type of Port 2", - "artnet.poll_reply.port_types_2", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Type of Port 2", HFILL }}, - - { &hf_artnet_poll_reply_port_types_3, - { "Type of Port 3", - "artnet.poll_reply.port_types_3", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Type of Port 3", HFILL }}, - - { &hf_artnet_poll_reply_port_types_4, - { "Type of Port 4", - "artnet.poll_reply.port_types_4", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Type of Port 4", HFILL }}, - - { &hf_artnet_poll_reply_good_input, - { "Input Status", - "artnet.poll_reply.good_input", - FT_NONE, BASE_NONE, NULL, 0, - "Input Status", HFILL }}, - - { &hf_artnet_poll_reply_good_input_1, - { "Input status of Port 1", - "artnet.poll_reply.good_input_1", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Input status of Port 1", HFILL }}, - - { &hf_artnet_poll_reply_good_input_2, - { "Input status of Port 2", - "artnet.poll_reply.good_input_2", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Input status of Port 2", HFILL }}, - - { &hf_artnet_poll_reply_good_input_3, - { "Input status of Port 3", - "artnet.poll_reply.good_input_3", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Input status of Port 3", HFILL }}, - - { &hf_artnet_poll_reply_good_input_4, - { "Input status of Port 4", - "artnet.poll_reply.good_input_4", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Input status of Port 4", HFILL }}, - - { &hf_artnet_poll_reply_good_output, - { "Output Status", - "artnet.poll_reply.good_output", - FT_NONE, BASE_NONE, NULL, 0, - "Port output status", HFILL }}, - - { &hf_artnet_poll_reply_good_output_1, - { "Output status of Port 1", - "artnet.poll_reply.good_output_1", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Output status of Port 1", HFILL }}, - - { &hf_artnet_poll_reply_good_output_2, - { "Output status of Port 2", - "artnet.poll_reply.good_output_2", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Output status of Port 2", HFILL }}, - - { &hf_artnet_poll_reply_good_output_3, - { "Output status of Port 3", - "artnet.poll_reply.good_output_3", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Output status of Port 3", HFILL }}, - - { &hf_artnet_poll_reply_good_output_4, - { "Output status of Port 4", - "artnet.poll_reply.good_output_4", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Outpus status of Port 4", HFILL }}, - - { &hf_artnet_poll_reply_swin, - { "Input Subswitch", - "artnet.poll_reply.swin", - FT_NONE, BASE_NONE, NULL, 0, - "Input Subswitch", HFILL }}, - - { &hf_artnet_poll_reply_swin_1, - { "Input Subswitch of Port 1", - "artnet.poll_reply.swin_1", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Input Subswitch of Port 1", HFILL }}, - - { &hf_artnet_poll_reply_swin_2, - { "Input Subswitch of Port 2", - "artnet.poll_reply.swin_2", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Input Subswitch of Port 2", HFILL }}, - - { &hf_artnet_poll_reply_swin_3, - { "Input Subswitch of Port 3", - "artnet.poll_reply.swin_3", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Input Subswitch of Port 3", HFILL }}, - - { &hf_artnet_poll_reply_swin_4, - { "Input Subswitch of Port 4", - "artnet.poll_reply.swin_4", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Input Subswitch of Port 4", HFILL }}, - - { &hf_artnet_poll_reply_swout, - { "Output Subswitch", - "artnet.poll_reply.swout", - FT_NONE, BASE_NONE, NULL, 0, - "Output Subswitch", HFILL }}, - - { &hf_artnet_poll_reply_swout_1, - { "Output Subswitch of Port 1", - "artnet.poll_reply.swout_1", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Output Subswitch of Port 1", HFILL }}, - - { &hf_artnet_poll_reply_swout_2, - { "Output Subswitch of Port 2", - "artnet.poll_reply.swout_2", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Output Subswitch of Port 2", HFILL }}, - - { &hf_artnet_poll_reply_swout_3, - { "Output Subswitch of Port 3", - "artnet.poll_reply.swout_3", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Output Subswitch of Port 3", HFILL }}, - - { &hf_artnet_poll_reply_swout_4, - { "Output Subswitch of Port 4", - "artnet.poll_reply.swout_4", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Ouput Subswitch of Port 4", HFILL }}, - - { &hf_artnet_poll_reply_swvideo, - { "SwVideo", - "artnet.poll_reply.swvideo", - FT_UINT8, BASE_HEX, NULL, 0x0, - "SwVideo", HFILL }}, - - { &hf_artnet_poll_reply_swmacro, - { "SwMacro", - "artnet.poll_reply.swmacro", - FT_UINT8, BASE_HEX, NULL, 0x0, - "SwMacro", HFILL }}, - - { &hf_artnet_poll_reply_swremote, - { "SwRemote", - "artnet.poll_reply.swremote", - FT_UINT8, BASE_HEX, NULL, 0x0, - "SwRemote", HFILL }}, - - { &hf_artnet_poll_reply_mac, - { "MAC", - "artnet.poll_reply.mac", - FT_ETHER, BASE_HEX, NULL, 0x0, - "MAC", HFILL }}, - - /* ArtOutput */ - - { &hf_artnet_output, - { "ArtDMX packet", - "artnet.output", - FT_NONE, BASE_NONE, NULL, 0, - "Art-Net ArtDMX packet", HFILL }}, - - { &hf_artnet_output_sequence, - { "Sequence", - "artnet.output.sequence", - FT_UINT8, BASE_DEC, NULL, 0x0, - "Sequence", HFILL }}, - - { &hf_artnet_output_physical, - { "Physical", - "artnet.output.physical", - FT_UINT8, BASE_DEC, NULL, 0x0, - "Physical", HFILL }}, - - { &hf_artnet_output_universe, - { "Universe", - "artnet.output.universe", - FT_UINT16, BASE_DEC, NULL, 0x0, - "Universe", HFILL }}, - - { &hf_artnet_output_length, - { "Length", - "artnet.output.length", - FT_UINT16, BASE_DEC, NULL, 0x0, - "Length", HFILL }}, - - { &hf_artnet_output_data, - { "DMX data", - "artnet.output.data", - FT_NONE, BASE_DEC, NULL, 0x0, - "DMX Data", HFILL }}, - - { &hf_artnet_output_data_filter, - { "DMX data filter", - "artnet.output.data_filter", - FT_BYTES, BASE_DEC, NULL, 0x0, - "DMX Data Filter", HFILL }}, - - { &hf_artnet_output_dmx_data, - { "DMX data", - "artnet.output.dmx_data", - FT_NONE, BASE_DEC, NULL, 0x0, - "DMX Data", HFILL }}, - - /* ArtAddress */ - - { &hf_artnet_address, - { "ArtAddress packet", - "artnet.address", - FT_NONE, BASE_NONE, NULL, 0, - "Art-Net ArtAddress packet", HFILL }}, - - { &hf_artnet_address_short_name, - { "Short Name", - "artnet.address.short_name", - FT_STRING, BASE_DEC, NULL, 0x0, - "Short Name", HFILL }}, - - { &hf_artnet_address_long_name, - { "Long Name", - "artnet.address.long_name", - FT_STRING, BASE_DEC, NULL, 0x0, - "Long Name", HFILL }}, - - { &hf_artnet_address_swin, - { "Input Subswitch", - "artnet.address.swin", - FT_NONE, BASE_NONE, NULL, 0, - "Input Subswitch", HFILL }}, - - { &hf_artnet_address_swin_1, - { "Input Subswitch of Port 1", - "artnet.address.swin_1", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Input Subswitch of Port 1", HFILL }}, - - { &hf_artnet_address_swin_2, - { "Input Subswitch of Port 2", - "artnet.address.swin_2", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Input Subswitch of Port 2", HFILL }}, - - { &hf_artnet_address_swin_3, - { "Input Subswitch of Port 3", - "artnet.address.swin_3", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Input Subswitch of Port 3", HFILL }}, - - { &hf_artnet_address_swin_4, - { "Input Subswitch of Port 4", - "artnet.address.swin_4", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Input Subswitch of Port 4", HFILL }}, - - { &hf_artnet_address_swout, - { "Output Subswitch", - "artnet.address.swout", - FT_NONE, BASE_NONE, NULL, 0, - "Output Subswitch", HFILL }}, - - { &hf_artnet_address_swout_1, - { "Output Subswitch of Port 1", - "artnet.address.swout_1", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Output Subswitch of Port 1", HFILL }}, - - { &hf_artnet_address_swout_2, - { "Output Subswitch of Port 2", - "artnet.address.swout_2", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Output Subswitch of Port 2", HFILL }}, - - { &hf_artnet_address_swout_3, - { "Output Subswitch of Port 3", - "artnet.address.swout_3", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Output Subswitch of Port 3", HFILL }}, - - { &hf_artnet_address_swout_4, - { "Output Subswitch of Port 4", - "artnet.address.swout_4", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Ouput Subswitch of Port 4", HFILL }}, - - { &hf_artnet_address_subswitch, - { "Subswitch", - "artnet.address.subswitch", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Subswitch", HFILL }}, - - { &hf_artnet_address_swvideo, - { "SwVideo", - "artnet.address.swvideo", - FT_UINT8, BASE_HEX, NULL, 0x0, - "SwVideo", HFILL }}, - - { &hf_artnet_address_command, - { "Command", - "artnet.address.command", - FT_UINT8, BASE_HEX, VALS(artnet_address_command_vals), 0x0, - "Command", HFILL }}, - - /* ArtInput */ - - { &hf_artnet_input, - { "ArtInput packet", - "artnet.input", - FT_NONE, BASE_NONE, NULL, 0, - "Art-Net ArtInput packet", HFILL }}, - - { &hf_artnet_input_num_ports, - { "Number of Ports", - "artnet.input.num_ports", - FT_UINT16, BASE_DEC, NULL, 0x0, - "Number of Ports", HFILL }}, - - { &hf_artnet_input_input, - { "Port Status", - "artnet.input.input", - FT_NONE, BASE_NONE, NULL, 0, - "Port Status", HFILL }}, - - { &hf_artnet_input_input_1, - { "Status of Port 1", - "artnet.input.input_1", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Status of Port 1", HFILL }}, - - { &hf_artnet_input_input_2, - { "Status of Port 2", - "artnet.input.input_2", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Status of Port 2", HFILL }}, - - { &hf_artnet_input_input_3, - { "Status of Port 3", - "artnet.input.input_3", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Status of Port 3", HFILL }}, - - { &hf_artnet_input_input_4, - { "Status of Port 4", - "artnet.input.input_4", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Status of Port 4", HFILL }}, - - /* ArtFirmwareMaster */ - - { &hf_artnet_firmware_master, - { "ArtFirmwareMaster packet", - "artnet.firmware_master", - FT_NONE, BASE_NONE, NULL, 0, - "Art-Net ArtFirmwareMaster packet", HFILL }}, - - { &hf_artnet_firmware_master_type, - { "Type", - "artnet.firmware_master.type", - FT_UINT8, BASE_HEX, VALS(artnet_firmware_master_type_vals), 0x0, - "Number of Ports", HFILL }}, - - { &hf_artnet_firmware_master_block_id, - { "Block ID", - "artnet.firmware_master.block_id", - FT_UINT8, BASE_DEC, NULL, 0x0, - "Block ID", HFILL }}, - - { &hf_artnet_firmware_master_length, - { "Length", - "artnet.firmware_master.length", - FT_UINT32, BASE_DEC, NULL, 0x0, - "Length", HFILL }}, - - { &hf_artnet_firmware_master_data, - { "data", - "artnet.firmware_master.data", - FT_BYTES, BASE_HEX, NULL, 0x0, - "data", HFILL }}, - - /* ArtFirmwareReply */ - - { &hf_artnet_firmware_reply, - { "ArtFirmwareReply packet", - "artnet.firmware_reply", - FT_NONE, BASE_NONE, NULL, 0, - "Art-Net ArtFirmwareReply packet", HFILL }}, - - { &hf_artnet_firmware_reply_type, - { "Type", - "artnet.firmware_reply.type", - FT_UINT8, BASE_HEX, VALS(artnet_firmware_reply_type_vals), 0x0, - "Number of Ports", HFILL }}, - - /* ArtVideoSetup */ - - { &hf_artnet_video_setup, - { "ArtVideoSetup packet", - "artnet.video_setup", - FT_NONE, BASE_NONE, NULL, 0, - "ArtNET ArtVideoSetup packet", HFILL }}, - - { &hf_artnet_video_setup_control, - { "control", - "artnet.video_setup.control", - FT_UINT8, BASE_HEX, NULL, 0x0, - "control", HFILL }}, - - { &hf_artnet_video_setup_font_height, - { "Font Height", - "artnet.video_setup.font_height", - FT_UINT8, BASE_DEC, NULL, 0x0, - "Font Height", HFILL }}, - - { &hf_artnet_video_setup_first_font, - { "First Font", - "artnet.video_setup.first_font", - FT_UINT8, BASE_DEC, NULL, 0x0, - "First Font", HFILL }}, - - { &hf_artnet_video_setup_last_font, - { "Last Font", - "artnet.video_setup.last_font", - FT_UINT8, BASE_DEC, NULL, 0x0, - "Last Font", HFILL }}, - - { &hf_artnet_video_setup_win_font_name, - { "Windows Font Name", - "artnet.video_setup.win_font_name", - FT_STRING, BASE_DEC, NULL, 0x0, - "Windows Font Name", HFILL }}, - - { &hf_artnet_video_setup_font_data, - { "Font data", - "artnet.video_setup.font_data", - FT_BYTES, BASE_HEX, NULL, 0x0, - "Font Date", HFILL }}, - - /* ArtVideoPalette */ - - { &hf_artnet_video_palette, - { "ArtVideoPalette packet", - "artnet.video_palette", - FT_NONE, BASE_NONE, NULL, 0, - "Art-Net ArtVideoPalette packet", HFILL }}, - - { &hf_artnet_video_palette_colour_red, - { "Colour Red", - "artnet.video_palette.colour_red", - FT_BYTES, BASE_HEX, NULL, 0x0, - "Colour Red", HFILL }}, - - { &hf_artnet_video_palette_colour_green, - { "Colour Green", - "artnet.video_palette.colour_green", - FT_BYTES, BASE_HEX, NULL, 0x0, - "Colour Green", HFILL }}, - - { &hf_artnet_video_palette_colour_blue, - { "Colour Blue", - "artnet.video_palette.colour_blue", - FT_BYTES, BASE_HEX, NULL, 0x0, - "Colour Blue", HFILL }}, - - /* ArtVideoData */ - - { &hf_artnet_video_data, - { "ArtVideoData packet", - "artnet.video_data", - FT_NONE, BASE_NONE, NULL, 0, - "Art-Net ArtVideoData packet", HFILL }}, - - { &hf_artnet_video_data_pos_x, - { "PosX", - "artnet.video_data.pos_x", - FT_UINT8, BASE_DEC, NULL, 0x0, - "PosX", HFILL }}, - - { &hf_artnet_video_data_pos_y, - { "PosY", - "artnet.video_data.pos_y", - FT_UINT8, BASE_DEC, NULL, 0x0, - "PosY", HFILL }}, - - { &hf_artnet_video_data_len_x, - { "LenX", - "artnet.video_data.len_x", - FT_UINT8, BASE_DEC, NULL, 0x0, - "LenX", HFILL }}, - - { &hf_artnet_video_data_len_y, - { "LenY", - "artnet.video_data.len_y", - FT_UINT8, BASE_DEC, NULL, 0x0, - "LenY", HFILL }}, - - { &hf_artnet_video_data_data, - { "Video Data", - "artnet.video_data.data", - FT_BYTES, BASE_HEX, NULL, 0x0, - "Video Data", HFILL }}, - - /* ArtTodRequest */ - { &hf_artnet_tod_request, - { "ArtTodRequest packet", - "artnet.tod_request", - FT_NONE, BASE_NONE, NULL, 0, - "Art-Net ArtTodRequest packet", HFILL }}, - - { &hf_artnet_tod_request_command, - { "Command", - "artnet.tod_request.command", - FT_UINT8, BASE_HEX, VALS(artnet_tod_request_command_vals), 0x0, - "Command", HFILL }}, - - { &hf_artnet_tod_request_ad_count, - { "Address Count", - "artnet.tod_request.ad_count", - FT_UINT8, BASE_DEC, NULL, 0x0, - "Address Count", HFILL }}, - - { &hf_artnet_tod_request_address, - { "Address", - "artnet.tod_request.address", - FT_BYTES, BASE_HEX, NULL, 0x0, - "Address", HFILL }}, - - /* ArtTodData */ - { &hf_artnet_tod_data, - { "ArtTodData packet", - "artnet.tod_data", - FT_NONE, BASE_NONE, NULL, 0, - "Art-Net ArtTodData packet", HFILL }}, - - { &hf_artnet_tod_data_port, - { "Port", - "artnet.tod_data.port", - FT_UINT8, BASE_DEC, NULL, 0x0, - "Port", HFILL }}, - - { &hf_artnet_tod_data_command_response, - { "Command Response", - "artnet.tod_data.command_response", - FT_UINT8, BASE_HEX, VALS(artnet_tod_data_command_vals), 0x0, - "Command Response", HFILL }}, - - { &hf_artnet_tod_data_address, - { "Address", - "artnet.tod_data.address", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Address", HFILL }}, - - { &hf_artnet_tod_data_uid_total, - { "UID Total", - "artnet.tod_data.uid_total", - FT_UINT16, BASE_DEC, NULL, 0x0, - "UID Total", HFILL }}, - - { &hf_artnet_tod_data_block_count, - { "Block Count", - "artnet.tod_data.block_count", - FT_UINT8, BASE_DEC, NULL, 0x0, - "Block Count", HFILL }}, - - { &hf_artnet_tod_data_uid_count, - { "UID Count", - "artnet.tod_data.uid_count", - FT_UINT8, BASE_DEC, NULL, 0x0, - "UID Count", HFILL }}, - - { &hf_artnet_tod_data_tod, - { "TOD", - "artnet.tod_data.tod", - FT_BYTES, BASE_HEX, NULL, 0x0, - "TOD", HFILL }}, - - /* ArtTodControl */ - { &hf_artnet_tod_control, - { "ArtTodControl packet", - "artner.tod_control", - FT_NONE, BASE_NONE, NULL, 0, - "Art-Net ArtTodControl packet", HFILL }}, - - { &hf_artnet_tod_control_command, - { "Command", - "artnet.tod_control.command", - FT_UINT8, BASE_HEX, VALS(artnet_tod_control_command_vals), 0x0, - "Command", HFILL }}, - - { &hf_artnet_tod_control_address, - { "Address", - "artnet.tod_request.address", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Address", HFILL }}, - - /* ArtRdm */ - { &hf_artnet_rdm, - { "ArtRdm packet", - "artnet.rdm", - FT_NONE, BASE_NONE, NULL, 0, - "Art-Net ArtRdm packet", HFILL }}, - - { &hf_artnet_rdm_command, - { "Command", - "artnet.rdm.command", - FT_UINT8, BASE_HEX, VALS(artnet_rdm_command_vals), 0x0, - "Command", HFILL }}, - - { &hf_artnet_rdm_address, - { "Address", - "artnet.rdm.address", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Address", HFILL }}, - - /* ArtIpProg */ - { &hf_artnet_ip_prog, - { "ArtIpProg packet", - "artnet.ip_prog", - FT_NONE, BASE_NONE, NULL, 0, - "ArtNET ArtIpProg packet", HFILL }}, - - { &hf_artnet_ip_prog_command, - { "Command", - "artnet.ip_prog.command", - FT_UINT8, BASE_HEX, NULL, 0x0, - "Command", HFILL }}, - - { &hf_artnet_ip_prog_command_prog_port, - { "Program Port", - "artnet.ip_prog.command_prog_port", - FT_UINT8, BASE_HEX, NULL, 0x01, - "Program Port", HFILL }}, - - { &hf_artnet_ip_prog_command_prog_sm, - { "Program Subnet Mask", - "artnet.ip_prog.command_prog_sm", - FT_UINT8, BASE_HEX, NULL, 0x02, - "Program Subnet Mask", HFILL }}, - - { &hf_artnet_ip_prog_command_prog_ip, - { "Program IP", - "artnet.ip_prog.command_prog_ip", - FT_UINT8, BASE_HEX, NULL, 0x04, - "Program IP", HFILL }}, - - { &hf_artnet_ip_prog_command_reset, - { "Reset parameters", - "artnet.ip_prog.command_reset", - FT_UINT8, BASE_HEX, NULL, 0x08, - "Reset parameters", HFILL }}, - - { &hf_artnet_ip_prog_command_unused, - { "Unused", - "artnet.ip_prog.command_unused", - FT_UINT8, BASE_HEX, NULL, 0x70, - "Unused", HFILL }}, - - { &hf_artnet_ip_prog_command_prog_enable, - { "Enable Programming", - "artnet.ip_prog.command_prog_enable", - FT_UINT8, BASE_HEX, NULL, 0x80, - "Enable Programming", HFILL }}, - - { &hf_artnet_ip_prog_ip, - { "IP Address", - "artnet.ip_prog.ip", - FT_IPv4, BASE_DEC, NULL, 0x0, - "IP Address", HFILL }}, - - { &hf_artnet_ip_prog_sm, - { "Subnet mask", - "artnet.ip_prog.sm", - FT_IPv4, BASE_DEC, NULL, 0x0, - "IP Subnet mask", HFILL }}, - - { &hf_artnet_ip_prog_port, - { "Port", - "artnet.ip_prog.port", - FT_UINT16, BASE_DEC, NULL, 0x0, - "Port", HFILL }}, - - /* ArtIpProgReply */ - { &hf_artnet_ip_prog_reply, - { "ArtIpProgReplay packet", - "artnet.ip_prog_reply", - FT_NONE, BASE_NONE, NULL, 0, - "Art-Net ArtIpProgReply packet", HFILL }}, - - { &hf_artnet_ip_prog_reply_ip, - { "IP Address", - "artnet.ip_prog_reply.ip", - FT_IPv4, BASE_DEC, NULL, 0x0, - "IP Address", HFILL }}, - - { &hf_artnet_ip_prog_reply_sm, - { "Subnet mask", - "artnet.ip_prog_reply.sm", - FT_IPv4, BASE_DEC, NULL, 0x0, - "IP Subnet mask", HFILL }}, - - { &hf_artnet_ip_prog_reply_port, - { "Port", - "artnet.ip_prog_reply.port", - FT_UINT16, BASE_DEC, NULL, 0x0, - "Port", HFILL }}, - - /* ArtPollServerReply */ - { &hf_artnet_poll_server_reply, - { "ArtPollServerReply packet", - "artnet.poll_server_reply", - FT_NONE, BASE_NONE, NULL, 0, - "Art-Net ArtPollServerReply packet", HFILL }} - - }; - - static gint *ett[] = { - &ett_artnet, - }; - - module_t *artnet_module; - - static enum_val_t disp_chan_val_types[] = { - { "pro", "Percent", 0 }, - { "hex", "Hexadecimal", 1 }, - { "dec", "Decimal", 2 }, - { NULL, NULL, 0 } - }; - - static enum_val_t disp_chan_nr_types[] = { - { "hex", "Hexadecimal", 0 }, - { "dec", "Decimal", 1 }, - { NULL, NULL, 0 } - }; - - static enum_val_t col_count[] = { - { "6", "6", 6 }, - { "10", "10", 10 }, - { "12", "12", 12 }, - { "16", "16", 16 }, - { "24", "24", 24 }, - { NULL, NULL, 0 } - }; - - proto_artnet = proto_register_protocol("Art-Net", - "ARTNET","artnet"); - proto_register_field_array(proto_artnet,hf,array_length(hf)); - proto_register_subtree_array(ett,array_length(ett)); - - artnet_module = prefs_register_protocol(proto_artnet, - proto_reg_handoff_artnet); - prefs_register_uint_preference(artnet_module, "udp_port", - "UDP Port", - "The UDP port on which " - "Art-Net " - "packets will be sent", - 10,&global_udp_port_artnet); - - prefs_register_enum_preference(artnet_module, "dmx_disp_chan_val_type", - "DMX Display channel value type", - "The way DMX values are displayed", - &global_disp_chan_val_type, - disp_chan_val_types, FALSE); - - prefs_register_enum_preference(artnet_module, "dmx_disp_chan_nr_type", - "DMX Display channel nr. type", - "The way DMX channel numbers are displayed", - &global_disp_chan_nr_type, - disp_chan_nr_types, FALSE); - - prefs_register_enum_preference(artnet_module, "dmx_disp_col_count", - "DMX Display Column Count", - "The number of columns for the DMX display", - &global_disp_col_count, - col_count, FALSE); -} - -/* The registration hand-off routing */ - -void -proto_reg_handoff_artnet(void) { - static gboolean artnet_initialized = FALSE; - static dissector_handle_t artnet_handle; - static guint udp_port_artnet; - - if(!artnet_initialized) { - artnet_handle = create_dissector_handle(dissect_artnet,proto_artnet); - rdm_handle = find_dissector("rdm"); - artnet_initialized = TRUE; - } else { - dissector_delete("udp.port",udp_port_artnet,artnet_handle); - } - - udp_port_artnet = global_udp_port_artnet; - - dissector_add("udp.port",global_udp_port_artnet,artnet_handle); -} diff --git a/plugins/artnet/plugin.rc.in b/plugins/artnet/plugin.rc.in deleted file mode 100644 index 568dc07b49..0000000000 --- a/plugins/artnet/plugin.rc.in +++ /dev/null @@ -1,34 +0,0 @@ -#include "winver.h" - -VS_VERSION_INFO VERSIONINFO - FILEVERSION @RC_MODULE_VERSION@ - PRODUCTVERSION @RC_VERSION@ - FILEFLAGSMASK 0x0L -#ifdef _DEBUG - FILEFLAGS VS_FF_DEBUG -#else - FILEFLAGS 0 -#endif - FILEOS VOS_NT_WINDOWS32 - FILETYPE VFT_DLL -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "CompanyName", "The Wireshark developer community, http://www.wireshark.org/\0" - VALUE "FileDescription", "@PACKAGE@ dissector\0" - VALUE "FileVersion", "@MODULE_VERSION@\0" - VALUE "InternalName", "@PACKAGE@ @MODULE_VERSION@\0" - VALUE "LegalCopyright", "Copyright © 1998 Gerald Combs <gerald@wireshark.org>, Gilbert Ramirez <gram@alumni.rice.edu> and others\0" - VALUE "OriginalFilename", "@PLUGIN_NAME@.dll\0" - VALUE "ProductName", "Wireshark\0" - VALUE "ProductVersion", "@VERSION@\0" - VALUE "Comments", "Build with @MSVC_VARIANT@\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END |