From: Rémi Denis-Courmont Date: Tue, 9 Feb 2010 21:43:30 +0000 (+0200) Subject: Remove Common Intermediate Language bindings X-Git-Tag: 1.1.0-ff~233 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=b3d6afc65d72e5ef1751c2e14642baf32cb335e3;p=vlc Remove Common Intermediate Language bindings --- diff --git a/bindings/cil/.gitignore b/bindings/cil/.gitignore deleted file mode 100644 index 7694d07bac..0000000000 --- a/bindings/cil/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -Doxyfile -INSTALL -admin -doc -config.status diff --git a/bindings/cil/AUTHORS b/bindings/cil/AUTHORS deleted file mode 100644 index 9cde9390a1..0000000000 --- a/bindings/cil/AUTHORS +++ /dev/null @@ -1 +0,0 @@ -Rémi Denis-Courmont diff --git a/bindings/cil/COPYING b/bindings/cil/COPYING deleted file mode 100644 index 1816039040..0000000000 --- a/bindings/cil/COPYING +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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. - - - Copyright (C) - - 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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. - - , 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/bindings/cil/ChangeLog b/bindings/cil/ChangeLog deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/bindings/cil/Doxyfile.in b/bindings/cil/Doxyfile.in deleted file mode 100644 index 95d4752c9d..0000000000 --- a/bindings/cil/Doxyfile.in +++ /dev/null @@ -1,1300 +0,0 @@ -# Doxyfile 1.5.3-20071008 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project -# -# All text after a hash (#) is considered a comment and will be ignored -# The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" ") - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file that -# follow. The default is UTF-8 which is also the encoding used for all text before -# the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into -# libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of -# possible encodings. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded -# by quotes) that should identify the project. - -PROJECT_NAME = @PACKAGE_NAME@ - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or -# if some version control system is used. - -PROJECT_NUMBER = @PACKAGE_VERSION@ - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. - -OUTPUT_DIRECTORY = doc - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create -# 4096 sub-directories (in 2 levels) under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of -# source files, where putting all generated files in the same directory would -# otherwise cause performance problems for the file system. - -CREATE_SUBDIRS = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, -# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, -# Italian, Japanese, Japanese-en (Japanese with English messages), Korean, -# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, -# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is -# used as the annotated text. Otherwise, the brief description is used as-is. -# If left blank, the following values are used ("$name" is automatically -# replaced with the name of the entity): "The $name class" "The $name widget" -# "The $name file" "is" "provides" "specifies" "contains" -# "represents" "a" "an" "the" - -ABBREVIATE_BRIEF = - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief -# description. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. - -FULL_PATH_NAMES = YES - -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the -# path to strip. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that -# are normally passed to the compiler using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful is your file systems -# doesn't support long names like on DOS, Mac, or CD-ROM. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like regular Qt-style comments -# (thus requiring an explicit @brief command for a brief description.) - -JAVADOC_AUTOBRIEF = NO - -# If the QT_AUTOBRIEF tag is set to YES then Doxygen will -# interpret the first line (until the first dot) of a Qt-style -# comment as the brief description. If set to NO, the comments -# will behave just like regular Qt-style comments (thus requiring -# an explicit \brief command for a brief description.) - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed -# description. Set this tag to YES if you prefer the old behaviour instead. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the DETAILS_AT_TOP tag is set to YES then Doxygen -# will output the detailed description near the top, like JavaDoc. -# If set to NO, the detailed description appears after the member -# documentation. - -DETAILS_AT_TOP = NO - -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# re-implements. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce -# a new page for each member. If set to NO, the documentation of a member will -# be part of the file/class/namespace that contains it. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. - -TAB_SIZE = 8 - -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user-defined paragraph with heading "Side Effects:". -# You can put \n's in the value part of an alias to insert newlines. - -ALIASES = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C -# sources only. Doxygen will then generate output that is more tailored for C. -# For instance, some of the names that are used will be different. The list -# of all members will be omitted, etc. - -OPTIMIZE_OUTPUT_FOR_C = NO - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java -# sources only. Doxygen will then generate output that is more tailored for Java. -# For instance, namespaces will be presented as packages, qualified scopes -# will look different, etc. - -OPTIMIZE_OUTPUT_JAVA = NO - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to -# include (a tag file for) the STL sources as input, then you should -# set this tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. -# func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. -# Doxygen will parse them like normal C++ but will assume all classes use public -# instead of private inheritance when no explicit protection keyword is present. - -SIP_SUPPORT = NO - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. - -DISTRIBUTE_GROUP_DOC = NO - -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using -# the \nosubgrouping command. - -SUBGROUPING = YES - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES - -EXTRACT_ALL = NO - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_STATIC tag is set to YES all static members of a file -# will be included in the documentation. - -EXTRACT_STATIC = NO - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. -# If set to NO only classes defined in header files are included. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. -# If set to NO (the default) only methods in the interface are included. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be extracted -# and appear in the documentation as a namespace called 'anonymous_namespace{file}', -# where file will be replaced with the base name of the file that contains the anonymous -# namespace. By default anonymous namespace are hidden. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members of documented classes, files or namespaces. -# If set to NO (the default) these members will be included in the -# various overviews, but no documentation section is generated. -# This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these classes will be included in the various -# overviews. This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the -# documentation. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the -# function's detailed documentation block. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. - -CASE_SENSE_NAMES = YES - -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the -# documentation. If set to YES the scope will be hidden. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation -# of that file. - -SHOW_INCLUDE_FILES = YES - -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in -# declaration order. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in -# declaration order. - -SORT_BRIEF_DOCS = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the -# alphabetical list. - -SORT_BY_SCOPE_NAME = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo -# commands in the documentation. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test -# commands in the documentation. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug -# commands in the documentation. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting -# \deprecated commands in the documentation. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional -# documentation sections, marked by \if sectionname ... \endif. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or define consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and defines in the -# documentation can be controlled using \showinitializer or \hideinitializer -# command in the documentation regardless of this setting. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the -# list will mention the files that were used to generate the documentation. - -SHOW_USED_FILES = YES - -# If the sources in your project are distributed over multiple directories -# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy -# in the documentation. The default is NO. - -SHOW_DIRECTORIES = NO - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from the -# version control system). Doxygen will invoke the program by executing (via -# popen()) the command , where is the value of -# the FILE_VERSION_FILTER tag, and is the name of an input file -# provided by doxygen. Whatever the program writes to standard output -# is used as the file version. See the manual for examples. - -FILE_VERSION_FILTER = - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. - -WARNINGS = YES - -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will -# automatically be disabled. - -WARN_IF_UNDOCUMENTED = YES - -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that -# don't exist or using markup commands wrongly. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be abled to get warnings for -# functions that are documented, but have no documentation for their parameters -# or return value. If set to NO (the default) doxygen will only warn about -# wrong or incomplete parameter documentation, but not about the absence of -# documentation. - -WARN_NO_PARAMDOC = NO - -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. Optionally the format may contain -# $version, which will be replaced by the version of the file (if it could -# be obtained via FILE_VERSION_FILTER) - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning -# and error messages should be written. If left blank the output is written -# to stderr. - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. - -INPUT = @top_srcdir@/src - -# This tag can be used to specify the character encoding of the source files that -# doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default -# input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding. -# See http://www.gnu.org/software/libiconv for the list of possible encodings. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank the following patterns are tested: -# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx -# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py - -FILE_PATTERNS = - -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. -# If left blank NO is used. - -RECURSIVE = NO - -# The EXCLUDE tag can be used to specify files and/or directories that should -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used select whether or not files or -# directories that are symbolic links (a Unix filesystem feature) are excluded -# from the input. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. Note that the wildcards are matched -# against the file with absolute path, so to exclude all test directories -# for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the output. -# The symbol name can be a fully qualified name, a word, or if the wildcard * is used, -# a substring. Examples: ANamespace, AClass, AClass::ANamespace, ANamespace::*Test - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see -# the \include command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. - -EXAMPLE_PATTERNS = - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. -# Possible values are YES and NO. If left blank NO is used. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command , where -# is the value of the INPUT_FILTER tag, and is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. If FILTER_PATTERNS is specified, this tag will be -# ignored. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further -# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER -# is applied to all files. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will be used to filter the input files when producing source -# files to browse (i.e. when SOURCE_BROWSER is set to YES). - -FILTER_SOURCE_FILES = NO - -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. -# Note: To get rid of all source code in the generated output, make sure also -# VERBATIM_HEADERS is set to NO. If you have enabled CALL_GRAPH or CALLER_GRAPH -# then you must also enable this option. If you don't then doxygen will produce -# a warning and turn it on anyway - -SOURCE_BROWSER = NO - -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code -# fragments. Normal C and C++ comments will always remain visible. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES (the default) -# then for each documented function all documented -# functions referencing it will be listed. - -REFERENCED_BY_RELATION = YES - -# If the REFERENCES_RELATION tag is set to YES (the default) -# then for each documented function all documented entities -# called/used by that function will be listed. - -REFERENCES_RELATION = YES - -# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) -# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from -# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will -# link to the source code. Otherwise they will link to the documentstion. - -REFERENCES_LINK_SOURCE = YES - -# If the USE_HTAGS tag is set to YES then the references to source code -# will point to the HTML generated by the htags(1) tool instead of doxygen -# built-in source browser. The htags tool is part of GNU's global source -# tagging system (see http://www.gnu.org/software/global/global.html). You -# will need version 4.8.6 or higher. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. - -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project -# contains a lot of classes, structs, unions or interfaces. - -ALPHABETICAL_INDEX = NO - -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns -# in which this list will be split (can be a number in the range [1..20]) - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all -# classes will be put under the same header in the alphabetical index. -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that -# should be ignored while generating the index headers. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank -# doxygen will generate files with .html extension. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a -# standard header. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a -# standard footer. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet. Note that doxygen will try to copy -# the style sheet file to the HTML output directory, so don't put your own -# stylesheet in the HTML output directory as well, or it will be erased! - -HTML_STYLESHEET = - -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to -# NO a bullet list will be used. - -HTML_ALIGN_MEMBERS = YES - -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) -# of the generated HTML documentation. - -GENERATE_HTMLHELP = NO - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. For this to work a browser that supports -# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox -# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). - -HTML_DYNAMIC_SECTIONS = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be -# written to the html output directory. - -CHM_FILE = - -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run -# the HTML help compiler on the generated index.hhp. - -HHC_LOCATION = - -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that -# it should be included in the master .chm file (NO). - -GENERATE_CHI = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag -# controls whether a binary table of contents is generated (YES) or a -# normal table of contents (NO) in the .chm file. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members -# to the contents of the HTML help documentation and to the tree view. - -TOC_EXPAND = NO - -# The DISABLE_INDEX tag can be used to turn on/off the condensed index at -# top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. - -DISABLE_INDEX = NO - -# This tag can be used to set the number of enum values (range [1..20]) -# that doxygen will group on one line in the generated HTML documentation. - -ENUM_VALUES_PER_LINE = 4 - -# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be -# generated containing a tree-like index structure (just like the one that -# is generated for HTML Help). For this to work a browser that supports -# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, -# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are -# probably better off using the HTML help feature. - -GENERATE_TREEVIEW = NO - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be -# used to set the initial width (in pixels) of the frame in which the tree -# is shown. - -TREEVIEW_WIDTH = 250 - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- - -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will -# generate Latex output. - -GENERATE_LATEX = YES - -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `latex' will be used as the default path. - -LATEX_OUTPUT = latex - -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be -# invoked. If left blank `latex' will be used as the default command name. - -LATEX_CMD_NAME = latex - -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to -# generate index for LaTeX. If left blank `makeindex' will be used as the -# default command name. - -MAKEINDEX_CMD_NAME = makeindex - -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_LATEX = NO - -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, a4wide, letter, legal and -# executive. If left blank a4wide will be used. - -PAPER_TYPE = a4wide - -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX -# packages that should be included in the LaTeX output. - -EXTRA_PACKAGES = - -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for -# the generated latex document. The header should contain everything until -# the first chapter. If it is left blank doxygen will generate a -# standard header. Notice: only use this tag if you know what you are doing! - -LATEX_HEADER = - -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references -# This makes the output suitable for online browsing using a pdf viewer. - -PDF_HYPERLINKS = NO - -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of -# plain latex in the generated Makefile. Set this option to YES to get a -# higher quality PDF documentation. - -USE_PDFLATEX = NO - -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. -# command to the generated LaTeX files. This will instruct LaTeX to keep -# running if errors occur, instead of asking the user for help. -# This option is also used when generating formulas in HTML. - -LATEX_BATCHMODE = NO - -# If LATEX_HIDE_INDICES is set to YES then doxygen will not -# include the index chapters (such as File Index, Compound Index, etc.) -# in the output. - -LATEX_HIDE_INDICES = NO - -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- - -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output -# The RTF output is optimized for Word 97 and may not look very pretty with -# other RTF readers or editors. - -GENERATE_RTF = NO - -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `rtf' will be used as the default path. - -RTF_OUTPUT = rtf - -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact -# RTF documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_RTF = NO - -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated -# will contain hyperlink fields. The RTF file will -# contain links (just like the HTML output) instead of page references. -# This makes the output suitable for online browsing using WORD or other -# programs which support those fields. -# Note: wordpad (write) and others do not support links. - -RTF_HYPERLINKS = NO - -# Load stylesheet definitions from file. Syntax is similar to doxygen's -# config file, i.e. a series of assignments. You only have to provide -# replacements, missing definitions are set to their default value. - -RTF_STYLESHEET_FILE = - -# Set optional variables used in the generation of an rtf document. -# Syntax is similar to doxygen's config file. - -RTF_EXTENSIONS_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- - -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will -# generate man pages - -GENERATE_MAN = NO - -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `man' will be used as the default path. - -MAN_OUTPUT = man - -# The MAN_EXTENSION tag determines the extension that is added to -# the generated man pages (default is the subroutine's section .3) - -MAN_EXTENSION = .3 - -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, -# then it will generate one additional man file for each entity -# documented in the real man page(s). These additional files -# only source the real man page, but without them the man command -# would be unable to find the correct page. The default is NO. - -MAN_LINKS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- - -# If the GENERATE_XML tag is set to YES Doxygen will -# generate an XML file that captures the structure of -# the code including all documentation. - -GENERATE_XML = NO - -# The XML_OUTPUT tag is used to specify where the XML pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `xml' will be used as the default path. - -XML_OUTPUT = xml - -# The XML_SCHEMA tag can be used to specify an XML schema, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify an XML DTD, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_DTD = - -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will -# dump the program listings (including syntax highlighting -# and cross-referencing information) to the XML output. Note that -# enabling this will significantly increase the size of the XML output. - -XML_PROGRAMLISTING = YES - -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- - -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will -# generate an AutoGen Definitions (see autogen.sf.net) file -# that captures the structure of the code including all -# documentation. Note that this feature is still experimental -# and incomplete at the moment. - -GENERATE_AUTOGEN_DEF = NO - -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- - -# If the GENERATE_PERLMOD tag is set to YES Doxygen will -# generate a Perl module file that captures the structure of -# the code including all documentation. Note that this -# feature is still experimental and incomplete at the -# moment. - -GENERATE_PERLMOD = NO - -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate -# the necessary Makefile rules, Perl scripts and LaTeX code to be able -# to generate PDF and DVI output from the Perl module output. - -PERLMOD_LATEX = NO - -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. This is useful -# if you want to understand what is going on. On the other hand, if this -# tag is set to NO the size of the Perl module output will be much smaller -# and Perl will parse it just the same. - -PERLMOD_PRETTY = YES - -# The names of the make variables in the generated doxyrules.make file -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. -# This is useful so different doxyrules.make files included by the same -# Makefile don't overwrite each other's variables. - -PERLMOD_MAKEVAR_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- - -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include -# files. - -ENABLE_PREPROCESSING = YES - -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. Macro expansion can be done in a controlled -# way by setting EXPAND_ONLY_PREDEF to YES. - -MACRO_EXPANSION = NO - -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the -# PREDEFINED and EXPAND_AS_DEFINED tags. - -EXPAND_ONLY_PREDEF = NO - -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files -# in the INCLUDE_PATH (see below) will be search if a #include is found. - -SEARCH_INCLUDES = YES - -# The INCLUDE_PATH tag can be used to specify one or more directories that -# contain include files that are not input files but should be processed by -# the preprocessor. - -INCLUDE_PATH = - -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard -# patterns (like *.h and *.hpp) to filter out the header-files in the -# directories. If left blank, the patterns specified with FILE_PATTERNS will -# be used. - -INCLUDE_FILE_PATTERNS = - -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. To prevent a macro definition from being -# undefined via #undef or recursively expanded use the := operator -# instead of the = operator. - -PREDEFINED = - -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then -# this tag can be used to specify a list of macro names that should be expanded. -# The macro definition that is found in the sources will be used. -# Use the PREDEFINED tag if you want to use a different macro definition. - -EXPAND_AS_DEFINED = - -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then -# doxygen's preprocessor will remove all function-like macros that are alone -# on a line, have an all uppercase name, and do not end with a semicolon. Such -# function macros are typically used for boiler-plate code, and will confuse -# the parser if not removed. - -SKIP_FUNCTION_MACROS = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- - -# The TAGFILES option can be used to specify one or more tagfiles. -# Optionally an initial location of the external documentation -# can be added for each tagfile. The format of a tag file without -# this location is as follows: -# TAGFILES = file1 file2 ... -# Adding location for the tag files is done as follows: -# TAGFILES = file1=loc1 "file2 = loc2" ... -# where "loc1" and "loc2" can be relative or absolute paths or -# URLs. If a location is present for each tag, the installdox tool -# does not have to be run to correct the links. -# Note that each tag file must have a unique name -# (where the name does NOT include the path) -# If a tag file is not located in the directory in which doxygen -# is run, you must also specify the path to the tagfile here. - -TAGFILES = - -# When a file name is specified after GENERATE_TAGFILE, doxygen will create -# a tag file that is based on the input files it reads. - -GENERATE_TAGFILE = - -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes -# will be listed. - -ALLEXTERNALS = NO - -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will -# be listed. - -EXTERNAL_GROUPS = YES - -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of `which perl'). - -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- - -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base -# or super classes. Setting the tag to NO turns the diagrams off. Note that -# this option is superseded by the HAVE_DOT option below. This is only a -# fallback. It is recommended to install and use dot, since it yields more -# powerful graphs. - -CLASS_DIAGRAMS = YES - -# You can define message sequence charts within doxygen comments using the \msc -# command. Doxygen will then run the mscgen tool (see http://www.mcternan.me.uk/mscgen/) to -# produce the chart and insert it in the documentation. The MSCGEN_PATH tag allows you to -# specify the directory where the mscgen tool resides. If left empty the tool is assumed to -# be found in the default search path. - -MSCGEN_PATH = - -# If set to YES, the inheritance and collaboration graphs will hide -# inheritance and usage relations if the target is undocumented -# or is not a class. - -HIDE_UNDOC_RELATIONS = YES - -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is -# available from the path. This tool is part of Graphviz, a graph visualization -# toolkit from AT&T and Lucent Bell Labs. The other options in this section -# have no effect if this option is set to NO (the default) - -HAVE_DOT = NO - -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect inheritance relations. Setting this tag to YES will force the -# the CLASS_DIAGRAMS tag to NO. - -CLASS_GRAPH = YES - -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect implementation dependencies (inheritance, containment, and -# class references variables) of the class with other documented classes. - -COLLABORATION_GRAPH = YES - -# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for groups, showing the direct groups dependencies - -GROUP_GRAPHS = YES - -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and -# collaboration diagrams in a style similar to the OMG's Unified Modeling -# Language. - -UML_LOOK = NO - -# If set to YES, the inheritance and collaboration graphs will show the -# relations between templates and their instances. - -TEMPLATE_RELATIONS = NO - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT -# tags are set to YES then doxygen will generate a graph for each documented -# file showing the direct and indirect include dependencies of the file with -# other documented files. - -INCLUDE_GRAPH = YES - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each -# documented header file showing the documented files that directly or -# indirectly include this file. - -INCLUDED_BY_GRAPH = YES - -# If the CALL_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will -# generate a call dependency graph for every global function or class method. -# Note that enabling this option will significantly increase the time of a run. -# So in most cases it will be better to enable call graphs for selected -# functions only using the \callgraph command. - -CALL_GRAPH = NO - -# If the CALLER_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will -# generate a caller dependency graph for every global function or class method. -# Note that enabling this option will significantly increase the time of a run. -# So in most cases it will be better to enable caller graphs for selected -# functions only using the \callergraph command. - -CALLER_GRAPH = NO - -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen -# will graphical hierarchy of all classes instead of a textual one. - -GRAPHICAL_HIERARCHY = YES - -# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES -# then doxygen will show the dependencies a directory has on other directories -# in a graphical way. The dependency relations are determined by the #include -# relations between the files in the directories. - -DIRECTORY_GRAPH = YES - -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are png, jpg, or gif -# If left blank png will be used. - -DOT_IMAGE_FORMAT = png - -# The tag DOT_PATH can be used to specify the path where the dot tool can be -# found. If left blank, it is assumed the dot tool can be found in the path. - -DOT_PATH = - -# The DOTFILE_DIRS tag can be used to specify one or more directories that -# contain dot files that are included in the documentation (see the -# \dotfile command). - -DOTFILE_DIRS = - -# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of -# nodes that will be shown in the graph. If the number of nodes in a graph -# becomes larger than this value, doxygen will truncate the graph, which is -# visualized by representing a node as a red box. Note that doxygen if the number -# of direct children of the root node in a graph is already larger than -# MAX_DOT_GRAPH_NOTES then the graph will not be shown at all. Also note -# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. - -DOT_GRAPH_MAX_NODES = 50 - -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the -# graphs generated by dot. A depth value of 3 means that only nodes reachable -# from the root by following a path via at most 3 edges will be shown. Nodes -# that lay further from the root node will be omitted. Note that setting this -# option to 1 or 2 may greatly reduce the computation time needed for large -# code bases. Also note that the size of a graph can be further restricted by -# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. - -MAX_DOT_GRAPH_DEPTH = 0 - -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, which results in a white background. -# Warning: Depending on the platform used, enabling this option may lead to -# badly anti-aliased labels on the edges of a graph (i.e. they become hard to -# read). - -DOT_TRANSPARENT = YES - -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output -# files in one run (i.e. multiple -o and -T options on the command line). This -# makes dot run faster, but since only newer versions of dot (>1.8.10) -# support this, this feature is disabled by default. - -DOT_MULTI_TARGETS = NO - -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will -# generate a legend page explaining the meaning of the various boxes and -# arrows in the dot generated graphs. - -GENERATE_LEGEND = YES - -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will -# remove the intermediate dot files that are used to generate -# the various graphs. - -DOT_CLEANUP = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- - -# The SEARCHENGINE tag specifies whether or not a search engine should be -# used. If set to NO the values of all tags below this one will be ignored. - -SEARCHENGINE = NO diff --git a/bindings/cil/Makefile.am b/bindings/cil/Makefile.am deleted file mode 100644 index d98ebad46e..0000000000 --- a/bindings/cil/Makefile.am +++ /dev/null @@ -1,18 +0,0 @@ -# Makefile.am - master Makefile for libvlc-cil - -ACLOCAL_AMFLAGS = -I m4 -AUTOMAKE_OPTIONS = \ - -Wall \ - check-news \ - std-options \ - dist-bzip2 \ - no-dist-gzip \ - no-exeext - -SUBDIRS = src tests -DIST_SUBDIRS = $(SUBDIRS) m4 - -doc: Doxyfile - $(DOXYGEN) - -.PHONY: doc diff --git a/bindings/cil/NEWS b/bindings/cil/NEWS deleted file mode 100644 index a30fbc61b2..0000000000 --- a/bindings/cil/NEWS +++ /dev/null @@ -1,4 +0,0 @@ -libvlc-cil 0.9.0 -================= - -Initial release. diff --git a/bindings/cil/README b/bindings/cil/README deleted file mode 100644 index f25e1b05b7..0000000000 --- a/bindings/cil/README +++ /dev/null @@ -1,5 +0,0 @@ -libvlc-cil 0.9.0 -================= - -Common Intermediary Language bindings for LibVLC - diff --git a/bindings/cil/autogen.sh b/bindings/cil/autogen.sh deleted file mode 100755 index 62594028f3..0000000000 --- a/bindings/cil/autogen.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -# SVN package rebuild script -# $Id$ -# -# *********************************************************************** -# * Copyright © 2002-2005 Rémi Denis-Courmont. * -# * This program is free software; you can redistribute and/or modify * -# * it under the terms of the GNU General Public License as published * -# * by the Free Software Foundation; version 2 of the license. * -# * * -# * 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, you can get it from: * -# * http://www.gnu.org/copyleft/gpl.html * -# *********************************************************************** - -set -xe - -cd "$(dirname "$0")" - -test -f src/exception.cs || { - echo "You must run this script from your cil directory.">&2 - exit 1 -} - -mkdir -p admin -autoreconf -sfi - -set +x -echo "" -echo "Type \`./configure' to configure the package for your system" -echo "(type \`./configure -- help' for help)." -echo "Then you can use the usual \`make', \`make install', etc." - diff --git a/bindings/cil/configure.ac b/bindings/cil/configure.ac deleted file mode 100644 index 33676a3832..0000000000 --- a/bindings/cil/configure.ac +++ /dev/null @@ -1,40 +0,0 @@ -dnl configure.ac - Configure script for libvlc-cil - -dnl Process this file with GNU Autoconf to produce a configure script - -dnl *********************************************************************** -dnl * Copyright © 2007 Rémi Denis-Courmont. * -dnl * This program is free software; you can redistribute and/or modify * -dnl * it under the terms of the GNU General Public License as published * -dnl * by the Free Software Foundation; version 2 of the license, or (at * -dnl * your option) any later version. * -dnl * * -dnl * This program is distributed in the hope that it will be useful, * -dnl * but WITHOUT ANY WARRANTY; without even the implied warranty of * -dnl * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * -dnl * See the GNU General Public License for more details. * -dnl * * -dnl * You should have received a copy of the GNU General Public License * -dnl * along with this program; if not, you can get it from: * -dnl * http://www.gnu.org/copyleft/gpl.html * -dnl *********************************************************************** - -AC_COPYRIGHT([Copyright (C) 2004-2009 Remi Denis-Courmont]) -AC_INIT(libvlc-cil, 1.0.0, vlc-devel_no_bulk_mail@videolan.org) -AC_PREREQ(2.50) - -AC_CONFIG_SRCDIR(configure.ac) -AC_CONFIG_AUX_DIR(admin) -AC_CONFIG_MACRO_DIR(m4) - -AC_ARG_VAR([CSC], [C sharp compiler command]) -AC_ARG_VAR([CSFLAGS], [C sharp compiler flags]) -AC_PATH_PROG([CSC], [gmcs csc], [false]) - -AC_ARG_VAR([DOXYGEN], [Doxygen command]) -AC_PATH_PROG([DOXYGEN], [doxygen], [false]) - -AM_INIT_AUTOMAKE - -AC_CONFIG_FILES([Makefile m4/Makefile src/Makefile tests/Makefile Doxyfile]) -AC_OUTPUT diff --git a/bindings/cil/m4/Makefile.am b/bindings/cil/m4/Makefile.am deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/bindings/cil/src/.gitignore b/bindings/cil/src/.gitignore deleted file mode 100644 index 2d153be2e0..0000000000 --- a/bindings/cil/src/.gitignore +++ /dev/null @@ -1 +0,0 @@ -VideoLAN.LibVLC.dll diff --git a/bindings/cil/src/Makefile.am b/bindings/cil/src/Makefile.am deleted file mode 100644 index 8392f3a7d0..0000000000 --- a/bindings/cil/src/Makefile.am +++ /dev/null @@ -1,18 +0,0 @@ -EXTRA_DIST = $(SOURCES_dll) -MOSTLYCLEANFILES = $(pkglib_SCRIPTS) - -pkglib_SCRIPTS = VideoLAN.LibVLC.dll - -SOURCES_dll = \ - ustring.cs \ - exception.cs \ - event.cs \ - marshal.cs \ - instance.cs \ - media.cs \ - player.cs \ - libvlc.cs - -VideoLAN.LibVLC.dll: $(SOURCES_dll) - $(CSC) -target:library -out:$@ $(CSFLAGS) $^ - diff --git a/bindings/cil/src/event.cs b/bindings/cil/src/event.cs deleted file mode 100644 index e549c11525..0000000000 --- a/bindings/cil/src/event.cs +++ /dev/null @@ -1,120 +0,0 @@ -/** - * @file event.cs - * @brief Unmanaged LibVLC events - * @ingroup Internals - */ - -/********************************************************************** - * Copyright (C) 2009 Rémi Denis-Courmont. * - * This program is free software; you can redistribute and/or modify * - * it under the terms of the GNU General Public License as published * - * by the Free Software Foundation; 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, you can get it from: * - * http://www.gnu.org/copyleft/gpl.html * - **********************************************************************/ - -using System; -using System.Runtime.InteropServices; - -namespace VideoLAN.LibVLC -{ - /** - * @ingroup Internals - * @{ - */ - - /** - * @brief EventType: LibVLC event types - */ - internal enum EventType - { - MediaMetaChanged, - MediaSubItemAdded, - MediaDurationChanged, - MediaPreparsedChanged, - MediaFreed, - MediaStateChanged, - - PlayerNothingSpecial, - PlayerOpening, - PlayerBuffering, - PlayerPlaying, - PlayerPaused, - PlayerStopped, - PlayerForward, - PlayerBackward, - PlayerEndReached, - PlayerEncounteredError, - PlayerTimeChanged, - PlayerPositionChanged, - PlayerSeekableChanged, - PlayerPausableChanged, - - ListItemAdded, - ListWillAddItem, - ListItemDeleted, - ListWillDeleteItem, - - ListViewItemAdded, - ListViewWillAddItem, - ListViewItemDeleted, - ListViewWillDeleteItem, - - ListPlayerPlayed, - ListPlayerNextItemSet, - ListPlayerStopped, - - DiscovererStarted, - DiscovererEnded, - - PlayerTitleChanged, - }; - - [StructLayout (LayoutKind.Sequential)] - internal class GenericEvent - { - public EventType type; - public IntPtr obj; - }; - internal delegate void GenericCallback (GenericEvent e, IntPtr d); - - /* Player events */ - [StructLayout (LayoutKind.Sequential)] - internal sealed class PlayerPositionEvent : GenericEvent - { - float position; - }; - - [StructLayout (LayoutKind.Sequential)] - internal sealed class PlayerTimeEvent : GenericEvent - { - long time; - }; - - [StructLayout (LayoutKind.Sequential)] - internal sealed class PlayerTitleEvent : GenericEvent - { - int title; - }; - - [StructLayout (LayoutKind.Sequential)] - internal sealed class PlayerSeekableEvent : GenericEvent - { - long seekable; - }; - - [StructLayout (LayoutKind.Sequential)] - internal sealed class PlayerPausableChangedEvent : GenericEvent - { - long pausable; - }; - /** @} */ -}; \ No newline at end of file diff --git a/bindings/cil/src/exception.cs b/bindings/cil/src/exception.cs deleted file mode 100644 index c1a9ebcaf5..0000000000 --- a/bindings/cil/src/exception.cs +++ /dev/null @@ -1,149 +0,0 @@ -/** - * @file exception.cs - * @brief LibVLC exceptions - * @ingroup API - */ - -/********************************************************************** - * Copyright (C) 2007-2009 Rémi Denis-Courmont. * - * This program is free software; you can redistribute and/or modify * - * it under the terms of the GNU General Public License as published * - * by the Free Software Foundation; 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, you can get it from: * - * http://www.gnu.org/copyleft/gpl.html * - **********************************************************************/ - -using System; -using System.Runtime.InteropServices; - -namespace VideoLAN.LibVLC -{ - /** - * @brief VLCException: base class for LibVLC exceptions - * @ingroup API - */ - public class VLCException : Exception - { - int code; - /** - * VLC exception code. - */ - public int Code - { - get - { - return code; - } - } - - /** - * Creates a managed VLC exception. - */ - public VLCException () - { - } - - /** - * Creates a managed VLC exception. - * @param message exception error message - */ - public VLCException (string message) - : base (message) - { - } - - /** - * Creates a managed VLC exception wrapping another exception. - * @param message exception error message - * @param inner inner wrapped exception - */ - public VLCException (string message, Exception inner) - : base (message, inner) - { - } - - /** - * Creates a VLC exception - * @param code VLC exception code - * @param message VLC exception message - */ - public VLCException (int code, string message) : base (message) - { - this.code = code; - } - - /** - * Creates a VLC exception - * @param code VLC exception code - */ - public VLCException (int code) : base () - { - this.code = code; - } - }; - - /** - * @brief NativeException: CIL representation for libvlc_exception_t. - * @ingroup Internals - */ - [StructLayout (LayoutKind.Sequential)] - public sealed class NativeException : IDisposable - { - int raised; - int code; - IntPtr message; - - public NativeException () - { - LibVLC.ExceptionInit (this); - } - - /** - * Throws a managed exception if LibVLC has returned a native - * unmanaged exception. Clears the native exception. - */ - public void Raise () - { - if (raised == 0) - return; - - string msg = U8String.FromNative (message); - try - { - if (msg != null) - throw new VLCException (code, msg); - else - throw new VLCException (code); - } - finally - { - LibVLC.ExceptionClear (this); - } - } - - /** IDisposable implementation. */ - public void Dispose () - { - Dispose (true); - GC.SuppressFinalize (this); - } - - ~NativeException () - { - Dispose (false); - } - - private void Dispose (bool disposing) - { - LibVLC.ExceptionClear (this); - } - }; -}; diff --git a/bindings/cil/src/instance.cs b/bindings/cil/src/instance.cs deleted file mode 100644 index f40862c922..0000000000 --- a/bindings/cil/src/instance.cs +++ /dev/null @@ -1,231 +0,0 @@ -/** - * @file instance.cs - * @brief LibVLC instance class - * @ingroup API - * - * @defgroup API Managed interface to LibVLC - * - * This is the primary class library for .NET applications - * to embed and control LibVLC. - */ - -/********************************************************************** - * Copyright (C) 2007-2009 Rémi Denis-Courmont. * - * This program is free software; you can redistribute and/or modify * - * it under the terms of the GNU General Public License as published * - * by the Free Software Foundation; 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, you can get it from: * - * http://www.gnu.org/copyleft/gpl.html * - **********************************************************************/ - -using System; -using System.Runtime.InteropServices; - -/** - * @brief VideoLAN.LibVLC: VideoLAN project's LibVLC .Net bindings - * @ingroup API - * - * This namespace provides a set of managed APIs around the native LibVLC - * for the .Net Common Language Runtime. - */ -namespace VideoLAN.LibVLC -{ - /** - * @brief InstanceHandle: unmanaged LibVLC instance pointer - * @ingroup Internals - */ - internal sealed class InstanceHandle : NonNullHandle - { - /** - * NonNullHandle.Destroy - */ - protected override void Destroy () - { - LibVLC.Release (handle, null); - } - }; - - /** - * @brief VLC: VLC media player instance - * @ingroup API - * - * The VLC class provides represent a run-time instance of a media player. - * An instance can spawn multiple independent medias, however - * configuration settings, message logging, etc are common to all medias - * from the same instance. - */ - public class VLC : BaseObject - { - internal InstanceHandle Handle - { - get - { - return handle as InstanceHandle; - } - } - - /** - * Loads the native LibVLC and creates a LibVLC instance. - * - * @param args VLC command line parameters for the LibVLC Instance. - */ - public VLC (string[] args) - { - U8String[] argv = new U8String[args.Length]; - for (int i = 0; i < args.Length; i++) - argv[i] = new U8String (args[i]); - - handle = LibVLC.Create (argv.Length, argv, ex); - Raise (); - } - - /** - * Starts a VLC interface plugin. - * - * @param name name of the interface plugin (e.g. "http", "qt4", ...) - */ - public void AddInterface (string name) - { - U8String uname = new U8String (name); - - LibVLC.AddIntf (Handle, uname, ex); - Raise (); - } - - /** - * Waits until VLC instance exits. This can happen if a fatal error - * occurs (e.g. cannot parse the arguments), if the user has quit - * through an interface, or if the special vlc://quit item was played. - */ - public void Run () - { - LibVLC.Wait (Handle); - } - - /** - * The human-readable LibVLC version number. - */ - public static string Version - { - get - { - return U8String.FromNative (LibVLC.GetVersion ()); - } - } - - /** - * The human-readable LibVLC C compiler infos. - */ - public static string Compiler - { - get - { - return U8String.FromNative (LibVLC.GetCompiler ()); - } - } - - /** - * The unique commit identifier from the LibVLC source control system, - * or "exported" if unknown. - */ - public static string ChangeSet - { - get - { - return U8String.FromNative (LibVLC.GetChangeset ()); - } - } - - /** - * The unmanaged VLC-internal instance object. - * Do not use this unless you really know what you are doing. - * @version VLC 1.0 - */ - public IntPtr Object - { - get - { - return LibVLC.GetVLCInstance (Handle); - } - } - }; -}; - -/** - * @mainpage libvlc-cil documentation - * - * @section Introduction - * - * libvlc-cil is a thin API layer around LibVLC, - * the VideoLAN's project media framework C library. - * LibVLC comes built-in the VLC media player. - * - * With libvlc-cil, you can use LibVLC - * from within the .Net Common Language Runtime, - * with the CIL programming language of your preference. - * However, libvlc-cil and the code sample in this documentation - * are written is C#. - * - * @section Installation - * - * libvlc-cil does not include the underlying LibVLC by default. - * Make sure VLC, or at least LibVLC and the relevant VLC plugins are present. - * The LibVLC runtime library needs to be in the library search path for the - * Common Language Runtime. Check the documentation for your CLR for details. - * - * On Windows, libvlc.dll needs to be in the current directory, the DLL path - * of the running process, or the system search path (but the latter is - * uncommon and not supported by the official LibVLC installer). - * - * On Linux, libvlc.so should be in /usr/lib; if it is in another directory, - * such as /usr/local/lib, you might need to add that directory to the - * LD_LIBRARY_PATH environment variable. - * - * @section Usage - * - * First, you need to create a VLC instance. This will load and setup the - * native VLC runtime, the VLC configuration, the list of available plugins, - * the platform adaptation and the VLC log messages and objects subsystems - * @code - * using System; - * using VideoLAN.LibVLC; - * ... - * - * try { - * Console.WriteLine("Running on VLC version {0}", VLC.Version); - * } - * catch (Exception e) { - * Console.WriteLine("VLC is not available on your system."); - * throw e; - * } - * - * string[] args = new string[]{ "-v", "--ignore-config" }; - * VLC vlc = new VLC(args); - * @endcode - * @see VideoLAN::LibVLC::VLC - * - * To play media, you need a media and a player. - * @code - * Media media = new Media(vlc, "http://www.example.com/video.ogv"); - * Player player = new Player(media); - * player.Play(); - * @endcode - * @see VideoLAN::LibVLC::Media @see VideoLAN::LibVLC::Player - * - * All these objects use unmanaged resources. - * They all implement the IDisposeable interface. - * You should dispose them when you do not need them anymore: - * @code - * player.Dispose(); - * media.Dispose(); - * vlc.Dispose(); - * @endcode - */ diff --git a/bindings/cil/src/libvlc.cs b/bindings/cil/src/libvlc.cs deleted file mode 100644 index 28297472a7..0000000000 --- a/bindings/cil/src/libvlc.cs +++ /dev/null @@ -1,369 +0,0 @@ -/** - * @file libvlc.cs - * @brief Unmanaged LibVLC APIs - * @ingroup Internals - * - * @defgroup Internals LibVLC internals - * This covers internal marshalling functions to use the native LibVLC. - * Only VLC developers should need to read this section. - */ - -/********************************************************************** - * Copyright (C) 2007-2009 Rémi Denis-Courmont. * - * This program is free software; you can redistribute and/or modify * - * it under the terms of the GNU General Public License as published * - * by the Free Software Foundation; 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, you can get it from: * - * http://www.gnu.org/copyleft/gpl.html * - **********************************************************************/ - -using System; -using System.Runtime.InteropServices; - -namespace VideoLAN.LibVLC -{ - /** - * @brief Native: unmanaged LibVLC APIs - * @ingroup Internals - */ - internal enum MediaOptionFlag - { - OptionTrusted = 0x2, - OptionUnique = 0x100, - }; - - internal static class LibVLC - { - /* Where is the run-time? - * On ELF platforms, "libvlc.so.2" should be used instead. */ - const string lib = "libvlc.dll"; - - /* exception.c */ - [DllImport (lib, EntryPoint="libvlc_exception_init")] - public static extern void ExceptionInit (NativeException e); - - [DllImport (lib, EntryPoint="libvlc_exception_clear")] - public static extern void ExceptionClear (NativeException e); - - /* core.c */ - [DllImport (lib, EntryPoint="libvlc_get_version")] - public static extern IntPtr GetVersion (); - - [DllImport (lib, EntryPoint="libvlc_get_compiler")] - public static extern IntPtr GetCompiler (); - - [DllImport (lib, EntryPoint="libvlc_get_changeset")] - public static extern IntPtr GetChangeset (); - - [DllImport (LibVLC.lib, EntryPoint="libvlc_free")] - public static extern void Free (IntPtr ptr); - - [DllImport (lib, EntryPoint="libvlc_new")] - public static extern - InstanceHandle Create (int argc, U8String[] argv, NativeException ex); - - /*[DllImport (lib, EntryPoint="libvlc_retain")] - public static extern - void Retain (InstanceHandle h, NativeException ex);*/ - - [DllImport (lib, EntryPoint="libvlc_release")] - public static extern - void Release (IntPtr h, NativeException ex); - - [DllImport (lib, EntryPoint="libvlc_add_intf")] - public static extern - void AddIntf (InstanceHandle h, U8String name, NativeException ex); - - [DllImport (lib, EntryPoint="libvlc_wait")] - public static extern - void Wait (InstanceHandle h); - - [DllImport (lib, EntryPoint="libvlc_get_vlc_instance")] - public static extern - IntPtr GetVLCInstance (InstanceHandle h); - - /* media.c */ - [DllImport (lib, EntryPoint="libvlc_media_new")] - public static extern - MediaHandle MediaCreate (InstanceHandle inst, U8String mrl, - NativeException ex); - - [DllImport (lib, EntryPoint="libvlc_media_new_as_node")] - public static extern - MediaHandle MediaCreateAsNode (InstanceHandle inst, U8String name, - NativeException ex); - - [DllImport (lib, EntryPoint="libvlc_media_add_option")] - public static extern - void MediaAddOption (MediaHandle media, U8String options, - NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_add_option_flag")] - public static extern - void MediaAddOptionWithFlag (MediaHandle media, U8String options, - MediaOptionFlag flag, - NativeException ex); - - [DllImport (lib, EntryPoint="libvlc_media_release")] - public static extern - void MediaRelease (IntPtr ptr); - - [DllImport (lib, EntryPoint="libvlc_media_get_mrl")] - public static extern - StringHandle MediaGetMRL (MediaHandle media, NativeException ex); - - [DllImport (lib, EntryPoint="libvlc_media_duplicate")] - public static extern - MediaHandle MediaDuplicate (MediaHandle media); - - [DllImport (lib, EntryPoint="libvlc_media_get_meta")] - public static extern - StringHandle MediaGetMeta (MediaHandle media, MetaType type, - NativeException ex); - - [DllImport (lib, EntryPoint="libvlc_media_get_state")] - public static extern - State MediaGetState (MediaHandle media, NativeException ex); - - /*[DllImport (lib, EntryPoint="libvlc_media_subitems")] - public static extern - MediaListHandle MediaSubItems (MediaHandle media, NativeException ex);*/ - - [DllImport (lib, EntryPoint="libvlc_media_event_manager")] - public static extern - EventManagerHandle MediaEventManager (MediaHandle media, - NativeException ex); - - [DllImport (lib, EntryPoint="libvlc_media_get_duration")] - public static extern - long MediaGetDuration (MediaHandle media, NativeException ex); - - [DllImport (lib, EntryPoint="libvlc_media_is_preparsed")] - public static extern - int MediaIsPreparsed (MediaHandle media, NativeException ex); - - /*[DllImport (lib, EntryPoint="libvlc_media_set_user_data")] - public static extern - void MediaIsPreparsed (MediaHandle media, IntPtr data, - NativeException ex);*/ - - /*[DllImport (lib, EntryPoint="libvlc_media_get_user_data")] - public static extern - IntPtr MediaIsPreparsed (MediaHandle media, NativeException ex);*/ - - /* media_player.c */ - [DllImport (lib, EntryPoint="libvlc_media_player_new")] - public static extern - PlayerHandle PlayerCreate (InstanceHandle inst, NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_new_from_media")] - public static extern - PlayerHandle PlayerCreateFromMedia (MediaHandle media, - NativeException ex); - - [DllImport (lib, EntryPoint="libvlc_media_player_release")] - public static extern - void PlayerRelease (IntPtr ptr); - - /* PlayerRetain */ - - [DllImport (lib, - EntryPoint="libvlc_media_player_set_media")] - public static extern - void PlayerSetMedia (PlayerHandle player, MediaHandle media, - NativeException ex); - - /*[DllImport (lib, - EntryPoint="libvlc_media_player_get_media")] - public static extern - MediaHandle PlayerGetMedia (PlayerHandle player, - NativeException ex);*/ - - [DllImport (lib, - EntryPoint="libvlc_media_player_event_manager")] - public static extern - EventManagerHandle PlayerEventManager (PlayerHandle media, - NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_is_playing")] - public static extern - int PlayerIsPlaying (PlayerHandle player, NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_play")] - public static extern - void PlayerPlay (PlayerHandle player, NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_pause")] - public static extern - void PlayerPause (PlayerHandle player, NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_stop")] - public static extern - void PlayerStop (PlayerHandle player, NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_set_xwindow")] - public static extern - void PlayerSetXWindow (PlayerHandle player, int xid, - NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_get_xwindow")] - public static extern - int PlayerGetXWindow (PlayerHandle player); - - [DllImport (lib, - EntryPoint="libvlc_media_player_set_hwnd")] - public static extern - void PlayerSetHWND (PlayerHandle player, SafeHandle hwnd, - NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_get_hwnd")] - public static extern - SafeHandle PlayerGetHWND (PlayerHandle player); - - [DllImport (lib, - EntryPoint="libvlc_media_player_get_length")] - public static extern - long PlayerGetLength (PlayerHandle player, NativeException ex); - - [DllImport (lib, EntryPoint="libvlc_media_player_get_time")] - public static extern - long PlayerGetTime (PlayerHandle player, NativeException ex); - - [DllImport (lib, EntryPoint="libvlc_media_player_set_time")] - public static extern - void PlayerSetTime (PlayerHandle player, long time, - NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_get_position")] - public static extern - float PlayerGetPosition (PlayerHandle player, NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_set_position")] - public static extern - void PlayerSetPosition (PlayerHandle player, float position, - NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_get_chapter")] - public static extern - int PlayerGetChapter (PlayerHandle player, NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_set_chapter")] - public static extern - void PlayerSetChapter (PlayerHandle player, int chapter, - NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_get_chapter_count")] - public static extern - int PlayerGetChapterCount (PlayerHandle player, NativeException ex); - - /* PlayerWillPlay */ - - [DllImport (lib, - EntryPoint="libvlc_media_player_get_chapter_count_for_title")] - public static extern - int PlayerGetChapterCountForTitle (PlayerHandle player, int title, - NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_get_title")] - public static extern - int PlayerGetTitle (PlayerHandle player, NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_set_title")] - public static extern - void PlayerSetTitle (PlayerHandle player, int chapter, - NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_get_title_count")] - public static extern - int PlayerGetTitleCount (PlayerHandle player, NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_next_chapter")] - public static extern - void PlayerNextChapter (PlayerHandle player, NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_previous_chapter")] - public static extern - void PlayerPreviousChapter (PlayerHandle player, NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_get_rate")] - public static extern - float PlayerGetRate (PlayerHandle player, NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_set_rate")] - public static extern - void PlayerSetRate (PlayerHandle player, float rate, - NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_get_state")] - public static extern - State PlayerGetState (PlayerHandle player, NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_get_fps")] - public static extern - float PlayerGetFPS (PlayerHandle player, NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_has_vout")] - public static extern - int PlayerHasVout (PlayerHandle player, NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_is_seekable")] - public static extern - int PlayerIsSeekable (PlayerHandle player, NativeException ex); - - [DllImport (lib, - EntryPoint="libvlc_media_player_can_pause")] - public static extern - int PlayerCanPause (PlayerHandle player, NativeException ex); - - - /* TODO: video, audio */ - - /* event.c */ - [DllImport (lib, EntryPoint="libvlc_event_attach")] - public static extern - void EventAttach (EventManagerHandle manager, EventType type, - IntPtr callback, IntPtr user_data, - NativeException ex); - - [DllImport (lib, EntryPoint="libvlc_event_detach")] - public static extern - void EventDetach (EventManagerHandle manager, EventType type, - IntPtr callback, IntPtr user_data, - NativeException ex); - - /* libvlc_event_type_name */ - }; -}; diff --git a/bindings/cil/src/marshal.cs b/bindings/cil/src/marshal.cs deleted file mode 100644 index 3a427f8f25..0000000000 --- a/bindings/cil/src/marshal.cs +++ /dev/null @@ -1,221 +0,0 @@ -/** - * @file marshal.cs - * @brief Common LibVLC objects marshalling utilities - * @ingroup Internals - */ - -/********************************************************************** - * Copyright (C) 2007-2009 Rémi Denis-Courmont. * - * This program is free software; you can redistribute and/or modify * - * it under the terms of the GNU General Public License as published * - * by the Free Software Foundation; 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, you can get it from: * - * http://www.gnu.org/copyleft/gpl.html * - **********************************************************************/ - -using System; -using System.Collections; -using System.Collections.Generic; -using System.Runtime.InteropServices; - -namespace VideoLAN.LibVLC -{ - /** - * @brief NonNullHandle: abstract safe handle class for non-NULL pointers - * @ingroup Internals - * Microsoft.* namespace has a similar class. However we want to use the - * System.* namespace only. - */ - internal abstract class NonNullHandle : SafeHandle - { - protected NonNullHandle () - : base (IntPtr.Zero, true) - { - } - - /** - * System.Runtime.InteropServices.SafeHandle::IsInvalid. - */ - public override bool IsInvalid - { - get - { - return handle == IntPtr.Zero; - } - } - - /** - * Destroys an handle. Cannot fail. - */ - protected abstract void Destroy (); - - /** - * System.Runtime.InteropServices.SafeHandle::ReleaseHandle. - */ - protected override bool ReleaseHandle () - { - Destroy (); - return true; - } - }; - - /** - * @brief BaseObject: generic wrapper around a safe LibVLC handle. - * @ingroup Internals - * - * This is the baseline for all managed LibVLC objects. It wraps: - * - an unmanaged LibVLC pointer, - * - a native exception structure. - */ - public class BaseObject : IDisposable - { - internal NativeException ex; /**< buffer for LibVLC exceptions */ - internal SafeHandle handle; /**< wrapped safe handle */ - - internal BaseObject () - { - ex = new NativeException (); - this.handle = null; - } - - /** - * Checks if the LibVLC run-time raised an exception - * If so, raises a CIL exception. - */ - internal void Raise () - { - ex.Raise (); - } - - /** - * IDisposable::Dispose. - */ - public void Dispose () - { - Dispose (true); - GC.SuppressFinalize (this); - } - - /** - * Releases unmanaged resources associated with the object. - * @param disposing true if the disposing the object explicitly, - * false if finalizing the object inside the GC. - */ - protected virtual void Dispose (bool disposing) - { - if (disposing) - { - ex.Dispose (); - if (handle != null) - handle.Close (); - } - ex = null; - handle = null; - } - }; - - internal class EventManagerHandle : NonNullHandle - { - protected override void Destroy () - { - } - }; - - - /** - * @brief EventingObject: wrapper around an eventing LibVLC handle. - * @ingroup Internals - * - * This is the base class for all managed LibVLC objects which do have an - * event manager. - */ - public abstract class EventingObject : BaseObject - { - private Dictionary events; - /**< references to our unmanaged function pointers */ - - internal EventingObject () : base () - { - events = new Dictionary (); - } - - /** - * Releases unmanaged resources associated with the object. - * @param disposing true if the disposing the object explicitly, - * false if finalizing the object inside the GC. - */ - protected override void Dispose (bool disposing) - { - events = null; - base.Dispose (disposing); - } - - /** - * @return the unmanaged event manager for this object - */ - internal abstract EventManagerHandle GetManager (); - - /** - * Registers an event handler. - * @param type event type to register to - * @param callback callback to invoke when the event occurs - * - * @note - * For simplicity, we require distinct callbacks for each event type. - * This is hardly an issue since most events have different formats. - */ - internal void Attach (EventType type, Delegate callback) - { - EventManagerHandle manager; - IntPtr cb = Marshal.GetFunctionPointerForDelegate (callback); - bool unref = false; - - /* If things go wrong, we will leak the callback thunk... until - * this object is destroyed anyway. If we added the thunk _after_ - * the critical section, the native code could try to jump to a - * non-existent address, which is much worse. */ - events.Add (callback, cb); - try - { - handle.DangerousAddRef (ref unref); - manager = GetManager (); - LibVLC.EventAttach (manager, type, cb, IntPtr.Zero, ex); - } - finally - { - if (unref) - handle.DangerousRelease (); - } - Raise (); - } - - internal void Detach (EventType type, Delegate callback) - { - EventManagerHandle manager; - IntPtr cb = events[callback]; - bool unref = false; - - try - { - handle.DangerousAddRef (ref unref); - manager = GetManager (); - LibVLC.EventDetach (manager, type, cb, IntPtr.Zero, ex); - } - finally - { - if (unref) - handle.DangerousRelease (); - } - Raise (); - events.Remove (callback); - } - }; -}; diff --git a/bindings/cil/src/media.cs b/bindings/cil/src/media.cs deleted file mode 100644 index a18a936b88..0000000000 --- a/bindings/cil/src/media.cs +++ /dev/null @@ -1,319 +0,0 @@ -/** - * @file media.cs - * @brief Media descriptor class - * @ingroup API - */ - -/********************************************************************** - * Copyright (C) 2007-2009 Rémi Denis-Courmont. * - * This program is free software; you can redistribute and/or modify * - * it under the terms of the GNU General Public License as published * - * by the Free Software Foundation; 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, you can get it from: * - * http://www.gnu.org/copyleft/gpl.html * - **********************************************************************/ - -using System; -//using System.Collections.Generic; -using System.Runtime.InteropServices; - -namespace VideoLAN.LibVLC -{ - /** - * @brief MediaHandle: unmanaged LibVLC media pointer - * @ingroup Internals - */ - internal sealed class MediaHandle : NonNullHandle - { - /** - * NonNullHandle.Destroy - */ - protected override void Destroy () - { - LibVLC.MediaRelease (handle); - } - }; - - /** - * @brief MetaType: type of a media meta-information entry - */ - public enum MetaType - { - Title, - Artist, - Genre, - Copyright, - Album, - TrackNumber, - Description, - Rating, - Date, - Setting, - URL, - Language, - NowPlaying, - Publisher, - EncodedBy, - ArtworkURL, - TrackID, - }; - - /** - * @brief State: media/player state - * - * Media and Player objects are always in one of these state. - * @see Media::State and @see Player::State. - */ - public enum State - { - NothingSpecial, /**< Nothing going on */ - Opening, /**< Being opened */ - Buffering, /**< Buffering before play */ - Playing, /**< Playing */ - Paused, /**< Paused */ - Stopped, /**< Stopped */ - Ended, /**< Played until the end */ - Error, /**< Failed */ - }; - - /* Media events */ - [StructLayout (LayoutKind.Sequential)] - internal sealed class MediaMetaEvent : GenericEvent - { - public MetaType metaType; - }; - internal delegate void MediaMetaCallback (MediaMetaEvent e, IntPtr d); - - /*[StructLayout (LayoutKind.Sequential)] - internal sealed class MediaSubitemEvent : GenericEvent - { - public IntPtr child; -- MediaHandle - };*/ - - [StructLayout (LayoutKind.Sequential)] - internal sealed class MediaDurationEvent : GenericEvent - { - public long duration; - }; - internal delegate void MediaDurationCallback (MediaDurationEvent e, - IntPtr d); - - [StructLayout (LayoutKind.Sequential)] - internal sealed class MediaPreparseEvent : GenericEvent - { - public int status; - }; - internal delegate void MediaPreparseCallback (MediaPreparseEvent e, - IntPtr d); - - /* media_freed -> bad idea w.r.t. the GC */ - - [StructLayout (LayoutKind.Sequential)] - internal sealed class MediaStateEvent : GenericEvent - { - public State state; - }; - internal delegate void MediaStateCallback (MediaStateEvent e, IntPtr d); - - /** - * @brief Media: a source media - * @ingroup API - * Each media object represents an input media, such as a file or an URL. - */ - public class Media : EventingObject, ICloneable - { - internal MediaHandle Handle - { - get - { - return handle as MediaHandle; - } - } - - /** - * Creates a Media object. - * - * @param instance VLC instance - * @param mrl Media Resource Locator (file path or URL) - */ - public Media (VLC instance, string mrl) - { - U8String umrl = new U8String (mrl); - - handle = LibVLC.MediaCreate (instance.Handle, umrl, ex); - Raise (); - Attach (); - } - - private Media (MediaHandle handle) - { - this.handle = handle; - Attach (); - } - - /** - * Duplicates a media object. - */ - public object Clone () - { - return new Media (LibVLC.MediaDuplicate (Handle)); - } - - private void Attach () - { - Attach (EventType.MediaMetaChanged, - new MediaMetaCallback (MetaCallback)); - //Attach (EventType.MediaSubItemAdded, SubItemAdded); - Attach (EventType.MediaDurationChanged, - new MediaDurationCallback (DurationCallback)); - /*Attach (EventType.MediaPreparsedChanged, - new MediaPreparseCallback (PreparseCallback));*/ - /* MediaFreed: better not... */ - Attach (EventType.MediaStateChanged, - new MediaStateCallback (StateCallback)); - } - - /** - * Add VLC input item options to the media. - * @code - * Media m = new Media(vlc, "http://www.example.com/music.ogg"); - * m.AddOptions(":http-user-agent=LibVLC.Net " - * + ":http-proxy=proxy:8080", true); - * @endcode - * @param options VLC options in VLC input item format - * (see example below) - * @param trusted whether the options are set by a trusted agent - * (e.g. the local computer configuration) or not - * (e.g. a downloaded file). - * @version VLC 0.9.9 if trusted is false - */ - public void AddOptions (string options, bool trusted) - { - U8String uopts = new U8String (options); - - if (trusted) - LibVLC.MediaAddOption (Handle, uopts, ex); - else - LibVLC.MediaAddUntrustedOption (Handle, uopts, ex); - Raise (); - } - - /** - * The media location (file path, URL, ...). - * @version VLC 1.0 - */ - public string Location - { - get - { - StringHandle str = LibVLC.MediaGetMRL (Handle, ex); - Raise (); - return str.Transform (); - } - } - - public override string ToString () - { - return Location; - } - - /** - * @param type meta data type - * @return the meta data value, or @a null if unknown - */ - public string GetMeta (MetaType type) - { - StringHandle str = LibVLC.MediaGetMeta (Handle, type, ex); - Raise (); - return str.Transform (); - } - - public delegate void MetaChange (Media media, MetaType type); - public event MetaChange MetaChanged; - private void MetaCallback (MediaMetaEvent ev, IntPtr data) - { - if (MetaChanged != null) - MetaChanged (this, ev.metaType); - } - - /** - * Current state of the media. - */ - public State State - { - get - { - State ret = LibVLC.MediaGetState (Handle, ex); - Raise (); - return ret; - } - } - - public delegate void StateChange (Media media, State state); - public event StateChange StateChanged; - private void StateCallback (MediaStateEvent ev, IntPtr data) - { - if (StateChanged != null) - StateChanged (this, ev.state); - } - - internal override EventManagerHandle GetManager () - { - return LibVLC.MediaEventManager (Handle, null); - } - - /** - * Duration of the media in microseconds. The precision of the result - * depends on the input stram protocol and file format. The value - * might be incorrect and unknown (VLC usually returns 0 or -1 then). - */ - public long Duration - { - get - { - long duration = LibVLC.MediaGetDuration (Handle, ex); - Raise (); - return duration; - } - } - - public delegate void DurationChange (Media media, long duration); - public event DurationChange DurationChanged; - private void DurationCallback (MediaDurationEvent ev, IntPtr data) - { - if (DurationChanged != null) - DurationChanged (this, ev.duration); - } - - /** - * Whether the media was "preparsed". If true, the meta-infos were - * extracted, even before the media was played. This is normally only - * available if the input files is stored on a local filesystem. - */ - public bool IsPreparsed - { - get - { - int preparsed = LibVLC.MediaIsPreparsed (Handle, ex); - Raise (); - return preparsed != 0; - } - } - - public delegate void PreparseChange (Media media, bool preparsed); - public event PreparseChange PreparseChanged; - private void PreparseCallback (MediaPreparseEvent ev, IntPtr data) - { - if (PreparseChanged != null) - PreparseChanged (this, ev.status != 0); - } - }; -}; diff --git a/bindings/cil/src/player.cs b/bindings/cil/src/player.cs deleted file mode 100644 index 7eb617086b..0000000000 --- a/bindings/cil/src/player.cs +++ /dev/null @@ -1,446 +0,0 @@ -/** - * @file player.cs - * @brief Media player class - * @ingroup API - * - * @defgroup API Managed interface to LibVLC - * This is the primary class library for .NET applications - * to embed and control LibVLC. - * - * @defgroup Internals LibVLC internals - * This covers internal marshalling functions to use the native LibVLC. - * Only VLC developers should need to read this section. - */ - -/********************************************************************** - * Copyright (C) 2009 Rémi Denis-Courmont. * - * This program is free software; you can redistribute and/or modify * - * it under the terms of the GNU General Public License as published * - * by the Free Software Foundation; 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, you can get it from: * - * http://www.gnu.org/copyleft/gpl.html * - **********************************************************************/ - -using System; -using System.Runtime.InteropServices; - -namespace VideoLAN.LibVLC -{ - /** - * @brief PlayerHandle: unmanaged LibVLC media player pointer - * @ingroup Internals - */ - internal sealed class PlayerHandle : NonNullHandle - { - protected override void Destroy () - { - LibVLC.PlayerRelease (handle); - } - }; - - /** - * @brief MediaPlayer: a simple media player - * @ingroup API - * Use this class to play a media. - */ - public class Player : EventingObject - { - internal PlayerHandle Handle - { - get - { - return handle as PlayerHandle; - } - } - - Media media; /**< Active media */ - /** - * The Media object that the MediaPlayer is using, - * or null if there is none. - */ - public Media Media - { - get - { - return media; - } - set - { - MediaHandle mh = (value != null) ? value.Handle : null; - - LibVLC.PlayerSetMedia (Handle, mh, null); - media = value; - } - } - - /** - * Creates a player with no medias. - * An input media will be needed before this media player can be used. - * - * @param instance VLC instance - */ - public Player (VLC instance) - { - this.media = null; - handle = LibVLC.PlayerCreate (instance.Handle, ex); - Raise (); - } - - /** - * Creates a player object for a given a media. - * - * @param media media object - */ - public Player (Media media) - { - this.media = media; - handle = LibVLC.PlayerCreateFromMedia (media.Handle, ex); - Raise (); - } - - internal override EventManagerHandle GetManager () - { - return LibVLC.PlayerEventManager (Handle, null); - } - - /** - * Whether the player is currently active. - * @version VLC 1.0 - */ - public bool IsPlaying - { - get - { - int ret = LibVLC.PlayerIsPlaying (Handle, ex); - Raise (); - return ret != 0; - } - } - - /** - * Starts playing the selected media. - */ - public void Play () - { - LibVLC.PlayerPlay (Handle, ex); - Raise (); - } - - /** - * Pauses the playback. - */ - public void Pause () - { - LibVLC.PlayerPause (Handle, ex); - Raise (); - } - - /** - * Stops the playback. - */ - public void Stop () - { - LibVLC.PlayerStop (Handle, ex); - Raise (); - } - - /** - * The 32-bits identifier of an X Window System window, - * or 0 if not specified. - * Video will be rendered inside that window, if the underlying VLC - * supports X11. Note that X pixmaps are not supported. - * Also note that you should set/change/unset the window while - * playback is not started or stopped; live reparenting might not - * work. - * - * @warning If the identifier is invalid, Xlib might abort the process. - * @version VLC 1.0 - */ - public int XWindow - { - get - { - return LibVLC.PlayerGetXWindow (Handle); - } - set - { - LibVLC.PlayerSetXWindow (Handle, value, ex); - Raise (); - } - } - - /** - * The handle of a window (HWND) from the Win32 API, - * or NULL if unspecified. - * Video will be rendered inside that window, if the underlying VLC - * supports one of DirectDraw, Direct3D, GDI or OpenGL/Win32. - * Note that you should set/change/unset the window while playback is - * not started or stopped; live reparenting might not work. - * @version VLC 1.0 - */ - public SafeHandle HWND - { - get - { - return LibVLC.PlayerGetHWND (Handle); - } - set - { - LibVLC.PlayerSetHWND (Handle, value, ex); - Raise (); - } - } - - /** - * Total length in milliseconds of the playback (if known). - */ - public long Length - { - get - { - long ret = LibVLC.PlayerGetLength (Handle, ex); - Raise (); - return ret; - } - } - - /** - * Playback position in milliseconds from the start (if applicable). - * Setting this value might not work depending on the underlying - * media capability and file format. - * - * Changing the Time will also change the Position. - */ - public long Time - { - get - { - long ret = LibVLC.PlayerGetTime (Handle, ex); - Raise (); - return ret; - } - set - { - LibVLC.PlayerSetTime (Handle, value, ex); - Raise (); - } - } - - /** - * Playback position as a fraction of the total (if applicable). - * At start, this is 0; at the end, this is 1. - * Setting this value might not work depending on the underlying - * media capability and file format. - * - * Changing the Position will also change the Time. - */ - public float Position - { - get - { - float ret = LibVLC.PlayerGetPosition (Handle, ex); - Raise (); - return ret; - } - set - { - LibVLC.PlayerSetPosition (Handle, value, ex); - Raise (); - } - } - - /** - * Number of the current chapter (within the current title). - * This is mostly used for DVDs and the likes. - */ - public int Chapter - { - get - { - int ret = LibVLC.PlayerGetChapter (Handle, ex); - Raise (); - return ret; - } - set - { - LibVLC.PlayerSetChapter (Handle, value, ex); - Raise (); - } - } - - /** - * Number of chapters within the current title, - */ - public int ChapterCount - { - get - { - int ret = LibVLC.PlayerGetChapterCount (Handle, ex); - Raise (); - return ret; - } - } - - /** - * Gets the number of chapters within a given title. - * @param title media title number - * @version VLC 1.0 - */ - public int GetChapterCountByTitle (int title) - { - int ret = LibVLC.PlayerGetChapterCountForTitle (Handle, title, ex); - Raise (); - return ret; - } - - /** - * Number of the current title. - * @version VLC 1.0 - */ - public int Title - { - get - { - int ret = LibVLC.PlayerGetTitle (Handle, ex); - Raise (); - return ret; - } - set - { - LibVLC.PlayerSetTitle (Handle, value, ex); - Raise (); - } - } - - /** - * Total number of titles. - * @version VLC 1.0 - */ - public int TitleCount - { - get - { - int ret = LibVLC.PlayerGetTitleCount (Handle, ex); - Raise (); - return ret; - } - } - - /** - * Skips to the beginning of the next chapter. - * @version VLC 1.0 - */ - public void NextChapter () - { - LibVLC.PlayerNextChapter (Handle, ex); - Raise (); - } - - /** - * Rewinds to the previous chapter. - * @version VLC 1.0 - */ - public void PreviousChapter () - { - LibVLC.PlayerPreviousChapter (Handle, ex); - Raise (); - } - - /** - * Media playback rate. - * 1.0 is the nominal rate. - * Less than one is slower than nominal. - * More than one is faster than nominal. - */ - public float Rate - { - get - { - float ret = LibVLC.PlayerGetRate (Handle, ex); - Raise (); - return ret; - } - set - { - LibVLC.PlayerSetRate (Handle, value, ex); - Raise (); - } - } - - /** - * Current state of the player. - */ - public State State - { - get - { - State ret = LibVLC.PlayerGetState (Handle, ex); - Raise (); - return ret; - } - } - - /** - * Frame rate in unit/seconds. - */ - public float FramePerSeconds - { - get - { - float ret = LibVLC.PlayerGetFPS (Handle, ex); - Raise (); - return ret; - } - } - - /** - * Whether a video track is currently active. - * This is false if there is no video track, or if video is discarded. - */ - public bool HasVideo - { - get - { - int ret = LibVLC.PlayerHasVout (Handle, ex); - Raise (); - return ret != 0; - } - } - - /** - * Whether the media supports seeking. - * Note that this tells nothing about the seeking precision. - */ - public bool CanSeek - { - get - { - int ret = LibVLC.PlayerIsSeekable (Handle, ex); - Raise (); - return ret != 0; - } - } - - /** - * Whether the media supports pausing. - * Live content cannot be paused, unless timeshifting is enabled. - */ - public bool CanPause - { - get - { - int ret = LibVLC.PlayerCanPause (Handle, ex); - Raise (); - return ret != 0; - } - } - }; -}; diff --git a/bindings/cil/src/ustring.cs b/bindings/cil/src/ustring.cs deleted file mode 100644 index 030064ea66..0000000000 --- a/bindings/cil/src/ustring.cs +++ /dev/null @@ -1,137 +0,0 @@ -/** - * @file ustring.cs - * @brief Managed LibVLC strings - * @ingroup Internals - */ - -/********************************************************************** - * Copyright (C) 2007 Rémi Denis-Courmont. * - * This program is free software; you can redistribute and/or modify * - * it under the terms of the GNU General Public License as published * - * by the Free Software Foundation; 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, you can get it from: * - * http://www.gnu.org/copyleft/gpl.html * - **********************************************************************/ - -using System; -using System.Runtime.InteropServices; - -namespace VideoLAN.LibVLC -{ - /** - * @brief U8String: Native UTF-8 characters array - * @ingroup Internals - * This supports conversion between native UTF-8 nul-terminated characters - * arrays (as used by the native LibVLC) and managed strings. - */ - [StructLayout (LayoutKind.Sequential)] - internal struct U8String - { - public byte[] mb_str; /**< nul-terminated UTF-8 bytes array */ - - /** - * Creates an UTF-8 characters array from a .NET string. - * @param value string to convert - */ - public U8String (string value) - { - mb_str = null; - if (value == null) - return; - - byte[] bytes = System.Text.Encoding.UTF8.GetBytes (value); - mb_str = new byte[bytes.Length + 1]; - Array.Copy (bytes, mb_str, bytes.Length); - mb_str[bytes.Length] = 0; - } - - private U8String (IntPtr ptr) - { - mb_str = null; - if (ptr == IntPtr.Zero) - return; - - int i = 0; - while (Marshal.ReadByte (ptr, i) != 0) - i++; - i++; - - mb_str = new byte[i]; - Marshal.Copy (ptr, mb_str, 0, i); - } - - /** - * Object::ToString. - */ - public override string ToString () - { - if (mb_str == null) - return null; - - byte[] bytes = new byte[mb_str.Length - 1]; - Array.Copy (mb_str, bytes, bytes.Length); - - return System.Text.Encoding.UTF8.GetString (bytes); - } - - /** - * Converts a pointer to a nul-terminated UTF-8 characters array into - * a managed string. - */ - public static string FromNative (IntPtr ptr) - { - return new U8String (ptr).ToString (); - } - }; - - /** - * @brief MemoryHandle: heap allocation by the C run-time - * @ingroup Internals - */ - internal class MemoryHandle : NonNullHandle - { - /** - * NonNullHandle.Destroy - */ - protected override void Destroy () - { - LibVLC.Free (handle); - } - }; - - /** - * @brief StringHandle: heap-allocated characters array - * @ingroup Internals - */ - internal sealed class StringHandle : MemoryHandle - { - /** - * Converts an heap-allocated nul-terminated UTF-8 characters array - * into a managed string. - * @return the resulting managed string. - */ - public override string ToString () - { - return U8String.FromNative (handle); - } - - /** - * Converts the buffer (as in ToString()) and release it. - * @return managed string representation of the buffer - */ - public string Transform () - { - string value = ToString (); - Close (); - return value; - } - }; -}; diff --git a/bindings/cil/tests/.gitignore b/bindings/cil/tests/.gitignore deleted file mode 100644 index 7ca215f87c..0000000000 --- a/bindings/cil/tests/.gitignore +++ /dev/null @@ -1 +0,0 @@ -testvlc.exe diff --git a/bindings/cil/tests/Makefile.am b/bindings/cil/tests/Makefile.am deleted file mode 100644 index c463c3f05d..0000000000 --- a/bindings/cil/tests/Makefile.am +++ /dev/null @@ -1,14 +0,0 @@ -EXTRA_DIST = $(SOURCES_testvlc) -MOSTLYCLEANFILES = $(check_SCRIPTS) - -noinst_SCRIPTS = testvlc.exe -dist_check_SCRIPTS = missing_api - -SOURCES_testvlc = testvlc.cs -LDADD_testvlc = -lib:../src -r:VideoLAN.LibVLC.dll - -testvlc.exe: $(SOURCES_testvlc) ../src/VideoLAN.LibVLC.dll - $(CSC) -target:exe -out:$@ $(CSFLAGS) $(SOURCES_testvlc) \ - $(LDADD_testvlc) - -TESTS = missing_api diff --git a/bindings/cil/tests/missing_api b/bindings/cil/tests/missing_api deleted file mode 100755 index 4f3fc3ad5d..0000000000 --- a/bindings/cil/tests/missing_api +++ /dev/null @@ -1,41 +0,0 @@ -#! /bin/sh -# Finds LibVLC API mismatch within the CIL bindings -# Copyright 2008 Rémi Denis-Courmont - -if test "${srcdir}" = ""; then - srcdir="$(dirname "$0")" -fi - -libvlcsym="${srcdir}/../../../src/libvlc.sym" -if ! test -f "${libvlcsym}"; then - echo "Cannot find ${libvlcsym}\!" >&2 - exit 77 -fi - -cat ${srcdir}/../src/*.cs | \ -sed -n -e 's,^.*EntryPoint="\([^"]*\)".*$,\1,p' | { - cat - # Symbols we do not need: - echo 'libvlc_exception_raise' -} | \ -sort -u | \ -diff -u - "${libvlcsym}" | \ -grep -ve '^+\(mediacontrol_\|libvlc_playlist_\)' | { - read line # --- - read line # +++ - broken=no - while read line; do - match="${line#+}" - if test "${line}" != "${match}"; then - echo "Unimplemented: $match" - broken=yes - fi - - match="${line#-}" - if test "${line}" != "${match}"; then - echo "Invalid: $match" - broken=yes - fi - done - test "${broken}" = "no" -} diff --git a/bindings/cil/tests/testvlc.cs b/bindings/cil/tests/testvlc.cs deleted file mode 100644 index 9ea8a3188a..0000000000 --- a/bindings/cil/tests/testvlc.cs +++ /dev/null @@ -1,101 +0,0 @@ -/* - * testvlc.cs - tests for libvlc CIL bindings - * - * $Id$ - */ - -/********************************************************************** - * Copyright (C) 2007 Rémi Denis-Courmont. * - * This program is free software; you can redistribute and/or modify * - * it under the terms of the GNU General Public License as published * - * by the Free Software Foundation; 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, you can get it from: * - * http://www.gnu.org/copyleft/gpl.html * - **********************************************************************/ - -using System; -using VideoLAN.LibVLC; - -namespace VideoLAN.LibVLC.Test -{ - public sealed class Test - { - private static void DumpMedia (Media m) - { - Console.WriteLine ("Media: {0} {1} (duration: {2}, {3}preparsed)", - m.State, m.Location, m.Duration, - m.IsPreparsed ? "" : "not "); - } - - private static void WriteMediaState (Media m, State s) - { - Console.WriteLine (" -> {0}", s); - } - - private static void DumpPlayer (Player p) - { - if (!p.IsPlaying) - return; - - int percent = (int)(p.Position * 100); - Console.Write ("{0}: {1} of {2} ms ({3}%)\r", p.State, - p.Time, p.Length, percent); - } - - private static void Sleep (int msec) - { - System.Threading.Thread.Sleep (msec); - } - - public static int Main (string[] args) - { - string[] argv = new string[]{ - "-vv", "-I", "dummy", "--plugin-path=../../modules" - }; - - Console.WriteLine ("Running on LibVLC {0} ({1})", VLC.Version, - VLC.ChangeSet); - Console.WriteLine (" (compiled with {0})", VLC.Compiler); - - VLC vlc = new VLC (argv); - foreach (string mrl in args) - { - Media media = new Media (vlc, mrl); - Player player = new Player (media); - - DumpMedia (media); - DumpMedia ((Media)media.Clone ()); - media.StateChanged += WriteMediaState; - - /*foreach (MetaType type in Enum.GetValues (typeof (MetaType))) - { - string meta = media.GetMeta (type); - if (meta != null) - Console.WriteLine (" {0}: {1}", type, meta); - }*/ - - player.Play (); - do - { - DumpPlayer (player); - Sleep (500); - } - while (player.IsPlaying); - player.Stop (); - media.Dispose (); - player.Dispose (); - } - - vlc.Dispose (); - return 0; - } - }; -};