diff --git a/.gitignore b/.gitignore index b73fcf97..01c68b74 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,5 @@ AndroidRemote.dll.mdb /ClientServerLib/AndroidRemote/bin/AndroidRemote.dll /ClientServerLib/ClientTest/bin/Debug/Newtonsoft.Json.dll *.apk +Installer/VocaluxeSetup_0.3.0Beta.exe +Output/Vocaluxe_x64.exe diff --git a/GstreamerHelper/GstreamerHelper.vcxproj b/GstreamerHelper/GstreamerHelper.vcxproj index 3f43af5b..81d50d0e 100644 --- a/GstreamerHelper/GstreamerHelper.vcxproj +++ b/GstreamerHelper/GstreamerHelper.vcxproj @@ -9,6 +9,14 @@ DebugWin x64 + + InstallerWin + Win32 + + + InstallerWin + x64 + ReleaseWin Win32 @@ -43,6 +51,13 @@ true Unicode + + DynamicLibrary + false + v110_xp + true + Unicode + DynamicLibrary false @@ -50,6 +65,13 @@ true Unicode + + DynamicLibrary + false + v110_xp + true + Unicode + @@ -62,9 +84,15 @@ + + + + + + @@ -90,6 +118,13 @@ $(MSBuildProjectDirectory)\x86\lib;$(LibraryPath) obj\$(Configuration).$(Platform)\ + + false + bin\$(Configuration).$(Platform)\ + $(MSBuildProjectDirectory)\x86\lib\glib-2.0\include;$(MSBuildProjectDirectory)\x86\include\gstreamer-1.0;$(MSBuildProjectDirectory)\x86\include\glib-2.0;$(MSBuildProjectDirectory)\x86\include;$(IncludePath) + $(MSBuildProjectDirectory)\x86\lib;$(LibraryPath) + obj\$(Configuration).$(Platform)\ + false bin\$(Configuration).$(Platform)\ @@ -97,6 +132,13 @@ $(MSBuildProjectDirectory)\x64\lib;$(LibraryPath) obj\$(Configuration).$(Platform)\ + + false + bin\$(Configuration).$(Platform)\ + $(MSBuildProjectDirectory)\x64\lib\glib-2.0\include;$(MSBuildProjectDirectory)\x64\include\gstreamer-1.0;$(MSBuildProjectDirectory)\x64\include\glib-2.0;$(MSBuildProjectDirectory)\x64\include;$(IncludePath) + $(MSBuildProjectDirectory)\x64\lib;$(LibraryPath) + obj\$(Configuration).$(Platform)\ + ..\Output\x86 @@ -168,6 +210,31 @@ Copying binary + + + Level3 + Use + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;GSTREAMERHELPER_EXPORTS;%(PreprocessorDefinitions) + true + + + Windows + false + true + true + gstreamer-1.0.lib;gstcontroller-1.0.lib;gobject-2.0.lib;glib-2.0.lib;gstapp-1.0.lib;%(AdditionalDependencies) + false + + + xcopy "$(OutDir)*.dll" "$(SolutionDir)Output\x86\gstreamer\" /I /Y + + + Copying binary + + Level3 @@ -191,6 +258,29 @@ xcopy "$(OutDir)*.dll" "$(SolutionDir)Output\x64\gstreamer\" /I /Y + + + Level3 + Use + Full + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;GSTREAMERHELPER_EXPORTS;%(PreprocessorDefinitions) + true + true + Speed + + + Windows + false + true + true + gstreamer-1.0.lib;gstcontroller-1.0.lib;gobject-2.0.lib;glib-2.0.lib;gstapp-1.0.lib;%(AdditionalDependencies) + + + xcopy "$(OutDir)*.dll" "$(SolutionDir)Output\x64\gstreamer\" /I /Y + + @@ -209,11 +299,17 @@ false + false false + false + + + + @@ -223,11 +319,13 @@ Create Create Create + Create Create + Create - \ No newline at end of file + diff --git a/Installer/Graphics/banner.jpg b/Installer/Graphics/banner.jpg new file mode 100644 index 00000000..32f65992 Binary files /dev/null and b/Installer/Graphics/banner.jpg differ diff --git a/Installer/Graphics/dialog.jpg b/Installer/Graphics/dialog.jpg new file mode 100644 index 00000000..8663e39b Binary files /dev/null and b/Installer/Graphics/dialog.jpg differ diff --git a/Installer/License.rtf b/Installer/License.rtf new file mode 100644 index 00000000..56bc4b51 --- /dev/null +++ b/Installer/License.rtf @@ -0,0 +1,879 @@ +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31506\stshfloch31506\stshfhich31506\stshfbi31507\deflang1031\deflangfe1031\themelang1031\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;} +{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} +{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f39\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f40\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f42\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f43\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f44\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f45\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f46\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f47\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f39\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f40\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f42\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f43\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f44\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f45\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f46\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f47\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f409\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f410\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\f412\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f413\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f416\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f417\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);} +{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;} +{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;} +{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} +{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} +{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; +\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp \f31506\fs22\lang1031\langfe1033\langfenp1033 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 +\ltrch\fcs0 \f31506\fs22\lang1031\langfe1033\cgrid\langnp1031\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1031\langfe1033\cgrid\langnp1031\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}{ +\s15\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1031\langfe1033\cgrid\langnp1031\langfenp1033 \snext15 \sqformat \spriority1 \styrsid15035535 +No Spacing;}}{\*\rsidtbl \rsid8019918\rsid9454469\rsid15035535\rsid15863478}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Florian K\'fcpper} +{\operator Florian K\'fcpper}{\creatim\yr2013\mo8\dy30\hr17\min37}{\revtim\yr2013\mo8\dy30\hr17\min37}{\version3}{\edmins0}{\nofpages13}{\nofwords4814}{\nofchars30333}{\nofcharsws35077}{\vern57435}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office +/word/2003/wordml}}\paperw11906\paperh16838\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect +\deftab708\widowctrl\ftnbj\aenddoc\hyphhotz425\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0 +\showxmlerrors1\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1417\dgvorigin1417\dghshow1\dgvshow1 +\jexpand\viewkind1\viewscale110\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct +\asianbrkrule\rsidroot15863478\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0 +{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2 +\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6 +\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang +{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\s15\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15035535 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang1031\langfe1033\cgrid\langnp1031\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid9454469 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid9454469\charrsid15035535 +GNU GENERAL PUBLIC LICENSE +\par Version 3, 29 June 2007 +\par +\par Copyright (C) 2007 Free Software Foundation, Inc. +\par Everyone is permitted to copy and distribute verbatim copies +\par of this license document, but changing it is not allowed. +\par +\par Preamble +\par +\par The GNU General Public License is a free, copyleft license for +\par software and other kinds of works. +\par +\par The licenses for most software and other practical works are designed +\par to take away your freedom to share and change the works. By contrast, +\par the GNU General Public License is intended to guarantee your freedom to +\par share and change all versions of a program--to make sure it remains free +\par software for all its users. We, the Free Software Foundation, use the +\par GNU General Public License for most of our software; it applies also to +\par any other work released this way by its authors. You can apply it to +\par your programs, too. +\par +\par When we speak of free software, we are referring to freedom, not +\par price. Our General Public Licenses are designed to make sure that you +\par have the freedom to distribute copies of free software (and charge for +\par them if you wish), that you receive source code or can get it if you +\par want it, that you can change the software or use pieces of it in new +\par free programs, and that you know you can do these things. +\par +\par To protect your rights, we need to prevent others from denying you +\par these rights or asking you to surrender the rights. Therefore, you have +\par certain responsibilities if you distribute copies of the software, or if +\par you modify it: responsibilities to respect the freedom of others. +\par +\par For example, if you distribute copies of such a program, whether +\par gratis or for a fee, you must pass on to the recipients the same +\par freedoms that you received. You must make sure that they, too, receive +\par or can get the source code. And you must show them these terms so they +\par know their rights. +\par +\par Developers that use the GNU GPL protect your rights with two steps: +\par (1) assert copyright on the software, and (2) offer you this License +\par giving you legal permission to copy, distribute and/or modify it. +\par +\par For the developers' and authors' protection, the GPL clearly explains +\par that there is no warranty for this free software. For both users' and +\par authors' sake, the GPL requires that modified versions be marked as +\par changed, so that their problems will not be attributed erroneously to +\par authors of previous versions. +\par +\par Some devices are designed to deny users access to install or run +\par modified versions of the software inside them, although the manufacturer +\par can do so. This is fundamentally incompatible with the aim of +\par protecting users' freedom to change the software. The systematic +\par pattern of such abuse occurs in the area of products for individuals to +\par use, which is precisely where it is most unacceptable. Therefore, we +\par have designed this version of the GPL to prohibit the practice for those +\par products. If such problems arise substantially in other domains, we +\par stand ready to extend this provision to those domains in future versions +\par of the GPL, as needed to protect the freedom of users. +\par +\par Finally, every program is threatened constantly by software patents. +\par States should not allow patents to restrict development and use of +\par software on general-purpose computers, but in those that do, we wish to +\par avoid the special danger that patents applied to a free program could +\par make it effectively proprietary. To prevent this, the GPL assures that +\par patents cannot be used to render the program non-free. +\par +\par The precise terms and conditions for copying, distribution and +\par modification follow. +\par +\par TERMS AND CONDITIONS +\par +\par 0. Definitions. +\par +\par "This License" refers to version 3 of the GNU General Public License. +\par +\par "Copyright" also means copyright-like laws that apply to other kinds of +\par works, such as semiconductor masks. +\par +\par "The Program" refers to any copyrightable work licensed under this +\par License. Each licensee is addressed as "you". "Licensees" and +\par "recipients" may be individuals or organizations. +\par +\par To "modify" a work means to copy from or adapt all or part of the work +\par in a fashion requiring copyright permission, other than the making of an +\par exact copy. The resulting work is called a "modified version" of the +\par earlier work or a work "based on" the earlier work. +\par +\par A "covered work" means either the unmodified Program or a work based +\par on the Program. +\par +\par To "propagate" a work means to do anything with it that, without +\par permission, would make you directly or secondarily liable for +\par infringement under applicable copyright law, except executing it on a +\par computer or modifying a private copy. Propagation includes copying, +\par distribution (with or without modification), making available to the +\par public, and in some countries other activities as well. +\par +\par To "convey" a work means any kind of propagation that enables other +\par parties to make or receive copies. Mere interaction with a user through +\par a computer network, with no transfer of a copy, is not conveying. +\par +\par An interactive user interface displays "Appropriate Legal Notices" +\par to the extent that it includes a convenient and prominently visible +\par feature that (1) displays an appropriate copyright notice, and (2) +\par tells the user that there is no warranty for the work (except to the +\par extent that warranties are provided), that licensees may convey the +\par work under this License, and how to view a copy of this License. If +\par the interface presents a list of user commands or options, such as a +\par menu, a prominent item in the list meets this criterion. +\par +\par 1. Source Code. +\par +\par The "source code" for a work means the preferred form of the work +\par for making modifications to it. "Object code" means any non-source +\par form of a work. +\par +\par A "Standard Interface" means an interface that either is an official +\par standard defined by a recognized standards body, or, in the case of +\par interfaces specified for a particular programming language, one that +\par is widely used among developers working in that language. +\par +\par The "System Libraries" of an executable work include anything, other +\par than the work as a whole, that (a) is included in the normal form of +\par packaging a Major Component, but which is not part of that Major +\par Component, and (b) serves only to enable use of the work with that +\par Major Component, or to implement a Standard Interface for which an +\par implementation is available to the public in source code form. A +\par "Major Component", in this context, means a major essential component +\par (kernel, window system, and so on) of the specific operating system +\par (if any) on which the executable work runs, or a compiler used to +\par produce the work, or an object code interpreter used to run it. +\par +\par The "Corresponding Source" for a work in object code form means all +\par the source code needed to generate, install, and (for an executable +\par work) run the object code and to modify the work, including scripts to +\par control those activities. However, it does not include the work's +\par System Libraries, or general-purpose tools or generally available free +\par programs which are used unmodified in performing those activities but +\par which are not part of the work. For example, Corresponding Source +\par includes interface definition files associated with source files for +\par the work, and the source code for shared libraries and dynamically +\par linked subprograms that the work is specifically designed to require, +\par such as by intimate data communication or control flow between those +\par subprograms and other parts of the work. +\par +\par The Corresponding Source need not include anything that users +\par can regenerate automatically from other parts of the Corresponding +\par Source. +\par +\par The Corresponding Source for a work in source code form is that +\par same work. +\par +\par 2. Basic Permissions. +\par +\par All rights granted under this License are granted for the term of +\par copyright on the Program, and are irrevocable provided the stated +\par conditions are met. This License explicitly affirms your unlimited +\par permission to run the unmodified Program. The output from running a +\par covered work is covered by this License only if the output, given its +\par content, constitutes a covered work. This License acknowledges your +\par rights of fair use or other equivalent, as provided by copyright law. +\par +\par You may make, run and propagate covered works that you do not +\par convey, without conditions so long as your license otherwise remains +\par in force. You may convey covered works to others for the sole purpose +\par of having them make modifications exclusively for you, or provide you +\par with facilities for running those works, provided that you comply with +\par the terms of this License in conveying all material for which you do +\par not control copyright. Those thus making or running the covered works +\par for you must do so exclusively on your behalf, under your direction +\par and control, on terms that prohibit them from making any copies of +\par your copyrighted material outside their relationship with you. +\par +\par Conveying under any other circumstances is permitted solely under +\par the conditions stated below. Sublicensing is not allowed; section 10 +\par makes it unnecessary. +\par +\par 3. Protecting Users' Legal Rights From Anti-Circumvention Law. +\par +\par No covered work shall be deemed part of an effective technological +\par measure under any applicable law fulfilling obligations under article +\par 11 of the WIPO copyright treaty adopted on 20 December 1996, or +\par similar laws prohibiting or restricting circumvention of such +\par measures. +\par +\par When you convey a covered work, you waive any legal power to forbid +\par circumvention of technological measures to the extent such circumvention +\par is effected by exercising rights under this License with respect to +\par the covered work, and you disclaim any intention to limit operation or +\par modification of the work as a means of enforcing, against the work's +\par users, your or third parties' legal rights to forbid circumvention of +\par technological measures. +\par +\par 4. Conveying Verbatim Copies. +\par +\par You may convey verbatim copies of the Program's source code as you +\par receive it, in any medium, provided that you conspicuously and +\par appropriately publish on each copy an appropriate copyright notice; +\par keep intact all notices stating that this License and any +\par non-permissive terms added in accord with section 7 apply to the code; +\par keep intact all notices of the absence of any warranty; and give all +\par recipients a copy of this License along with the Program. +\par +\par You may charge any price or no price for each copy that you convey, +\par and you may offer support or warranty protection for a fee. +\par +\par 5. Conveying Modified Source Versions. +\par +\par You may convey a work based on the Program, or the modifications to +\par produce it from the Program, in the form of source code under the +\par terms of section 4, provided that you also meet all of these conditions: +\par +\par a) The work must carry prominent notices stating that you modified +\par it, and giving a relevant date. +\par +\par b) The work must carry prominent notices stating that it is +\par released under this License and any conditions added under section +\par 7. This requirement modifies the requirement in section 4 to +\par "keep intact all notices". +\par +\par c) You must license the entire work, as a whole, under this +\par License to anyone who comes into possession of a copy. This +\par License will therefore apply, along with any applicable section 7 +\par additional terms, to the whole of the work, and all its parts, +\par regardless of how they are packaged. This License gives no +\par permission to license the work in any other way, but it does not +\par invalidate such permission if you have separately received it. +\par +\par d) If the work has interactive user interfaces, each must display +\par Appropriate Legal Notices; however, if the Program has interactive +\par interfaces that do not display Appropriate Legal Notices, your +\par work need not make them do so. +\par +\par A compilation of a covered work with other separate and independent +\par works, which are not by their nature extensions of the covered work, +\par and which are not combined with it such as to form a larger program, +\par in or on a volume of a storage or distribution medium, is called an +\par "aggregate" if the compilation and its resulting copyright are not +\par used to limit the access or legal rights of the compilation's users +\par beyond what the individual works permit. Inclusion of a covered work +\par in an aggregate does not cause this License to apply to the other +\par parts of the aggregate. +\par +\par 6. Conveying Non-Source Forms. +\par +\par You may convey a covered work in object code form under the terms +\par of sections 4 and 5, provided that you also convey the +\par machine-readable Corresponding Source under the terms of this License, +\par in one of these ways: +\par +\par a) Convey the object code in, or embodied in, a physical product +\par (including a physical distribution medium), accompanied by the +\par Corresponding Source fixed on a durable physical medium +\par customarily used for software interchange. +\par +\par b) Convey the object code in, or embodied in, a physical product +\par (including a physical distribution medium), accompanied by a +\par written offer, valid for at least three years and valid for as +\par long as you offer spare parts or customer support for that product +\par model, to give anyone who possesses the object code either (1) a +\par copy of the Corresponding Source for all the software in the +\par product that is covered by this License, on a durable physical +\par medium customarily used for software interchange, for a price no +\par more than your reasonable cost of physically performing this +\par conveying of source, or (2) access to copy the +\par Corresponding Source from a network server at no charge. +\par +\par c) Convey individual copies of the object code with a copy of the +\par written offer to provide the Corresponding Source. This +\par alternative is allowed only occasionally and noncommercially, and +\par only if you received the object code with such an offer, in accord +\par with subsection 6b. +\par +\par d) Convey the object code by offering access from a designated +\par place (gratis or for a charge), and offer equivalent access to the +\par Corresponding Source in the same way through the same place at no +\par further charge. You need not require recipients to copy the +\par Corresponding Source along with the object code. If the place to +\par copy the object code is a network server, the Corresponding Source +\par may be on a different server (operated by you or a third party) +\par that supports equivalent copying facilities, provided you maintain +\par clear directions next to the object code saying where to find the +\par Corresponding Source. Regardless of what server hosts the +\par Corresponding Source, you remain obligated to ensure that it is +\par available for as long as needed to satisfy these requirements. +\par +\par e) Convey the object code using peer-to-peer transmission, provided +\par you inform other peers where the object code and Corresponding +\par Source of the work are being offered to the general public at no +\par charge under subsection 6d. +\par +\par A separable portion of the object code, whose source code is excluded +\par from the Corresponding Source as a System Library, need not be +\par included in conveying the object code work. +\par +\par A "User Product" is either (1) a "consumer product", which means any +\par tangible personal property which is normally used for personal, family, +\par or household purposes, or (2) anything designed or sold for incorporation +\par into a dwelling. In determining whether a product is a consumer product, +\par doubtful cases shall be resolved in favor of coverage. For a particular +\par product received by a particular user, "normally used" refers to a +\par typical or common use of that class of product, regardless of the status +\par of the particular user or of the way in which the particular user +\par actually uses, or expects or is expected to use, the product. A product +\par is a consumer product regardless of whether the product has substantial +\par commercial, industrial or non-consumer uses, unless such uses represent +\par the only significant mode of use of the product. +\par +\par "Installation Information" for a User Product means any methods, +\par procedures, authorization keys, or other information required to install +\par and execute modified versions of a covered work in that User Product from +\par a modified version of its Corresponding Source. The information must +\par suffice to ensure that the continued functioning of the modified object +\par code is in no case prevented or interfered with solely because +\par modification has been made. +\par +\par If you convey an object code work under this section in, or with, or +\par specifically for use in, a User Product, and the conveying occurs as +\par part of a transaction in which the right of possession and use of the +\par User Product is transferred to the recipient in perpetuity or for a +\par fixed term (regardless of how the transaction is characterized), the +\par Corresponding Source conveyed under this section must be accompanied +\par by the Installation Information. But this requirement does not apply +\par if neither you nor any third party retains the ability to install +\par modified object code on the User Product (for example, the work has +\par been installed in ROM). +\par +\par The requirement to provide Installation Information does not include a +\par requirement to continue to provide support service, warranty, or updates +\par for a work that has been modified or installed by the recipient, or for +\par the User Product in which it has been modified or installed. Access to a +\par network may be denied when the modification itself materially and +\par adversely affects the operation of the network or violates the rules and +\par protocols for communication across the network. +\par +\par Corresponding Source conveyed, and Installation Information provided, +\par in accord with this section must be in a format that is publicly +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid9454469 documented (and with an implementation available to the public in +\par source code form), and must require no special password or key for +\par unpacking, reading or copying. +\par +\par 7. Additional Terms. +\par +\par "Additional permissions" are terms that supplement the terms of this +\par License by making exceptions from one or more of its conditions. +\par Additional permissions that are applicable to the entire Program shall +\par be treated as though they were included in this License, to the extent +\par that they are valid under applicable law. If additional permissions +\par apply only to part of the Program, that part may be used separately +\par under those permissions, but the entire Program remains governed by +\par this License without regard to the additional permissions. +\par +\par When you convey a copy of a covered work, you may at your option +\par remove any additional permissions from that copy, or from any part of +\par it. (Additional permissions may be written to require their own +\par removal in certain cases when you modify the work.) You may place +\par additional permissions on material, added by you to a covered work, +\par for which you have or can give appropriate copyright permission. +\par +\par Notwithstanding any other provision of this License, for material you +\par add to a covered work, you may (if authorized by the copyright holders of +\par that material) supplement the terms of this License with terms: +\par +\par a) Disclaiming warranty or limiting liability differently from the +\par terms of sections 15 and 16 of this License; or +\par +\par b) Requiring preservation of specified reasonable legal notices or +\par author attributions in that material or in the Appropriate Legal +\par Notices displayed by works containing it; or +\par +\par c) Prohibiting misrepresentation of the origin of that material, or +\par requiring that modified versions of such material be marked in +\par reasonable ways as different from the original version; or +\par +\par d) Limiting the use for publicity purposes of names of licensors or +\par authors of the material; or +\par +\par e) Declining to grant rights under trademark law for use of some +\par trade names, trademarks, or service marks; or +\par +\par f) Requiring indemnification of licensors and authors of that +\par material by anyone who conveys the material (or modified versions of +\par it) with contractual assumptions of liability to the recipient, for +\par any liability that these contractual assumptions directly impose on +\par those licensors and authors. +\par +\par All other non-permissive additional terms are considered "further +\par restrictions" within the meaning of section 10. If the Program as you +\par received it, or any part of it, contains a notice stating that it is +\par governed by this License along with a term that is a further +\par restriction, you may remove that term. If a license document contains +\par a further restriction but permits relicensing or conveying under this +\par License, you may add to a covered work material governed by the terms +\par of that license document, provided that the further restriction does +\par not survive such relicensing or conveying. +\par +\par If you add terms to a covered work in accord with this section, you +\par must place, in the relevant source files, a statement of the +\par additional terms that apply to those files, or a notice indicating +\par where to find the applicable terms. +\par +\par Additional terms, permissive or non-permissive, may be stated in the +\par form of a separately written license, or stated as exceptions; +\par the above requirements apply either way. +\par +\par 8. Termination. +\par +\par You may not propagate or modify a covered work except as expressly +\par provided under this License. Any attempt otherwise to propagate or +\par modify it is void, and will automatically terminate your rights under +\par this License (including any patent licenses granted under the third +\par paragraph of section 11). +\par +\par However, if you cease all violation of this License, then your +\par license from a particular copyright holder is reinstated (a) +\par provisionally, unless and until the copyright holder explicitly and +\par finally terminates your license, and (b) permanently, if the copyright +\par holder fails to notify you of the violation by some reasonable means +\par prior to 60 days after the cessation. +\par +\par Moreover, your license from a particular copyright holder is +\par reinstated permanently if the copyright holder notifies you of the +\par violation by some reasonable means, this is the first time you have +\par received notice of violation of this License (for any work) from that +\par copyright holder, and you cure the violation prior to 30 days after +\par your receipt of the notice. +\par +\par Termination of your rights under this section does not terminate the +\par licenses of parties who have received copies or rights from you under +\par this License. If your rights have been terminated and not permanently +\par reinstated, you do not qualify to receive new licenses for the same +\par material under section 10. +\par +\par 9. Acceptance Not Required for Having Copies. +\par +\par You are not required to accept this License in order to receive or +\par run a copy of the Program. Ancillary propagation of a covered work +\par occurring solely as a consequence of using peer-to-peer transmission +\par to receive a copy likewise does not require acceptance. However, +\par nothing other than this License grants you permission to propagate or +\par modify any covered work. These actions infringe copyright if you do +\par not accept this License. Therefore, by modifying or propagating a +\par covered work, you indicate your acceptance of this License to do so. +\par +\par 10. Automatic Licensing of Downstream Recipients. +\par +\par Each time you convey a covered work, the recipient automatically +\par receives a license from the original licensors, to run, modify and +\par propagate that work, subject to this License. You are not responsible +\par for enforcing compliance by third parties with this License. +\par +\par An "entity transaction" is a transaction transferring control of an +\par organization, or substantially all assets of one, or subdividing an +\par organization, or merging organizations. If propagation of a covered +\par work results from an entity transaction, each party to that +\par transaction who receives a copy of the work also receives whatever +\par licenses to the work the party's predecessor in interest had or could +\par give under the previous paragraph, plus a right to possession of the +\par Corresponding Source of the work from the predecessor in interest, if +\par the predecessor has it or can get it with reasonable efforts. +\par +\par You may not impose any further restrictions on the exercise of the +\par rights granted or affirmed under this License. For example, you may +\par not impose a license fee, royalty, or other charge for exercise of +\par rights granted under this License, and you may not initiate litigation +\par (including a cross-claim or counterclaim in a lawsuit) alleging that +\par any patent claim is infringed by making, using, selling, offering for +\par sale, or importing the Program or any portion of it. +\par +\par 11. Patents. +\par +\par A "contributor" is a copyright holder who authorizes use under this +\par License of the Program or a work on which the Program is based. The +\par work thus licensed is called the contributor's "contributor version". +\par +\par A contributor's "essential patent claims" are all patent claims +\par owned or controlled by the contributor, whether already acquired or +\par hereafter acquired, that would be infringed by some manner, permitted +\par by this License, of making, using, or selling its contributor version, +\par but do not include claims that would be infringed only as a +\par consequence of further modification of the contributor version. For +\par purposes of this definition, "control" includes the right to grant +\par patent sublicenses in a manner consistent with the requirements of +\par this License. +\par +\par Each contributor grants you a non-exclusive, worldwide, royalty-free +\par patent license under the contributor's essential patent claims, to +\par make, use, sell, offer for sale, import and otherwise run, modify and +\par propagate the contents of its contributor version. +\par +\par In the following three paragraphs, a "patent license" is any express +\par agreement or commitment, however denominated, not to enforce a patent +\par (such as an express permission to practice a patent or covenant not to +\par sue for patent infringement). To "grant" such a patent license to a +\par party means to make such an agreement or commitment not to enforce a +\par patent against the party. +\par +\par If you convey a covered work, knowingly relying on a patent license, +\par and the Corresponding Source of the work is not available for anyone +\par to copy, free of charge and under the terms of this License, through a +\par publicly available network server or other readily accessible means, +\par then you must either (1) cause the Corresponding Source to be so +\par available, or (2) arrange to deprive yourself of the benefit of the +\par patent license for this particular work, or (3) arrange, in a manner +\par consistent with the requirements of this License, to extend the patent +\par license to downstream recipients. "Knowingly relying" means you have +\par actual knowledge that, but for the patent license, your conveying the +\par covered work in a country, or your recipient's use of the covered work +\par in a country, would infringe one or more identifiable patents in that +\par country that you have reason to believe are valid. +\par +\par If, pursuant to or in connection with a single transaction or +\par arrangement, you convey, or propagate by procuring conveyance of, a +\par covered work, and grant a patent license to some of the parties +\par receiving the covered work authorizing them to use, propagate, modify +\par or convey a specific copy of the covered work, then the patent license +\par you grant is automatically extended to all recipients of the covered +\par work and works based on it. +\par +\par A patent license is "discriminatory" if it does not include within +\par the scope of its coverage, prohibits the exercise of, or is +\par conditioned on the non-exercise of one or more of the rights that are +\par specifically granted under this License. You may not convey a covered +\par work if you are a party to an arrangement with a third party that is +\par in the business of distributing software, under which you make payment +\par to the third party based on the extent of your activity of conveying +\par the work, and under which the third party grants, to any of the +\par parties who would receive the covered work from you, a discriminatory +\par patent license (a) in connection with copies of the covered work +\par conveyed by you (or copies made from those copies), or (b) primarily +\par for and in connection with specific products or compilations that +\par contain the covered work, unless you entered into that arrangement, +\par or that patent license was granted, prior to 28 March 2007. +\par +\par Nothing in this License shall be construed as excluding or limiting +\par any implied license or other defenses to infringement that may +\par otherwise be available to you under applicable patent law. +\par +\par 12. No Surrender of Others' Freedom. +\par +\par If conditions are imposed on you (whether by court order, agreement or +\par otherwise) that contradict the conditions of this License, they do not +\par excuse you from the conditions of this License. If you cannot convey a +\par covered work so as to satisfy simultaneously your obligations under this +\par License and any other pertinent obligations, then as a consequence you may +\par not convey it at all. For example, if you agree to terms that obligate you +\par to collect a royalty for further conveying from those to whom you convey +\par the Program, the only way you could satisfy both those terms and this +\par License would be to refrain entirely from conveying the Program. +\par +\par 13. Use with the GNU Affero General Public License. +\par +\par Notwithstanding any other provision of this License, you have +\par permission to link or combine any covered work with a work licensed +\par under version 3 of the GNU Affero General Public License into a single +\par combined work, and to convey the resulting work. The terms of this +\par License will continue to apply to the part which is the covered work, +\par but the special requirements of the GNU Affero General Public License, +\par section 13, concerning interaction through a network will apply to the +\par combination as such. +\par +\par 14. Revised Versions of this License. +\par +\par The Free Software Foundation may publish revised and/or new versions of +\par the GNU General Public License from time to time. Such new versions will +\par be similar in spirit to the present version, but may differ in detail to +\par address new problems or concerns. +\par +\par Each version is given a distinguishing version number. If the +\par Program specifies that a certain numbered version of the GNU General +\par Public License "or any later version" applies to it, you have the +\par option of following the terms and conditions either of that numbered +\par version or of any later version published by the Free Software +\par Foundation. If the Program does not specify a version number of the +\par GNU General Public License, you may choose any version ever published +\par by the Free Software Foundation. +\par +\par If the Program specifies that a proxy can decide which future +\par versions of the GNU General Public License can be used, that proxy's +\par public statement of acceptance of a version permanently authorizes you +\par to choose that version for the Program. +\par +\par Later license versions may give you additional or different +\par permissions. However, no additional obligations are imposed on any +\par author or copyright holder as a result of your choosing to follow a +\par later version. +\par +\par 15. Disclaimer of Warranty. +\par +\par THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +\par APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +\par HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +\par OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +\par THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +\par PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +\par IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +\par ALL NECESSARY SERVICING, REPAIR OR CORRECTION. +\par +\par 16. Limitation of Liability. +\par +\par IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +\par WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +\par THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +\par GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +\par USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +\par DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +\par PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +\par EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +\par SUCH DAMAGES. +\par +\par 17. Interpretation of Sections 15 and 16. +\par +\par If the disclaimer of warranty and limitation of liability provided +\par above cannot be given local legal effect according to their terms, +\par reviewing courts shall apply local law that most closely approximates +\par an absolute waiver of all civil liability in connection with the +\par Program, unless a warranty or assumption of liability accompanies a +\par copy of the Program in return for a fee. +\par +\par END OF TERMS AND CONDITIONS +\par +\par How to Apply These Terms to Your New Programs +\par +\par If you develop a new program, and you want it to be of the greatest +\par possible use to the public, the best way to achieve this is to make it +\par free software which everyone can redistribute and change under these terms. +\par +\par To do so, attach the following notices to the program. It is safest +\par to attach them to the start of each source file to most effectively +\par state the exclusion of warranty; and each file should have at least +\par the "copyright" line and a pointer to where the full notice is found. +\par +\par +\par Copyright (C) +\par +\par This program is free software: you can redistribute it and/or modify +\par it under the terms of the GNU General Public License as published by +\par the Free Software Foundation, either version 3 of the License, or +\par (at your option) any later version. +\par +\par This program is distributed in the hope that it will be useful, +\par but WITHOUT ANY WARRANTY; without even the implied warranty of +\par MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +\par GNU General Public License for more details. +\par +\par You should have received a copy of the GNU General Public License +\par along with this program. If not, see . +\par +\par Also add information on how to contact you by electronic and paper mail. +\par +\par If the program does terminal interaction, make it output a short +\par notice like this when it starts in an interactive mode: +\par +\par Copyright (C) +\par This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. +\par This is free software, and you are welcome to redistribute it +\par under certain conditions; type `show c' for details. +\par +\par The hypothetical commands `show w' and `show c' should show the appropriate +\par parts of the General Public License. Of course, your program's commands +\par might be different; for a GUI interface, you would use an "about box". +\par +\par You should also get your employer (if you work as a programmer) or school, +\par if any, to sign a "copyright disclaimer" for the program, if necessary. +\par For more information on this, and how to apply and follow the GNU GPL, see +\par . +\par +\par The GNU General Public License does not permit incorporating your program +\par into proprietary programs. If your program is a subroutine library, you +\par may consider it more useful to permit linking proprietary applications with +\par the library. If this is what you want to do, use the GNU Lesser General +\par Public License instead of this License. But first, please read +\par .}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid8019918 +\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100f6be4dafcc060000891a0000160000007468656d652f7468656d652f +7468656d65312e786d6cec595d8bdb46147d2ff43f08bd3bfe92fcb1c41b6cd9ceb6d94d42eca4e4716c8fadc98e344633de8d0981923c160aa569e943037deb +43691b48a02fe9afd936a54d217fa17746b63c638fbb9b2585a5640d8b343af7ce997bafce1d4997afdc8fa87384134e58dc708b970aae83e3211b9178d2706f +f7bbb99aeb7081e211a22cc60d778eb97b65f7c30f2ea31d11e2083b601ff31dd4704321a63bf93c1fc230e297d814c7706dcc920809384d26f951828ec16f44 +f3a542a1928f10895d274611b8dd4709e11cb9bb4bbf1d0ace63c1e5c090263de9155bc0a3c3a284f0390f68e21c21da70618e113beee3fbc27528e2022e34dc +82fa73f3bb97f368676144c5165bcdaeabfe16760b83d16149cd994c06d9a49ee77b9566e65f01a8d8c475aa9d4aa792f95300341cc252532eba4fbf556fb5fd +055603a58716dfed6abb5c34f09afff206e7a62f7f065e8152ffde06bedb0d208a065e8152bcbf81f7bc6a29f00cbc02a5f8ca06be5a68b6bdaa8157a09092f8 +70035df02be560b9da0c326674cf0aaffb5eb75a5a385fa1a01ab2f292538c592cb6165b84eeb1a40b0889a44890d811f3291ea321947080281924c4d9279310 +2a6f8a62c661b8502a740b65f82f7f9e3a5221413b1869d6921850e11b439290c38709998a86fb31787535c89b973fbe79f9dc3979f4e2e4d12f278f1f9f3cfa +39756458eda178a25bbdfefe8bbf9f7eeafcf5fcbbd74fbeb2e3b98efffda7cf7efbf54b3b1056ba0ac1abaf9ffdf1e2d9ab6f3efff3872716783341031dde27 +11e6ce757cecdc62112c4c85c0648e07c9db59f44344748b663ce1284672168bff8e080df4f539a2c8826b6133827712d0181bf0eaec9e41b8172633412c1eaf +8591013c608cb658628dc235399716e6fe2c9ed8274f663aee164247b6b903141bf9edcca6a0aec4e63208b141f32645b140131c63e1c86bec1063cbeaee1262 +c4f5800c13c6d958387789d342c41a923e1918d5b432da2311e4656e2308f936627370c769316a5b751b1f9948b82b10b590ef636a84f12a9a0914d95cf65144 +f580ef2311da48f6e6c950c775b8804c4f30654e678465dfdb2cfd1b09ac574bfa3590177bda0fe83c3291892087369ffb88311dd966874188a2a90ddb2371a8 +633fe28750a2c8b9c9840d7ec0cc3b449e431e50bc35dd770836d27dba1adc0665d529ad0a445e992596285ec5cca8dfde9c8e11565203ca6fe87944e253c57d +4dd6fdff56d641485f7dfbd4b2aa8b2ae8cd8458efa8bd3519df865b17ef80252372f1b5bb8d66f14d0cb7cbe65dfc5ebadf4bb7fbbf97ee6df7f3bb17ec9546 +837ccbad62ba57573bf768fbc67d4c28ed8939c5fb5ceddd39b4a6511706a5a17a62c5d993dc348443792bc30c066e922065e3244c7c4244d80bd11436f84557 +3a99f085eb0977a68cc3be5f0d5b7d4b3c9d45076c943eb0168bf2e134550f8ec46abce067e3f0ac215274a5ba7a08cbdc2bb613f5b4bc24206ddf8684369949 +a26c21515d0eca20a96773089a85845ad93b6151b7b0a849f7cb546db0006a595660efe4c08eabe1fa1e9880113c52218a47324f69aa97d955c97c9799de164c +a3026023b1ac8055a6eb92ebd6e5c9d5a5a576864c1b24b4723349a8c8a826c64334c28bea94a367a1f1b6b9aeaf526ad093a150f34169ad68546bffc6e2bcb9 +06bb756da0b1ae1434768e1b6ea5ec43c90cd1b4e18ee1b91f0ea329d40e977b5e4427f0e66c2892f4863f8fb24c132eda888769c095e8a46a101181138792a8 +e1cae56769a0b1d210c5ad580241b8b0e4ea202b178d1c24dd4c321e8ff150e869d74664a4d35350f8542bac5795f9f9c1d292cd20ddbd7074ec0ce82cb985a0 +c4fc6a5106704438bcfe29a6d11c1178a19909d9aafed61ad34276f5378aaa86d27144a7215a74145dcc53b892f28c8e3acb62a09d2dd60c01d542b268848389 +6cb07a508d6e9a758d94c3d6ae7bba918c9c269aab9e69a88aec9a7615336658b681b5589eafc96bac9621064dd33b7c2addeb925b5f6addda3e21eb1210f02c +7e96ae7b8686a0515b4d6650938c3765586af662d4ec1dcb059e42ed2c4d4253fdcad2ed5adcb21e619d0e06cfd5f9c16ebd6a6168bcdc58aa48abaf1efad709 +36b807e2d186b7c0332ab84a257c7a48106c887a6a4f92ca06dc22f7c5e2d6802367969086fba0e037bda0e407b942cdefe4bcb257c8d5fc6639d7f4fd72b1e3 +170bed56e92134161146453ffde2d285775174bef8eea2c637bebd44cbd76d97862ccab3f1980c715e1157df5e8a25e3dbcb0d75dde9cb2f2cae4340741e544a +dd7ab9deaae4eae56637e7b55bb55c3da8b472ed4a506d77db815fab771fbace91027bcd72e0553ab55ca5180439af5290f46bf55cd52b959a5eb559eb78cd87 +8b6d0cac3c958f452c20bc8ad7ee3f000000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f +5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae +2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a93 +9cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce023 +9baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b +436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b0000000000000000000000000030010000 +5f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f74 +68656d652f7468656d654d616e616765722e786d6c504b01022d0014000600080000002100f6be4dafcc060000891a00001600000000000000000000000000d6 +0200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b0100002700000000000000000000 +000000d60900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000d10a00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax371\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong; +\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text; +\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2; +\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List; +\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1; +\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision; +\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1; +\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1; +\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; +\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2; +\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2; +\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; +\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3; +\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4; +\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; +\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4; +\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5; +\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; +\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6; +\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; +\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; +\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; +\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; +\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; +\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; +\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; +\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; +\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;}}{\*\datastore 010500000200000018000000 +4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e500000000000000000000000000d7 +f2dd96a5ce01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/Installer/Prerequisites/.NET Framework 4.0 Client Profile/dotNetFx40_Client_x86_x64.exe b/Installer/Prerequisites/.NET Framework 4.0 Client Profile/dotNetFx40_Client_x86_x64.exe new file mode 100644 index 00000000..80ce5d46 Binary files /dev/null and b/Installer/Prerequisites/.NET Framework 4.0 Client Profile/dotNetFx40_Client_x86_x64.exe differ diff --git a/Installer/Prerequisites/DirectX 9/dxwebsetup.exe b/Installer/Prerequisites/DirectX 9/dxwebsetup.exe new file mode 100644 index 00000000..c15749ed Binary files /dev/null and b/Installer/Prerequisites/DirectX 9/dxwebsetup.exe differ diff --git a/Installer/Prerequisites/Visual C++ 2008 SP1 Redistributable/vcredist_x86.exe b/Installer/Prerequisites/Visual C++ 2008 SP1 Redistributable/vcredist_x86.exe new file mode 100644 index 00000000..05d0a05e Binary files /dev/null and b/Installer/Prerequisites/Visual C++ 2008 SP1 Redistributable/vcredist_x86.exe differ diff --git a/Installer/Prerequisites/Visual C++ Redistributable for Visual Studio 2012 x64/vcredist_x64.exe b/Installer/Prerequisites/Visual C++ Redistributable for Visual Studio 2012 x64/vcredist_x64.exe new file mode 100644 index 00000000..9b5df432 Binary files /dev/null and b/Installer/Prerequisites/Visual C++ Redistributable for Visual Studio 2012 x64/vcredist_x64.exe differ diff --git a/Installer/Prerequisites/Visual C++ Redistributable for Visual Studio 2012 x86/vcredist_x86.exe b/Installer/Prerequisites/Visual C++ Redistributable for Visual Studio 2012 x86/vcredist_x86.exe new file mode 100644 index 00000000..c247e7e6 Binary files /dev/null and b/Installer/Prerequisites/Visual C++ Redistributable for Visual Studio 2012 x86/vcredist_x86.exe differ diff --git a/Installer/build.bat b/Installer/build.bat new file mode 100644 index 00000000..f4830f67 --- /dev/null +++ b/Installer/build.bat @@ -0,0 +1,14 @@ +REM compile x64 +call "%VS110COMNTOOLS%\..\..\VC\vcvarsall.bat" x64 +devenv.com ..\Vocaluxe.sln /Rebuild "InstallerWin|x64" + +REM remove old x64 executables if found and rename +if exist "..\Output\Vocaluxe_x64.exe" del "..\Output\Vocaluxe_x64.exe" +ren "..\Output\Vocaluxe.exe" "Vocaluxe_x64.exe" + +REM compile x86 +call "%VS110COMNTOOLS%\..\..\VC\vcvarsall.bat" x86 +devenv.com ..\Vocaluxe.sln /Rebuild "InstallerWin|x86" + +REM compile installer +AdvancedInstaller.com /rebuild setup.aip \ No newline at end of file diff --git a/Installer/buildportable.bat b/Installer/buildportable.bat new file mode 100644 index 00000000..1b7aa978 --- /dev/null +++ b/Installer/buildportable.bat @@ -0,0 +1,20 @@ +@echo off +SET version=v0.3.0 +SET status=Beta +SET buildnum=0081 +SET buildname=Vocaluxe %version% %status% (%buildnum%).rar + +REM compile x64 +call "%VS110COMNTOOLS%\..\..\VC\vcvarsall.bat" x64 +devenv.com ..\Vocaluxe.sln /Rebuild "ReleaseWin|x64" + +REM remove old x64 executables if found and rename +if exist "..\Output\Vocaluxe_x64.exe" del "..\Output\Vocaluxe_x64.exe" +ren "..\Output\Vocaluxe.exe" "Vocaluxe_x64.exe" + +REM compile x86 +call "%VS110COMNTOOLS%\..\..\VC\vcvarsall.bat" x86 +devenv.com ..\Vocaluxe.sln /Rebuild "ReleaseWin|x86" + +REM package +rar a -r -ep1 -x..\Output\CoverDB.sqlite -x..\Output\HighscoreDB.sqlite -x..\Output\*.log -x..\Output\*.pdb -x..\Output\Config.xml -x..\Output\Vocaluxe.vshost* -x..\Output\Songs -x..\Output\Screenshots -x..\Output\Playlists "%buildname%" "..\Output\*" \ No newline at end of file diff --git a/Installer/setup.aip b/Installer/setup.aip new file mode 100644 index 00000000..21576c70 --- /dev/null +++ b/Installer/setup.aip @@ -0,0 +1,1887 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Output/Languages/English.xml b/Output/Languages/English.xml index 2d1be43b..282cea99 100644 --- a/Output/Languages/English.xml +++ b/Output/Languages/English.xml @@ -59,6 +59,7 @@ Year Decade Language + Date added Easy Normal Hard diff --git a/Output/x64/gstreamer/libFLAC-8.dll b/Output/x64/gstreamer/libFLAC-8.dll index cd621d83..a1a1c256 100644 Binary files a/Output/x64/gstreamer/libFLAC-8.dll and b/Output/x64/gstreamer/libFLAC-8.dll differ diff --git a/Output/x64/gstreamer/liba52-0.dll b/Output/x64/gstreamer/liba52-0.dll index 0bafd57f..6dfdbb94 100644 Binary files a/Output/x64/gstreamer/liba52-0.dll and b/Output/x64/gstreamer/liba52-0.dll differ diff --git a/Output/x64/gstreamer/libass-4.dll b/Output/x64/gstreamer/libass-4.dll index d6598ff3..b3cc88b0 100644 Binary files a/Output/x64/gstreamer/libass-4.dll and b/Output/x64/gstreamer/libass-4.dll differ diff --git a/Output/x64/gstreamer/libbz2.dll b/Output/x64/gstreamer/libbz2.dll index 1b818bb4..ee820481 100644 Binary files a/Output/x64/gstreamer/libbz2.dll and b/Output/x64/gstreamer/libbz2.dll differ diff --git a/Output/x64/gstreamer/libcairo-2.dll b/Output/x64/gstreamer/libcairo-2.dll index 82099a0e..87965c8e 100644 Binary files a/Output/x64/gstreamer/libcairo-2.dll and b/Output/x64/gstreamer/libcairo-2.dll differ diff --git a/Output/x64/gstreamer/libcairo-gobject-2.dll b/Output/x64/gstreamer/libcairo-gobject-2.dll index af4b7d5f..e9aae569 100644 Binary files a/Output/x64/gstreamer/libcairo-gobject-2.dll and b/Output/x64/gstreamer/libcairo-gobject-2.dll differ diff --git a/Output/x64/gstreamer/libcairo-script-interpreter-2.dll b/Output/x64/gstreamer/libcairo-script-interpreter-2.dll index cfde7bdb..8ddf3911 100644 Binary files a/Output/x64/gstreamer/libcairo-script-interpreter-2.dll and b/Output/x64/gstreamer/libcairo-script-interpreter-2.dll differ diff --git a/Output/x64/gstreamer/libcharset-1.dll b/Output/x64/gstreamer/libcharset-1.dll index 4b178fbf..af20e572 100644 Binary files a/Output/x64/gstreamer/libcharset-1.dll and b/Output/x64/gstreamer/libcharset-1.dll differ diff --git a/Output/x64/gstreamer/libdca-0.dll b/Output/x64/gstreamer/libdca-0.dll index fce15507..f3077d4c 100644 Binary files a/Output/x64/gstreamer/libdca-0.dll and b/Output/x64/gstreamer/libdca-0.dll differ diff --git a/Output/x64/gstreamer/libdv-4.dll b/Output/x64/gstreamer/libdv-4.dll index 77e247a6..de42c8eb 100644 Binary files a/Output/x64/gstreamer/libdv-4.dll and b/Output/x64/gstreamer/libdv-4.dll differ diff --git a/Output/x64/gstreamer/libdvdnav-4.dll b/Output/x64/gstreamer/libdvdnav-4.dll index 7ae0ea49..78d701c0 100644 Binary files a/Output/x64/gstreamer/libdvdnav-4.dll and b/Output/x64/gstreamer/libdvdnav-4.dll differ diff --git a/Output/x64/gstreamer/libdvdnavmini-4.dll b/Output/x64/gstreamer/libdvdnavmini-4.dll index b43bd9de..d94459aa 100644 Binary files a/Output/x64/gstreamer/libdvdnavmini-4.dll and b/Output/x64/gstreamer/libdvdnavmini-4.dll differ diff --git a/Output/x64/gstreamer/libdvdread-4.dll b/Output/x64/gstreamer/libdvdread-4.dll index efef2df5..dd80070f 100644 Binary files a/Output/x64/gstreamer/libdvdread-4.dll and b/Output/x64/gstreamer/libdvdread-4.dll differ diff --git a/Output/x64/gstreamer/libexpat-1.dll b/Output/x64/gstreamer/libexpat-1.dll index f043d1fb..7b425c4d 100644 Binary files a/Output/x64/gstreamer/libexpat-1.dll and b/Output/x64/gstreamer/libexpat-1.dll differ diff --git a/Output/x64/gstreamer/libfaad-2.dll b/Output/x64/gstreamer/libfaad-2.dll index 39ab2c8a..ac9a9fc5 100644 Binary files a/Output/x64/gstreamer/libfaad-2.dll and b/Output/x64/gstreamer/libfaad-2.dll differ diff --git a/Output/x64/gstreamer/libffi-5.dll b/Output/x64/gstreamer/libffi-5.dll deleted file mode 100644 index c3d4a6e6..00000000 Binary files a/Output/x64/gstreamer/libffi-5.dll and /dev/null differ diff --git a/Output/x64/gstreamer/libffi-6.dll b/Output/x64/gstreamer/libffi-6.dll new file mode 100644 index 00000000..207ef431 Binary files /dev/null and b/Output/x64/gstreamer/libffi-6.dll differ diff --git a/Output/x64/gstreamer/libfontconfig-1.dll b/Output/x64/gstreamer/libfontconfig-1.dll index c32217e7..7230751d 100644 Binary files a/Output/x64/gstreamer/libfontconfig-1.dll and b/Output/x64/gstreamer/libfontconfig-1.dll differ diff --git a/Output/x64/gstreamer/libfreetype-6.dll b/Output/x64/gstreamer/libfreetype-6.dll index 840b6467..c2c2e4f9 100644 Binary files a/Output/x64/gstreamer/libfreetype-6.dll and b/Output/x64/gstreamer/libfreetype-6.dll differ diff --git a/Output/x64/gstreamer/libfribidi-0.dll b/Output/x64/gstreamer/libfribidi-0.dll index bfedb381..e484d1b5 100644 Binary files a/Output/x64/gstreamer/libfribidi-0.dll and b/Output/x64/gstreamer/libfribidi-0.dll differ diff --git a/Output/x64/gstreamer/libgcc_s_sjlj-1.dll b/Output/x64/gstreamer/libgcc_s_sjlj-1.dll index 0f10cd06..c03ac645 100644 Binary files a/Output/x64/gstreamer/libgcc_s_sjlj-1.dll and b/Output/x64/gstreamer/libgcc_s_sjlj-1.dll differ diff --git a/Output/x64/gstreamer/libgdk_pixbuf-2.0-0.dll b/Output/x64/gstreamer/libgdk_pixbuf-2.0-0.dll index 2e6f0edc..5120d9df 100644 Binary files a/Output/x64/gstreamer/libgdk_pixbuf-2.0-0.dll and b/Output/x64/gstreamer/libgdk_pixbuf-2.0-0.dll differ diff --git a/Output/x64/gstreamer/libgio-2.0-0.dll b/Output/x64/gstreamer/libgio-2.0-0.dll index 67452ca2..8d2ac100 100644 Binary files a/Output/x64/gstreamer/libgio-2.0-0.dll and b/Output/x64/gstreamer/libgio-2.0-0.dll differ diff --git a/Output/x64/gstreamer/libglib-2.0-0.dll b/Output/x64/gstreamer/libglib-2.0-0.dll index ba9d1343..7e4e5637 100644 Binary files a/Output/x64/gstreamer/libglib-2.0-0.dll and b/Output/x64/gstreamer/libglib-2.0-0.dll differ diff --git a/Output/x64/gstreamer/libgmodule-2.0-0.dll b/Output/x64/gstreamer/libgmodule-2.0-0.dll index bc062d9d..09f590a1 100644 Binary files a/Output/x64/gstreamer/libgmodule-2.0-0.dll and b/Output/x64/gstreamer/libgmodule-2.0-0.dll differ diff --git a/Output/x64/gstreamer/libgmp-10.dll b/Output/x64/gstreamer/libgmp-10.dll deleted file mode 100644 index 817c5c12..00000000 Binary files a/Output/x64/gstreamer/libgmp-10.dll and /dev/null differ diff --git a/Output/x64/gstreamer/libgmpxx-4.dll b/Output/x64/gstreamer/libgmpxx-4.dll deleted file mode 100644 index 109878a6..00000000 Binary files a/Output/x64/gstreamer/libgmpxx-4.dll and /dev/null differ diff --git a/Output/x64/gstreamer/libgnutls-28.dll b/Output/x64/gstreamer/libgnutls-28.dll index d095e6d1..7bc8d264 100644 Binary files a/Output/x64/gstreamer/libgnutls-28.dll and b/Output/x64/gstreamer/libgnutls-28.dll differ diff --git a/Output/x64/gstreamer/libgnutls-openssl-27.dll b/Output/x64/gstreamer/libgnutls-openssl-27.dll index 6dc6b112..0f1f8444 100644 Binary files a/Output/x64/gstreamer/libgnutls-openssl-27.dll and b/Output/x64/gstreamer/libgnutls-openssl-27.dll differ diff --git a/Output/x64/gstreamer/libgnutlsxx-28.dll b/Output/x64/gstreamer/libgnutlsxx-28.dll index bcbe1df0..3b661f06 100644 Binary files a/Output/x64/gstreamer/libgnutlsxx-28.dll and b/Output/x64/gstreamer/libgnutlsxx-28.dll differ diff --git a/Output/x64/gstreamer/libgobject-2.0-0.dll b/Output/x64/gstreamer/libgobject-2.0-0.dll index afe8430e..6867b13c 100644 Binary files a/Output/x64/gstreamer/libgobject-2.0-0.dll and b/Output/x64/gstreamer/libgobject-2.0-0.dll differ diff --git a/Output/x64/gstreamer/libgomp-1.dll b/Output/x64/gstreamer/libgomp-1.dll new file mode 100644 index 00000000..bfdef6d9 Binary files /dev/null and b/Output/x64/gstreamer/libgomp-1.dll differ diff --git a/Output/x64/gstreamer/libgsta52dec.dll b/Output/x64/gstreamer/libgsta52dec.dll index 820dedae..00c5259f 100644 Binary files a/Output/x64/gstreamer/libgsta52dec.dll and b/Output/x64/gstreamer/libgsta52dec.dll differ diff --git a/Output/x64/gstreamer/libgstadder.dll b/Output/x64/gstreamer/libgstadder.dll index d3d70fcf..7eadd57e 100644 Binary files a/Output/x64/gstreamer/libgstadder.dll and b/Output/x64/gstreamer/libgstadder.dll differ diff --git a/Output/x64/gstreamer/libgstadpcmdec.dll b/Output/x64/gstreamer/libgstadpcmdec.dll index 702daa65..b99288b7 100644 Binary files a/Output/x64/gstreamer/libgstadpcmdec.dll and b/Output/x64/gstreamer/libgstadpcmdec.dll differ diff --git a/Output/x64/gstreamer/libgstadpcmenc.dll b/Output/x64/gstreamer/libgstadpcmenc.dll index af56a988..8c6058cc 100644 Binary files a/Output/x64/gstreamer/libgstadpcmenc.dll and b/Output/x64/gstreamer/libgstadpcmenc.dll differ diff --git a/Output/x64/gstreamer/libgstalaw.dll b/Output/x64/gstreamer/libgstalaw.dll index ac0fdade..1e1c0b70 100644 Binary files a/Output/x64/gstreamer/libgstalaw.dll and b/Output/x64/gstreamer/libgstalaw.dll differ diff --git a/Output/x64/gstreamer/libgstalpha.dll b/Output/x64/gstreamer/libgstalpha.dll index 498e1efc..31a5e2ab 100644 Binary files a/Output/x64/gstreamer/libgstalpha.dll and b/Output/x64/gstreamer/libgstalpha.dll differ diff --git a/Output/x64/gstreamer/libgstalphacolor.dll b/Output/x64/gstreamer/libgstalphacolor.dll index 1f7cadea..b10ba835 100644 Binary files a/Output/x64/gstreamer/libgstalphacolor.dll and b/Output/x64/gstreamer/libgstalphacolor.dll differ diff --git a/Output/x64/gstreamer/libgstamrnb.dll b/Output/x64/gstreamer/libgstamrnb.dll index 622b2114..027bea98 100644 Binary files a/Output/x64/gstreamer/libgstamrnb.dll and b/Output/x64/gstreamer/libgstamrnb.dll differ diff --git a/Output/x64/gstreamer/libgstamrwbdec.dll b/Output/x64/gstreamer/libgstamrwbdec.dll index 3911e15b..34b27764 100644 Binary files a/Output/x64/gstreamer/libgstamrwbdec.dll and b/Output/x64/gstreamer/libgstamrwbdec.dll differ diff --git a/Output/x64/gstreamer/libgstapetag.dll b/Output/x64/gstreamer/libgstapetag.dll index d75fcabf..6c22c267 100644 Binary files a/Output/x64/gstreamer/libgstapetag.dll and b/Output/x64/gstreamer/libgstapetag.dll differ diff --git a/Output/x64/gstreamer/libgstapp-1.0-0.dll b/Output/x64/gstreamer/libgstapp-1.0-0.dll index 8446b371..66d90a9e 100644 Binary files a/Output/x64/gstreamer/libgstapp-1.0-0.dll and b/Output/x64/gstreamer/libgstapp-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libgstapp.dll b/Output/x64/gstreamer/libgstapp.dll index 6122ea31..51119f40 100644 Binary files a/Output/x64/gstreamer/libgstapp.dll and b/Output/x64/gstreamer/libgstapp.dll differ diff --git a/Output/x64/gstreamer/libgstasf.dll b/Output/x64/gstreamer/libgstasf.dll index c9b24abe..3b909cb7 100644 Binary files a/Output/x64/gstreamer/libgstasf.dll and b/Output/x64/gstreamer/libgstasf.dll differ diff --git a/Output/x64/gstreamer/libgstasfmux.dll b/Output/x64/gstreamer/libgstasfmux.dll index d3cbca93..2fed359a 100644 Binary files a/Output/x64/gstreamer/libgstasfmux.dll and b/Output/x64/gstreamer/libgstasfmux.dll differ diff --git a/Output/x64/gstreamer/libgstassrender.dll b/Output/x64/gstreamer/libgstassrender.dll index fecf7569..782743ed 100644 Binary files a/Output/x64/gstreamer/libgstassrender.dll and b/Output/x64/gstreamer/libgstassrender.dll differ diff --git a/Output/x64/gstreamer/libgstaudio-1.0-0.dll b/Output/x64/gstreamer/libgstaudio-1.0-0.dll index 8138ef75..29d444a0 100644 Binary files a/Output/x64/gstreamer/libgstaudio-1.0-0.dll and b/Output/x64/gstreamer/libgstaudio-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libgstaudioconvert.dll b/Output/x64/gstreamer/libgstaudioconvert.dll index 36043c25..dd9fee01 100644 Binary files a/Output/x64/gstreamer/libgstaudioconvert.dll and b/Output/x64/gstreamer/libgstaudioconvert.dll differ diff --git a/Output/x64/gstreamer/libgstaudiofx.dll b/Output/x64/gstreamer/libgstaudiofx.dll index 105aed8e..383aa8ea 100644 Binary files a/Output/x64/gstreamer/libgstaudiofx.dll and b/Output/x64/gstreamer/libgstaudiofx.dll differ diff --git a/Output/x64/gstreamer/libgstaudioparsers.dll b/Output/x64/gstreamer/libgstaudioparsers.dll index f4b47c4a..49732b19 100644 Binary files a/Output/x64/gstreamer/libgstaudioparsers.dll and b/Output/x64/gstreamer/libgstaudioparsers.dll differ diff --git a/Output/x64/gstreamer/libgstaudiorate.dll b/Output/x64/gstreamer/libgstaudiorate.dll index f949ee24..fb616c78 100644 Binary files a/Output/x64/gstreamer/libgstaudiorate.dll and b/Output/x64/gstreamer/libgstaudiorate.dll differ diff --git a/Output/x64/gstreamer/libgstaudioresample.dll b/Output/x64/gstreamer/libgstaudioresample.dll index ad738dc5..a23d4c06 100644 Binary files a/Output/x64/gstreamer/libgstaudioresample.dll and b/Output/x64/gstreamer/libgstaudioresample.dll differ diff --git a/Output/x64/gstreamer/libgstaudiotestsrc.dll b/Output/x64/gstreamer/libgstaudiotestsrc.dll index c4cf5d3d..d327ab9e 100644 Binary files a/Output/x64/gstreamer/libgstaudiotestsrc.dll and b/Output/x64/gstreamer/libgstaudiotestsrc.dll differ diff --git a/Output/x64/gstreamer/libgstaudiovisualizers.dll b/Output/x64/gstreamer/libgstaudiovisualizers.dll index ba68ac91..b275b9f3 100644 Binary files a/Output/x64/gstreamer/libgstaudiovisualizers.dll and b/Output/x64/gstreamer/libgstaudiovisualizers.dll differ diff --git a/Output/x64/gstreamer/libgstauparse.dll b/Output/x64/gstreamer/libgstauparse.dll index 1014e575..3adc80ff 100644 Binary files a/Output/x64/gstreamer/libgstauparse.dll and b/Output/x64/gstreamer/libgstauparse.dll differ diff --git a/Output/x64/gstreamer/libgstautoconvert.dll b/Output/x64/gstreamer/libgstautoconvert.dll index e1b047ad..bab7fdb0 100644 Binary files a/Output/x64/gstreamer/libgstautoconvert.dll and b/Output/x64/gstreamer/libgstautoconvert.dll differ diff --git a/Output/x64/gstreamer/libgstautodetect.dll b/Output/x64/gstreamer/libgstautodetect.dll index b3cc5657..7436de81 100644 Binary files a/Output/x64/gstreamer/libgstautodetect.dll and b/Output/x64/gstreamer/libgstautodetect.dll differ diff --git a/Output/x64/gstreamer/libgstavi.dll b/Output/x64/gstreamer/libgstavi.dll index fa29dca0..2f547941 100644 Binary files a/Output/x64/gstreamer/libgstavi.dll and b/Output/x64/gstreamer/libgstavi.dll differ diff --git a/Output/x64/gstreamer/libgstavscale.dll b/Output/x64/gstreamer/libgstavscale.dll deleted file mode 100644 index 15862156..00000000 Binary files a/Output/x64/gstreamer/libgstavscale.dll and /dev/null differ diff --git a/Output/x64/gstreamer/libgstbase-1.0-0.dll b/Output/x64/gstreamer/libgstbase-1.0-0.dll index 96f57b50..63b2f4ea 100644 Binary files a/Output/x64/gstreamer/libgstbase-1.0-0.dll and b/Output/x64/gstreamer/libgstbase-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libgstbasecamerabinsrc-1.0-0.dll b/Output/x64/gstreamer/libgstbasecamerabinsrc-1.0-0.dll index d2a5cf9d..862d25d2 100644 Binary files a/Output/x64/gstreamer/libgstbasecamerabinsrc-1.0-0.dll and b/Output/x64/gstreamer/libgstbasecamerabinsrc-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libgstbasevideo-1.0-0.dll b/Output/x64/gstreamer/libgstbasevideo-1.0-0.dll deleted file mode 100644 index f09bd9fc..00000000 Binary files a/Output/x64/gstreamer/libgstbasevideo-1.0-0.dll and /dev/null differ diff --git a/Output/x64/gstreamer/libgstbayer.dll b/Output/x64/gstreamer/libgstbayer.dll index 1364436d..516f8ab9 100644 Binary files a/Output/x64/gstreamer/libgstbayer.dll and b/Output/x64/gstreamer/libgstbayer.dll differ diff --git a/Output/x64/gstreamer/libgstcairo.dll b/Output/x64/gstreamer/libgstcairo.dll new file mode 100644 index 00000000..c9b2fb1a Binary files /dev/null and b/Output/x64/gstreamer/libgstcairo.dll differ diff --git a/Output/x64/gstreamer/libgstcamerabin2.dll b/Output/x64/gstreamer/libgstcamerabin2.dll index 4abcace7..09697842 100644 Binary files a/Output/x64/gstreamer/libgstcamerabin2.dll and b/Output/x64/gstreamer/libgstcamerabin2.dll differ diff --git a/Output/x64/gstreamer/libgstcodecparsers-1.0-0.dll b/Output/x64/gstreamer/libgstcodecparsers-1.0-0.dll index 743fb63b..3715513a 100644 Binary files a/Output/x64/gstreamer/libgstcodecparsers-1.0-0.dll and b/Output/x64/gstreamer/libgstcodecparsers-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libgstcoloreffects.dll b/Output/x64/gstreamer/libgstcoloreffects.dll index eb899a93..39fd1479 100644 Binary files a/Output/x64/gstreamer/libgstcoloreffects.dll and b/Output/x64/gstreamer/libgstcoloreffects.dll differ diff --git a/Output/x64/gstreamer/libgstcontroller-1.0-0.dll b/Output/x64/gstreamer/libgstcontroller-1.0-0.dll index b42447c3..94ba8048 100644 Binary files a/Output/x64/gstreamer/libgstcontroller-1.0-0.dll and b/Output/x64/gstreamer/libgstcontroller-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libgstcoreelements.dll b/Output/x64/gstreamer/libgstcoreelements.dll index f43034cd..869b0ce2 100644 Binary files a/Output/x64/gstreamer/libgstcoreelements.dll and b/Output/x64/gstreamer/libgstcoreelements.dll differ diff --git a/Output/x64/gstreamer/libgstcutter.dll b/Output/x64/gstreamer/libgstcutter.dll index 8c85375b..34acce50 100644 Binary files a/Output/x64/gstreamer/libgstcutter.dll and b/Output/x64/gstreamer/libgstcutter.dll differ diff --git a/Output/x64/gstreamer/libgstd3dvideosink.dll b/Output/x64/gstreamer/libgstd3dvideosink.dll index fc936d66..699a79fb 100644 Binary files a/Output/x64/gstreamer/libgstd3dvideosink.dll and b/Output/x64/gstreamer/libgstd3dvideosink.dll differ diff --git a/Output/x64/gstreamer/libgstdataurisrc.dll b/Output/x64/gstreamer/libgstdataurisrc.dll index 5f7c1278..a7edde9c 100644 Binary files a/Output/x64/gstreamer/libgstdataurisrc.dll and b/Output/x64/gstreamer/libgstdataurisrc.dll differ diff --git a/Output/x64/gstreamer/libgstdebug.dll b/Output/x64/gstreamer/libgstdebug.dll index f295e60b..b2fb0d4d 100644 Binary files a/Output/x64/gstreamer/libgstdebug.dll and b/Output/x64/gstreamer/libgstdebug.dll differ diff --git a/Output/x64/gstreamer/libgstdebugutilsbad.dll b/Output/x64/gstreamer/libgstdebugutilsbad.dll deleted file mode 100644 index 30d4b378..00000000 Binary files a/Output/x64/gstreamer/libgstdebugutilsbad.dll and /dev/null differ diff --git a/Output/x64/gstreamer/libgstdeinterlace.dll b/Output/x64/gstreamer/libgstdeinterlace.dll index 596035bf..6c039aab 100644 Binary files a/Output/x64/gstreamer/libgstdeinterlace.dll and b/Output/x64/gstreamer/libgstdeinterlace.dll differ diff --git a/Output/x64/gstreamer/libgstdirectsoundsink.dll b/Output/x64/gstreamer/libgstdirectsoundsink.dll index f9b5c547..0a322fd0 100644 Binary files a/Output/x64/gstreamer/libgstdirectsoundsink.dll and b/Output/x64/gstreamer/libgstdirectsoundsink.dll differ diff --git a/Output/x64/gstreamer/libgstdirectsoundsrc.dll b/Output/x64/gstreamer/libgstdirectsoundsrc.dll deleted file mode 100644 index cfad6296..00000000 Binary files a/Output/x64/gstreamer/libgstdirectsoundsrc.dll and /dev/null differ diff --git a/Output/x64/gstreamer/libgstdtmf.dll b/Output/x64/gstreamer/libgstdtmf.dll index a18f85f1..649cd6de 100644 Binary files a/Output/x64/gstreamer/libgstdtmf.dll and b/Output/x64/gstreamer/libgstdtmf.dll differ diff --git a/Output/x64/gstreamer/libgstdtsdec.dll b/Output/x64/gstreamer/libgstdtsdec.dll index 119fb28c..2715d521 100644 Binary files a/Output/x64/gstreamer/libgstdtsdec.dll and b/Output/x64/gstreamer/libgstdtsdec.dll differ diff --git a/Output/x64/gstreamer/libgstdv.dll b/Output/x64/gstreamer/libgstdv.dll index 1a81fc8b..c16c774f 100644 Binary files a/Output/x64/gstreamer/libgstdv.dll and b/Output/x64/gstreamer/libgstdv.dll differ diff --git a/Output/x64/gstreamer/libgstdvbsuboverlay.dll b/Output/x64/gstreamer/libgstdvbsuboverlay.dll index 54bf16a6..25d128ef 100644 Binary files a/Output/x64/gstreamer/libgstdvbsuboverlay.dll and b/Output/x64/gstreamer/libgstdvbsuboverlay.dll differ diff --git a/Output/x64/gstreamer/libgstdvdlpcmdec.dll b/Output/x64/gstreamer/libgstdvdlpcmdec.dll index 189bd269..b84b6a3d 100644 Binary files a/Output/x64/gstreamer/libgstdvdlpcmdec.dll and b/Output/x64/gstreamer/libgstdvdlpcmdec.dll differ diff --git a/Output/x64/gstreamer/libgstdvdread.dll b/Output/x64/gstreamer/libgstdvdread.dll index 67076e2e..a0ecc4b3 100644 Binary files a/Output/x64/gstreamer/libgstdvdread.dll and b/Output/x64/gstreamer/libgstdvdread.dll differ diff --git a/Output/x64/gstreamer/libgstdvdspu.dll b/Output/x64/gstreamer/libgstdvdspu.dll index f359262a..42bbe1d0 100644 Binary files a/Output/x64/gstreamer/libgstdvdspu.dll and b/Output/x64/gstreamer/libgstdvdspu.dll differ diff --git a/Output/x64/gstreamer/libgstdvdsub.dll b/Output/x64/gstreamer/libgstdvdsub.dll deleted file mode 100644 index 1f30ef8e..00000000 Binary files a/Output/x64/gstreamer/libgstdvdsub.dll and /dev/null differ diff --git a/Output/x64/gstreamer/libgsteffectv.dll b/Output/x64/gstreamer/libgsteffectv.dll index 96fd9c1e..2cfb508f 100644 Binary files a/Output/x64/gstreamer/libgsteffectv.dll and b/Output/x64/gstreamer/libgsteffectv.dll differ diff --git a/Output/x64/gstreamer/libgstencodebin.dll b/Output/x64/gstreamer/libgstencodebin.dll index c82b9472..31ad9580 100644 Binary files a/Output/x64/gstreamer/libgstencodebin.dll and b/Output/x64/gstreamer/libgstencodebin.dll differ diff --git a/Output/x64/gstreamer/libgstequalizer.dll b/Output/x64/gstreamer/libgstequalizer.dll index 87bfefa8..bb8fd76f 100644 Binary files a/Output/x64/gstreamer/libgstequalizer.dll and b/Output/x64/gstreamer/libgstequalizer.dll differ diff --git a/Output/x64/gstreamer/libgstfaad.dll b/Output/x64/gstreamer/libgstfaad.dll index d568b95d..33e71994 100644 Binary files a/Output/x64/gstreamer/libgstfaad.dll and b/Output/x64/gstreamer/libgstfaad.dll differ diff --git a/Output/x64/gstreamer/libgstfft-1.0-0.dll b/Output/x64/gstreamer/libgstfft-1.0-0.dll index c7fab12e..e3b62ca0 100644 Binary files a/Output/x64/gstreamer/libgstfft-1.0-0.dll and b/Output/x64/gstreamer/libgstfft-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libgstfieldanalysis.dll b/Output/x64/gstreamer/libgstfieldanalysis.dll index 1cac1676..2d87c4a8 100644 Binary files a/Output/x64/gstreamer/libgstfieldanalysis.dll and b/Output/x64/gstreamer/libgstfieldanalysis.dll differ diff --git a/Output/x64/gstreamer/libgstflac.dll b/Output/x64/gstreamer/libgstflac.dll index 574cd425..e042be81 100644 Binary files a/Output/x64/gstreamer/libgstflac.dll and b/Output/x64/gstreamer/libgstflac.dll differ diff --git a/Output/x64/gstreamer/libgstflv.dll b/Output/x64/gstreamer/libgstflv.dll index 1428a8fb..366dc0da 100644 Binary files a/Output/x64/gstreamer/libgstflv.dll and b/Output/x64/gstreamer/libgstflv.dll differ diff --git a/Output/x64/gstreamer/libgstflxdec.dll b/Output/x64/gstreamer/libgstflxdec.dll index f12dc4e8..6201a42c 100644 Binary files a/Output/x64/gstreamer/libgstflxdec.dll and b/Output/x64/gstreamer/libgstflxdec.dll differ diff --git a/Output/x64/gstreamer/libgstfragmented.dll b/Output/x64/gstreamer/libgstfragmented.dll index 436e6573..f8aff5d4 100644 Binary files a/Output/x64/gstreamer/libgstfragmented.dll and b/Output/x64/gstreamer/libgstfragmented.dll differ diff --git a/Output/x64/gstreamer/libgstfrei0r.dll b/Output/x64/gstreamer/libgstfrei0r.dll index 5abd9c89..1aadb4b8 100644 Binary files a/Output/x64/gstreamer/libgstfrei0r.dll and b/Output/x64/gstreamer/libgstfrei0r.dll differ diff --git a/Output/x64/gstreamer/libgstgaudieffects.dll b/Output/x64/gstreamer/libgstgaudieffects.dll index b25cedad..d61728c1 100644 Binary files a/Output/x64/gstreamer/libgstgaudieffects.dll and b/Output/x64/gstreamer/libgstgaudieffects.dll differ diff --git a/Output/x64/gstreamer/libgstgdkpixbuf.dll b/Output/x64/gstreamer/libgstgdkpixbuf.dll index 14db5f5d..c5eac411 100644 Binary files a/Output/x64/gstreamer/libgstgdkpixbuf.dll and b/Output/x64/gstreamer/libgstgdkpixbuf.dll differ diff --git a/Output/x64/gstreamer/libgstgdp.dll b/Output/x64/gstreamer/libgstgdp.dll deleted file mode 100644 index cfde484e..00000000 Binary files a/Output/x64/gstreamer/libgstgdp.dll and /dev/null differ diff --git a/Output/x64/gstreamer/libgstgeometrictransform.dll b/Output/x64/gstreamer/libgstgeometrictransform.dll index 6b3187f8..4c98ad14 100644 Binary files a/Output/x64/gstreamer/libgstgeometrictransform.dll and b/Output/x64/gstreamer/libgstgeometrictransform.dll differ diff --git a/Output/x64/gstreamer/libgstgio.dll b/Output/x64/gstreamer/libgstgio.dll index 44f4c32d..3d414b8c 100644 Binary files a/Output/x64/gstreamer/libgstgio.dll and b/Output/x64/gstreamer/libgstgio.dll differ diff --git a/Output/x64/gstreamer/libgstgoom.dll b/Output/x64/gstreamer/libgstgoom.dll index e7312b37..81e7214a 100644 Binary files a/Output/x64/gstreamer/libgstgoom.dll and b/Output/x64/gstreamer/libgstgoom.dll differ diff --git a/Output/x64/gstreamer/libgstgoom2k1.dll b/Output/x64/gstreamer/libgstgoom2k1.dll index b6532434..e7056c6e 100644 Binary files a/Output/x64/gstreamer/libgstgoom2k1.dll and b/Output/x64/gstreamer/libgstgoom2k1.dll differ diff --git a/Output/x64/gstreamer/libgsticydemux.dll b/Output/x64/gstreamer/libgsticydemux.dll index e716f8ed..080bc46a 100644 Binary files a/Output/x64/gstreamer/libgsticydemux.dll and b/Output/x64/gstreamer/libgsticydemux.dll differ diff --git a/Output/x64/gstreamer/libgstid3demux.dll b/Output/x64/gstreamer/libgstid3demux.dll index eb1e57bc..2e382a58 100644 Binary files a/Output/x64/gstreamer/libgstid3demux.dll and b/Output/x64/gstreamer/libgstid3demux.dll differ diff --git a/Output/x64/gstreamer/libgstid3tag.dll b/Output/x64/gstreamer/libgstid3tag.dll index cada1063..7026760f 100644 Binary files a/Output/x64/gstreamer/libgstid3tag.dll and b/Output/x64/gstreamer/libgstid3tag.dll differ diff --git a/Output/x64/gstreamer/libgstimagefreeze.dll b/Output/x64/gstreamer/libgstimagefreeze.dll index 16d18c45..bfa313d9 100644 Binary files a/Output/x64/gstreamer/libgstimagefreeze.dll and b/Output/x64/gstreamer/libgstimagefreeze.dll differ diff --git a/Output/x64/gstreamer/libgstinterlace.dll b/Output/x64/gstreamer/libgstinterlace.dll index da9b8e4f..7965bcb1 100644 Binary files a/Output/x64/gstreamer/libgstinterlace.dll and b/Output/x64/gstreamer/libgstinterlace.dll differ diff --git a/Output/x64/gstreamer/libgstinterleave.dll b/Output/x64/gstreamer/libgstinterleave.dll index e3679ca8..d2565443 100644 Binary files a/Output/x64/gstreamer/libgstinterleave.dll and b/Output/x64/gstreamer/libgstinterleave.dll differ diff --git a/Output/x64/gstreamer/libgstisomp4.dll b/Output/x64/gstreamer/libgstisomp4.dll index 03e0eb40..dac057ac 100644 Binary files a/Output/x64/gstreamer/libgstisomp4.dll and b/Output/x64/gstreamer/libgstisomp4.dll differ diff --git a/Output/x64/gstreamer/libgstjpeg.dll b/Output/x64/gstreamer/libgstjpeg.dll index 49155cab..da8ef641 100644 Binary files a/Output/x64/gstreamer/libgstjpeg.dll and b/Output/x64/gstreamer/libgstjpeg.dll differ diff --git a/Output/x64/gstreamer/libgstjpegformat.dll b/Output/x64/gstreamer/libgstjpegformat.dll index 901ad750..ae4f4caa 100644 Binary files a/Output/x64/gstreamer/libgstjpegformat.dll and b/Output/x64/gstreamer/libgstjpegformat.dll differ diff --git a/Output/x64/gstreamer/libgstlevel.dll b/Output/x64/gstreamer/libgstlevel.dll index 2f26ba08..e5352d09 100644 Binary files a/Output/x64/gstreamer/libgstlevel.dll and b/Output/x64/gstreamer/libgstlevel.dll differ diff --git a/Output/x64/gstreamer/libgstlibav.dll b/Output/x64/gstreamer/libgstlibav.dll index 50a5d7ae..a71321e1 100644 Binary files a/Output/x64/gstreamer/libgstlibav.dll and b/Output/x64/gstreamer/libgstlibav.dll differ diff --git a/Output/x64/gstreamer/libgstlibvisual.dll b/Output/x64/gstreamer/libgstlibvisual.dll index 37b66adb..d5aff467 100644 Binary files a/Output/x64/gstreamer/libgstlibvisual.dll and b/Output/x64/gstreamer/libgstlibvisual.dll differ diff --git a/Output/x64/gstreamer/libgstliveadder.dll b/Output/x64/gstreamer/libgstliveadder.dll index 91f4bc94..273cdb9f 100644 Binary files a/Output/x64/gstreamer/libgstliveadder.dll and b/Output/x64/gstreamer/libgstliveadder.dll differ diff --git a/Output/x64/gstreamer/libgstmad.dll b/Output/x64/gstreamer/libgstmad.dll index 056dcf00..8e3ea946 100644 Binary files a/Output/x64/gstreamer/libgstmad.dll and b/Output/x64/gstreamer/libgstmad.dll differ diff --git a/Output/x64/gstreamer/libgstmatroska.dll b/Output/x64/gstreamer/libgstmatroska.dll index d3036e3c..459e06a9 100644 Binary files a/Output/x64/gstreamer/libgstmatroska.dll and b/Output/x64/gstreamer/libgstmatroska.dll differ diff --git a/Output/x64/gstreamer/libgstmms.dll b/Output/x64/gstreamer/libgstmms.dll index d98a34c5..1c58c1a8 100644 Binary files a/Output/x64/gstreamer/libgstmms.dll and b/Output/x64/gstreamer/libgstmms.dll differ diff --git a/Output/x64/gstreamer/libgstmpeg2dec.dll b/Output/x64/gstreamer/libgstmpeg2dec.dll index 7c431553..ea5f4c01 100644 Binary files a/Output/x64/gstreamer/libgstmpeg2dec.dll and b/Output/x64/gstreamer/libgstmpeg2dec.dll differ diff --git a/Output/x64/gstreamer/libgstmpegpsdemux.dll b/Output/x64/gstreamer/libgstmpegpsdemux.dll index 20ae666b..fd962f17 100644 Binary files a/Output/x64/gstreamer/libgstmpegpsdemux.dll and b/Output/x64/gstreamer/libgstmpegpsdemux.dll differ diff --git a/Output/x64/gstreamer/libgstmpegpsmux.dll b/Output/x64/gstreamer/libgstmpegpsmux.dll index dac144b1..61d9b94d 100644 Binary files a/Output/x64/gstreamer/libgstmpegpsmux.dll and b/Output/x64/gstreamer/libgstmpegpsmux.dll differ diff --git a/Output/x64/gstreamer/libgstmpegtsdemux.dll b/Output/x64/gstreamer/libgstmpegtsdemux.dll index c68b9486..5f1098d2 100644 Binary files a/Output/x64/gstreamer/libgstmpegtsdemux.dll and b/Output/x64/gstreamer/libgstmpegtsdemux.dll differ diff --git a/Output/x64/gstreamer/libgstmpegtsmux.dll b/Output/x64/gstreamer/libgstmpegtsmux.dll index 7497bfe8..04f3eec1 100644 Binary files a/Output/x64/gstreamer/libgstmpegtsmux.dll and b/Output/x64/gstreamer/libgstmpegtsmux.dll differ diff --git a/Output/x64/gstreamer/libgstmulaw.dll b/Output/x64/gstreamer/libgstmulaw.dll index 92149dfc..78dffccc 100644 Binary files a/Output/x64/gstreamer/libgstmulaw.dll and b/Output/x64/gstreamer/libgstmulaw.dll differ diff --git a/Output/x64/gstreamer/libgstmultifile.dll b/Output/x64/gstreamer/libgstmultifile.dll index fba7f29a..d8e6e38b 100644 Binary files a/Output/x64/gstreamer/libgstmultifile.dll and b/Output/x64/gstreamer/libgstmultifile.dll differ diff --git a/Output/x64/gstreamer/libgstmultipart.dll b/Output/x64/gstreamer/libgstmultipart.dll index 3d5c1f12..052d2391 100644 Binary files a/Output/x64/gstreamer/libgstmultipart.dll and b/Output/x64/gstreamer/libgstmultipart.dll differ diff --git a/Output/x64/gstreamer/libgstnavigationtest.dll b/Output/x64/gstreamer/libgstnavigationtest.dll deleted file mode 100644 index 3ab08199..00000000 Binary files a/Output/x64/gstreamer/libgstnavigationtest.dll and /dev/null differ diff --git a/Output/x64/gstreamer/libgstnet-1.0-0.dll b/Output/x64/gstreamer/libgstnet-1.0-0.dll index aad245ac..b86e2ba9 100644 Binary files a/Output/x64/gstreamer/libgstnet-1.0-0.dll and b/Output/x64/gstreamer/libgstnet-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libgstogg.dll b/Output/x64/gstreamer/libgstogg.dll index e79f78a5..ddfb2afc 100644 Binary files a/Output/x64/gstreamer/libgstogg.dll and b/Output/x64/gstreamer/libgstogg.dll differ diff --git a/Output/x64/gstreamer/libgstopus.dll b/Output/x64/gstreamer/libgstopus.dll index 96b359f8..7e9693fb 100644 Binary files a/Output/x64/gstreamer/libgstopus.dll and b/Output/x64/gstreamer/libgstopus.dll differ diff --git a/Output/x64/gstreamer/libgstpango.dll b/Output/x64/gstreamer/libgstpango.dll index afb07f67..9f5aca51 100644 Binary files a/Output/x64/gstreamer/libgstpango.dll and b/Output/x64/gstreamer/libgstpango.dll differ diff --git a/Output/x64/gstreamer/libgstpbutils-1.0-0.dll b/Output/x64/gstreamer/libgstpbutils-1.0-0.dll index 9cb3eb81..4707f42e 100644 Binary files a/Output/x64/gstreamer/libgstpbutils-1.0-0.dll and b/Output/x64/gstreamer/libgstpbutils-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libgstpcapparse.dll b/Output/x64/gstreamer/libgstpcapparse.dll index 100eddee..21a38916 100644 Binary files a/Output/x64/gstreamer/libgstpcapparse.dll and b/Output/x64/gstreamer/libgstpcapparse.dll differ diff --git a/Output/x64/gstreamer/libgstphotography-1.0-0.dll b/Output/x64/gstreamer/libgstphotography-1.0-0.dll index e03b2adc..f81715bd 100644 Binary files a/Output/x64/gstreamer/libgstphotography-1.0-0.dll and b/Output/x64/gstreamer/libgstphotography-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libgstplayback.dll b/Output/x64/gstreamer/libgstplayback.dll index 933db878..a9fe4240 100644 Binary files a/Output/x64/gstreamer/libgstplayback.dll and b/Output/x64/gstreamer/libgstplayback.dll differ diff --git a/Output/x64/gstreamer/libgstpng.dll b/Output/x64/gstreamer/libgstpng.dll index 80ea95a9..1ef950a3 100644 Binary files a/Output/x64/gstreamer/libgstpng.dll and b/Output/x64/gstreamer/libgstpng.dll differ diff --git a/Output/x64/gstreamer/libgstpnm.dll b/Output/x64/gstreamer/libgstpnm.dll index 83556085..3413c0d4 100644 Binary files a/Output/x64/gstreamer/libgstpnm.dll and b/Output/x64/gstreamer/libgstpnm.dll differ diff --git a/Output/x64/gstreamer/libgstrawparse.dll b/Output/x64/gstreamer/libgstrawparse.dll index 6d08881f..fde08be7 100644 Binary files a/Output/x64/gstreamer/libgstrawparse.dll and b/Output/x64/gstreamer/libgstrawparse.dll differ diff --git a/Output/x64/gstreamer/libgstreamer-1.0-0.dll b/Output/x64/gstreamer/libgstreamer-1.0-0.dll index 64de5551..fd28d6da 100644 Binary files a/Output/x64/gstreamer/libgstreamer-1.0-0.dll and b/Output/x64/gstreamer/libgstreamer-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libgstremovesilence.dll b/Output/x64/gstreamer/libgstremovesilence.dll index 118ba4b7..217836ad 100644 Binary files a/Output/x64/gstreamer/libgstremovesilence.dll and b/Output/x64/gstreamer/libgstremovesilence.dll differ diff --git a/Output/x64/gstreamer/libgstreplaygain.dll b/Output/x64/gstreamer/libgstreplaygain.dll index ceb41c54..ac319f4d 100644 Binary files a/Output/x64/gstreamer/libgstreplaygain.dll and b/Output/x64/gstreamer/libgstreplaygain.dll differ diff --git a/Output/x64/gstreamer/libgstresindvd.dll b/Output/x64/gstreamer/libgstresindvd.dll index d0805f96..b655c9f7 100644 Binary files a/Output/x64/gstreamer/libgstresindvd.dll and b/Output/x64/gstreamer/libgstresindvd.dll differ diff --git a/Output/x64/gstreamer/libgstriff-1.0-0.dll b/Output/x64/gstreamer/libgstriff-1.0-0.dll index 270fb8d5..9e3ba8cd 100644 Binary files a/Output/x64/gstreamer/libgstriff-1.0-0.dll and b/Output/x64/gstreamer/libgstriff-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libgstrmdemux.dll b/Output/x64/gstreamer/libgstrmdemux.dll index 22a89bdc..1574c885 100644 Binary files a/Output/x64/gstreamer/libgstrmdemux.dll and b/Output/x64/gstreamer/libgstrmdemux.dll differ diff --git a/Output/x64/gstreamer/libgstrtp-1.0-0.dll b/Output/x64/gstreamer/libgstrtp-1.0-0.dll index c5c708d4..ac5b0217 100644 Binary files a/Output/x64/gstreamer/libgstrtp-1.0-0.dll and b/Output/x64/gstreamer/libgstrtp-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libgstrtp.dll b/Output/x64/gstreamer/libgstrtp.dll index f5ec2961..c1251e30 100644 Binary files a/Output/x64/gstreamer/libgstrtp.dll and b/Output/x64/gstreamer/libgstrtp.dll differ diff --git a/Output/x64/gstreamer/libgstrtpmanager.dll b/Output/x64/gstreamer/libgstrtpmanager.dll index b993391b..be15b958 100644 Binary files a/Output/x64/gstreamer/libgstrtpmanager.dll and b/Output/x64/gstreamer/libgstrtpmanager.dll differ diff --git a/Output/x64/gstreamer/libgstrtpmux.dll b/Output/x64/gstreamer/libgstrtpmux.dll deleted file mode 100644 index ece76be5..00000000 Binary files a/Output/x64/gstreamer/libgstrtpmux.dll and /dev/null differ diff --git a/Output/x64/gstreamer/libgstrtpvp8.dll b/Output/x64/gstreamer/libgstrtpvp8.dll deleted file mode 100644 index 12cae8a3..00000000 Binary files a/Output/x64/gstreamer/libgstrtpvp8.dll and /dev/null differ diff --git a/Output/x64/gstreamer/libgstrtsp-1.0-0.dll b/Output/x64/gstreamer/libgstrtsp-1.0-0.dll index 647f77f1..e1bce28d 100644 Binary files a/Output/x64/gstreamer/libgstrtsp-1.0-0.dll and b/Output/x64/gstreamer/libgstrtsp-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libgstrtsp.dll b/Output/x64/gstreamer/libgstrtsp.dll index 705fce03..6ffdac1e 100644 Binary files a/Output/x64/gstreamer/libgstrtsp.dll and b/Output/x64/gstreamer/libgstrtsp.dll differ diff --git a/Output/x64/gstreamer/libgstscaletempoplugin.dll b/Output/x64/gstreamer/libgstscaletempoplugin.dll index 8424da44..0a759969 100644 Binary files a/Output/x64/gstreamer/libgstscaletempoplugin.dll and b/Output/x64/gstreamer/libgstscaletempoplugin.dll differ diff --git a/Output/x64/gstreamer/libgstschro.dll b/Output/x64/gstreamer/libgstschro.dll index cbffd70f..502a92d0 100644 Binary files a/Output/x64/gstreamer/libgstschro.dll and b/Output/x64/gstreamer/libgstschro.dll differ diff --git a/Output/x64/gstreamer/libgstsdp-1.0-0.dll b/Output/x64/gstreamer/libgstsdp-1.0-0.dll index a3771317..ca9ef0b4 100644 Binary files a/Output/x64/gstreamer/libgstsdp-1.0-0.dll and b/Output/x64/gstreamer/libgstsdp-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libgstsdpelem.dll b/Output/x64/gstreamer/libgstsdpelem.dll index d0463960..c4329857 100644 Binary files a/Output/x64/gstreamer/libgstsdpelem.dll and b/Output/x64/gstreamer/libgstsdpelem.dll differ diff --git a/Output/x64/gstreamer/libgstsegmentclip.dll b/Output/x64/gstreamer/libgstsegmentclip.dll index 954f52b4..38fe57b8 100644 Binary files a/Output/x64/gstreamer/libgstsegmentclip.dll and b/Output/x64/gstreamer/libgstsegmentclip.dll differ diff --git a/Output/x64/gstreamer/libgstshapewipe.dll b/Output/x64/gstreamer/libgstshapewipe.dll index 6a0936aa..d5c668f3 100644 Binary files a/Output/x64/gstreamer/libgstshapewipe.dll and b/Output/x64/gstreamer/libgstshapewipe.dll differ diff --git a/Output/x64/gstreamer/libgstsignalprocessor-1.0-0.dll b/Output/x64/gstreamer/libgstsignalprocessor-1.0-0.dll deleted file mode 100644 index 7f33c919..00000000 Binary files a/Output/x64/gstreamer/libgstsignalprocessor-1.0-0.dll and /dev/null differ diff --git a/Output/x64/gstreamer/libgstsiren.dll b/Output/x64/gstreamer/libgstsiren.dll index 159da8be..ff076dbf 100644 Binary files a/Output/x64/gstreamer/libgstsiren.dll and b/Output/x64/gstreamer/libgstsiren.dll differ diff --git a/Output/x64/gstreamer/libgstsmooth.dll b/Output/x64/gstreamer/libgstsmooth.dll index 113cf2b0..372ab1b8 100644 Binary files a/Output/x64/gstreamer/libgstsmooth.dll and b/Output/x64/gstreamer/libgstsmooth.dll differ diff --git a/Output/x64/gstreamer/libgstsmpte.dll b/Output/x64/gstreamer/libgstsmpte.dll index 09a16592..614aadb7 100644 Binary files a/Output/x64/gstreamer/libgstsmpte.dll and b/Output/x64/gstreamer/libgstsmpte.dll differ diff --git a/Output/x64/gstreamer/libgstsouphttpsrc.dll b/Output/x64/gstreamer/libgstsouphttpsrc.dll index 62d64579..734edcf3 100644 Binary files a/Output/x64/gstreamer/libgstsouphttpsrc.dll and b/Output/x64/gstreamer/libgstsouphttpsrc.dll differ diff --git a/Output/x64/gstreamer/libgstspectrum.dll b/Output/x64/gstreamer/libgstspectrum.dll index c83f596d..46794d6d 100644 Binary files a/Output/x64/gstreamer/libgstspectrum.dll and b/Output/x64/gstreamer/libgstspectrum.dll differ diff --git a/Output/x64/gstreamer/libgstspeed.dll b/Output/x64/gstreamer/libgstspeed.dll index 85e052f0..f2cc2f3e 100644 Binary files a/Output/x64/gstreamer/libgstspeed.dll and b/Output/x64/gstreamer/libgstspeed.dll differ diff --git a/Output/x64/gstreamer/libgstspeex.dll b/Output/x64/gstreamer/libgstspeex.dll index 6b17a43b..049f206d 100644 Binary files a/Output/x64/gstreamer/libgstspeex.dll and b/Output/x64/gstreamer/libgstspeex.dll differ diff --git a/Output/x64/gstreamer/libgstsubenc.dll b/Output/x64/gstreamer/libgstsubenc.dll index 360cd077..9adc6545 100644 Binary files a/Output/x64/gstreamer/libgstsubenc.dll and b/Output/x64/gstreamer/libgstsubenc.dll differ diff --git a/Output/x64/gstreamer/libgstsubparse.dll b/Output/x64/gstreamer/libgstsubparse.dll index 0537023b..5e87eb87 100644 Binary files a/Output/x64/gstreamer/libgstsubparse.dll and b/Output/x64/gstreamer/libgstsubparse.dll differ diff --git a/Output/x64/gstreamer/libgsttag-1.0-0.dll b/Output/x64/gstreamer/libgsttag-1.0-0.dll index 0ae7647b..ad3cee28 100644 Binary files a/Output/x64/gstreamer/libgsttag-1.0-0.dll and b/Output/x64/gstreamer/libgsttag-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libgsttaglib.dll b/Output/x64/gstreamer/libgsttaglib.dll index 687a4e21..f98cfdbd 100644 Binary files a/Output/x64/gstreamer/libgsttaglib.dll and b/Output/x64/gstreamer/libgsttaglib.dll differ diff --git a/Output/x64/gstreamer/libgsttcp.dll b/Output/x64/gstreamer/libgsttcp.dll index decdab47..e7d07f4f 100644 Binary files a/Output/x64/gstreamer/libgsttcp.dll and b/Output/x64/gstreamer/libgsttcp.dll differ diff --git a/Output/x64/gstreamer/libgsttheora.dll b/Output/x64/gstreamer/libgsttheora.dll index 5529919f..9a3bd84b 100644 Binary files a/Output/x64/gstreamer/libgsttheora.dll and b/Output/x64/gstreamer/libgsttheora.dll differ diff --git a/Output/x64/gstreamer/libgsttypefindfunctions.dll b/Output/x64/gstreamer/libgsttypefindfunctions.dll index 6f5c36c4..2a964ed5 100644 Binary files a/Output/x64/gstreamer/libgsttypefindfunctions.dll and b/Output/x64/gstreamer/libgsttypefindfunctions.dll differ diff --git a/Output/x64/gstreamer/libgstudp.dll b/Output/x64/gstreamer/libgstudp.dll index 2892aafa..dfb67a65 100644 Binary files a/Output/x64/gstreamer/libgstudp.dll and b/Output/x64/gstreamer/libgstudp.dll differ diff --git a/Output/x64/gstreamer/libgstvideo-1.0-0.dll b/Output/x64/gstreamer/libgstvideo-1.0-0.dll index 841a0f3c..d62d1fa9 100644 Binary files a/Output/x64/gstreamer/libgstvideo-1.0-0.dll and b/Output/x64/gstreamer/libgstvideo-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libgstvideobox.dll b/Output/x64/gstreamer/libgstvideobox.dll index 6d08eac2..a83878e8 100644 Binary files a/Output/x64/gstreamer/libgstvideobox.dll and b/Output/x64/gstreamer/libgstvideobox.dll differ diff --git a/Output/x64/gstreamer/libgstvideoconvert.dll b/Output/x64/gstreamer/libgstvideoconvert.dll index 1378b21b..55fafe60 100644 Binary files a/Output/x64/gstreamer/libgstvideoconvert.dll and b/Output/x64/gstreamer/libgstvideoconvert.dll differ diff --git a/Output/x64/gstreamer/libgstvideocrop.dll b/Output/x64/gstreamer/libgstvideocrop.dll index 21e46092..6bffb58f 100644 Binary files a/Output/x64/gstreamer/libgstvideocrop.dll and b/Output/x64/gstreamer/libgstvideocrop.dll differ diff --git a/Output/x64/gstreamer/libgstvideofilter.dll b/Output/x64/gstreamer/libgstvideofilter.dll index 7f803d79..2794659c 100644 Binary files a/Output/x64/gstreamer/libgstvideofilter.dll and b/Output/x64/gstreamer/libgstvideofilter.dll differ diff --git a/Output/x64/gstreamer/libgstvideomixer.dll b/Output/x64/gstreamer/libgstvideomixer.dll index c0588761..8afff8b8 100644 Binary files a/Output/x64/gstreamer/libgstvideomixer.dll and b/Output/x64/gstreamer/libgstvideomixer.dll differ diff --git a/Output/x64/gstreamer/libgstvideoparsersbad.dll b/Output/x64/gstreamer/libgstvideoparsersbad.dll index 5075f9f4..accf5150 100644 Binary files a/Output/x64/gstreamer/libgstvideoparsersbad.dll and b/Output/x64/gstreamer/libgstvideoparsersbad.dll differ diff --git a/Output/x64/gstreamer/libgstvideorate.dll b/Output/x64/gstreamer/libgstvideorate.dll index 5ca6a5de..fde189bf 100644 Binary files a/Output/x64/gstreamer/libgstvideorate.dll and b/Output/x64/gstreamer/libgstvideorate.dll differ diff --git a/Output/x64/gstreamer/libgstvideoscale.dll b/Output/x64/gstreamer/libgstvideoscale.dll index 2e6eeaed..2959a67c 100644 Binary files a/Output/x64/gstreamer/libgstvideoscale.dll and b/Output/x64/gstreamer/libgstvideoscale.dll differ diff --git a/Output/x64/gstreamer/libgstvideotestsrc.dll b/Output/x64/gstreamer/libgstvideotestsrc.dll index 88cf8f23..1798302a 100644 Binary files a/Output/x64/gstreamer/libgstvideotestsrc.dll and b/Output/x64/gstreamer/libgstvideotestsrc.dll differ diff --git a/Output/x64/gstreamer/libgstvolume.dll b/Output/x64/gstreamer/libgstvolume.dll index 7af96cdb..2b30281a 100644 Binary files a/Output/x64/gstreamer/libgstvolume.dll and b/Output/x64/gstreamer/libgstvolume.dll differ diff --git a/Output/x64/gstreamer/libgstvorbis.dll b/Output/x64/gstreamer/libgstvorbis.dll index f52aa5bd..0c64ac52 100644 Binary files a/Output/x64/gstreamer/libgstvorbis.dll and b/Output/x64/gstreamer/libgstvorbis.dll differ diff --git a/Output/x64/gstreamer/libgstvpx.dll b/Output/x64/gstreamer/libgstvpx.dll index a0354257..0137a047 100644 Binary files a/Output/x64/gstreamer/libgstvpx.dll and b/Output/x64/gstreamer/libgstvpx.dll differ diff --git a/Output/x64/gstreamer/libgstwaveformsink.dll b/Output/x64/gstreamer/libgstwaveformsink.dll deleted file mode 100644 index 3e667a9c..00000000 Binary files a/Output/x64/gstreamer/libgstwaveformsink.dll and /dev/null differ diff --git a/Output/x64/gstreamer/libgstwavenc.dll b/Output/x64/gstreamer/libgstwavenc.dll index 843db1b7..7747c35f 100644 Binary files a/Output/x64/gstreamer/libgstwavenc.dll and b/Output/x64/gstreamer/libgstwavenc.dll differ diff --git a/Output/x64/gstreamer/libgstwavpack.dll b/Output/x64/gstreamer/libgstwavpack.dll index fa48c92c..ad971582 100644 Binary files a/Output/x64/gstreamer/libgstwavpack.dll and b/Output/x64/gstreamer/libgstwavpack.dll differ diff --git a/Output/x64/gstreamer/libgstwavparse.dll b/Output/x64/gstreamer/libgstwavparse.dll index f735231e..a194542a 100644 Binary files a/Output/x64/gstreamer/libgstwavparse.dll and b/Output/x64/gstreamer/libgstwavparse.dll differ diff --git a/Output/x64/gstreamer/libgstx264.dll b/Output/x64/gstreamer/libgstx264.dll new file mode 100644 index 00000000..72e7ce5d Binary files /dev/null and b/Output/x64/gstreamer/libgstx264.dll differ diff --git a/Output/x64/gstreamer/libgstxingmux.dll b/Output/x64/gstreamer/libgstxingmux.dll index 33c8f0cc..d79ae5bd 100644 Binary files a/Output/x64/gstreamer/libgstxingmux.dll and b/Output/x64/gstreamer/libgstxingmux.dll differ diff --git a/Output/x64/gstreamer/libgsty4mdec.dll b/Output/x64/gstreamer/libgsty4mdec.dll index 52083894..992cdd85 100644 Binary files a/Output/x64/gstreamer/libgsty4mdec.dll and b/Output/x64/gstreamer/libgsty4mdec.dll differ diff --git a/Output/x64/gstreamer/libgsty4menc.dll b/Output/x64/gstreamer/libgsty4menc.dll index 97d658cf..e1173d7a 100644 Binary files a/Output/x64/gstreamer/libgsty4menc.dll and b/Output/x64/gstreamer/libgsty4menc.dll differ diff --git a/Output/x64/gstreamer/libgthread-2.0-0.dll b/Output/x64/gstreamer/libgthread-2.0-0.dll index 79e809f7..a6bbbcad 100644 Binary files a/Output/x64/gstreamer/libgthread-2.0-0.dll and b/Output/x64/gstreamer/libgthread-2.0-0.dll differ diff --git a/Output/x64/gstreamer/libhogweed-2-2.dll b/Output/x64/gstreamer/libhogweed-2-2.dll index 35290f4b..f99fe527 100644 Binary files a/Output/x64/gstreamer/libhogweed-2-2.dll and b/Output/x64/gstreamer/libhogweed-2-2.dll differ diff --git a/Output/x64/gstreamer/libiconv-2.dll b/Output/x64/gstreamer/libiconv-2.dll index cff071f6..525b96ee 100644 Binary files a/Output/x64/gstreamer/libiconv-2.dll and b/Output/x64/gstreamer/libiconv-2.dll differ diff --git a/Output/x64/gstreamer/libintl-8.dll b/Output/x64/gstreamer/libintl-8.dll index c3083aea..c4f8427c 100644 Binary files a/Output/x64/gstreamer/libintl-8.dll and b/Output/x64/gstreamer/libintl-8.dll differ diff --git a/Output/x64/gstreamer/libjasper-1.dll b/Output/x64/gstreamer/libjasper-1.dll deleted file mode 100644 index 4f681a41..00000000 Binary files a/Output/x64/gstreamer/libjasper-1.dll and /dev/null differ diff --git a/Output/x64/gstreamer/libjpeg-8.dll b/Output/x64/gstreamer/libjpeg-8.dll index 51941dfb..545f9efc 100644 Binary files a/Output/x64/gstreamer/libjpeg-8.dll and b/Output/x64/gstreamer/libjpeg-8.dll differ diff --git a/Output/x64/gstreamer/libkate-1.dll b/Output/x64/gstreamer/libkate-1.dll index 0ca86381..c53dd128 100644 Binary files a/Output/x64/gstreamer/libkate-1.dll and b/Output/x64/gstreamer/libkate-1.dll differ diff --git a/Output/x64/gstreamer/libmms-0.dll b/Output/x64/gstreamer/libmms-0.dll index 1256f441..d510509f 100644 Binary files a/Output/x64/gstreamer/libmms-0.dll and b/Output/x64/gstreamer/libmms-0.dll differ diff --git a/Output/x64/gstreamer/libmpeg2-0.dll b/Output/x64/gstreamer/libmpeg2-0.dll index e0d0fa8a..1d2b87a8 100644 Binary files a/Output/x64/gstreamer/libmpeg2-0.dll and b/Output/x64/gstreamer/libmpeg2-0.dll differ diff --git a/Output/x64/gstreamer/libmpeg2convert-0.dll b/Output/x64/gstreamer/libmpeg2convert-0.dll index 31b667a1..f212e850 100644 Binary files a/Output/x64/gstreamer/libmpeg2convert-0.dll and b/Output/x64/gstreamer/libmpeg2convert-0.dll differ diff --git a/Output/x64/gstreamer/libnettle-4-4.dll b/Output/x64/gstreamer/libnettle-4-4.dll index aa3c9360..e991bad2 100644 Binary files a/Output/x64/gstreamer/libnettle-4-4.dll and b/Output/x64/gstreamer/libnettle-4-4.dll differ diff --git a/Output/x64/gstreamer/libogg-0.dll b/Output/x64/gstreamer/libogg-0.dll index 12c376da..f247f6c6 100644 Binary files a/Output/x64/gstreamer/libogg-0.dll and b/Output/x64/gstreamer/libogg-0.dll differ diff --git a/Output/x64/gstreamer/liboggkate-1.dll b/Output/x64/gstreamer/liboggkate-1.dll index 8b83fdcc..562c6586 100644 Binary files a/Output/x64/gstreamer/liboggkate-1.dll and b/Output/x64/gstreamer/liboggkate-1.dll differ diff --git a/Output/x64/gstreamer/libopencore-amrnb-0.dll b/Output/x64/gstreamer/libopencore-amrnb-0.dll index b6295d0d..408b4365 100644 Binary files a/Output/x64/gstreamer/libopencore-amrnb-0.dll and b/Output/x64/gstreamer/libopencore-amrnb-0.dll differ diff --git a/Output/x64/gstreamer/libopencore-amrwb-0.dll b/Output/x64/gstreamer/libopencore-amrwb-0.dll index cd345b87..99f59d7d 100644 Binary files a/Output/x64/gstreamer/libopencore-amrwb-0.dll and b/Output/x64/gstreamer/libopencore-amrwb-0.dll differ diff --git a/Output/x64/gstreamer/libopus-0.dll b/Output/x64/gstreamer/libopus-0.dll index d712859e..95237c43 100644 Binary files a/Output/x64/gstreamer/libopus-0.dll and b/Output/x64/gstreamer/libopus-0.dll differ diff --git a/Output/x64/gstreamer/liborc-0.4-0.dll b/Output/x64/gstreamer/liborc-0.4-0.dll index ed3d517e..fe08479d 100644 Binary files a/Output/x64/gstreamer/liborc-0.4-0.dll and b/Output/x64/gstreamer/liborc-0.4-0.dll differ diff --git a/Output/x64/gstreamer/liborc-test-0.4-0.dll b/Output/x64/gstreamer/liborc-test-0.4-0.dll index 2acf2386..b13d2787 100644 Binary files a/Output/x64/gstreamer/liborc-test-0.4-0.dll and b/Output/x64/gstreamer/liborc-test-0.4-0.dll differ diff --git a/Output/x64/gstreamer/libpango-1.0-0.dll b/Output/x64/gstreamer/libpango-1.0-0.dll index 5352b5ba..5284e414 100644 Binary files a/Output/x64/gstreamer/libpango-1.0-0.dll and b/Output/x64/gstreamer/libpango-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libpangocairo-1.0-0.dll b/Output/x64/gstreamer/libpangocairo-1.0-0.dll index bdb219e6..47e96ff3 100644 Binary files a/Output/x64/gstreamer/libpangocairo-1.0-0.dll and b/Output/x64/gstreamer/libpangocairo-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libpangoft2-1.0-0.dll b/Output/x64/gstreamer/libpangoft2-1.0-0.dll index 549a26d0..b6c1a482 100644 Binary files a/Output/x64/gstreamer/libpangoft2-1.0-0.dll and b/Output/x64/gstreamer/libpangoft2-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libpangowin32-1.0-0.dll b/Output/x64/gstreamer/libpangowin32-1.0-0.dll index ed883546..8fd59964 100644 Binary files a/Output/x64/gstreamer/libpangowin32-1.0-0.dll and b/Output/x64/gstreamer/libpangowin32-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libpixman-1-0.dll b/Output/x64/gstreamer/libpixman-1-0.dll index 9728181b..77861e8c 100644 Binary files a/Output/x64/gstreamer/libpixman-1-0.dll and b/Output/x64/gstreamer/libpixman-1-0.dll differ diff --git a/Output/x64/gstreamer/libpng15-15.dll b/Output/x64/gstreamer/libpng15-15.dll index ae3dd680..365c1092 100644 Binary files a/Output/x64/gstreamer/libpng15-15.dll and b/Output/x64/gstreamer/libpng15-15.dll differ diff --git a/Output/x64/gstreamer/libschroedinger-1.0-0.dll b/Output/x64/gstreamer/libschroedinger-1.0-0.dll index c582f4d6..cde8841e 100644 Binary files a/Output/x64/gstreamer/libschroedinger-1.0-0.dll and b/Output/x64/gstreamer/libschroedinger-1.0-0.dll differ diff --git a/Output/x64/gstreamer/libsoup-2.4-1.dll b/Output/x64/gstreamer/libsoup-2.4-1.dll index e04f6af4..49ff8507 100644 Binary files a/Output/x64/gstreamer/libsoup-2.4-1.dll and b/Output/x64/gstreamer/libsoup-2.4-1.dll differ diff --git a/Output/x64/gstreamer/libspeex-1.dll b/Output/x64/gstreamer/libspeex-1.dll index 82f158f6..c566a3d2 100644 Binary files a/Output/x64/gstreamer/libspeex-1.dll and b/Output/x64/gstreamer/libspeex-1.dll differ diff --git a/Output/x64/gstreamer/libspeexdsp-1.dll b/Output/x64/gstreamer/libspeexdsp-1.dll index 95e6f434..f129899a 100644 Binary files a/Output/x64/gstreamer/libspeexdsp-1.dll and b/Output/x64/gstreamer/libspeexdsp-1.dll differ diff --git a/Output/x64/gstreamer/libstdc++-6.dll b/Output/x64/gstreamer/libstdc++-6.dll index 14bec120..f21f9d04 100644 Binary files a/Output/x64/gstreamer/libstdc++-6.dll and b/Output/x64/gstreamer/libstdc++-6.dll differ diff --git a/Output/x64/gstreamer/libtag.dll b/Output/x64/gstreamer/libtag.dll index 99716141..51e98425 100644 Binary files a/Output/x64/gstreamer/libtag.dll and b/Output/x64/gstreamer/libtag.dll differ diff --git a/Output/x64/gstreamer/libtag_c.dll b/Output/x64/gstreamer/libtag_c.dll index a3433c02..91edaab8 100644 Binary files a/Output/x64/gstreamer/libtag_c.dll and b/Output/x64/gstreamer/libtag_c.dll differ diff --git a/Output/x64/gstreamer/libtasn1-3.dll b/Output/x64/gstreamer/libtasn1-3.dll index 67057c7a..9d5e7c98 100644 Binary files a/Output/x64/gstreamer/libtasn1-3.dll and b/Output/x64/gstreamer/libtasn1-3.dll differ diff --git a/Output/x64/gstreamer/libtheora-0.dll b/Output/x64/gstreamer/libtheora-0.dll index 6a993d4b..9444654c 100644 Binary files a/Output/x64/gstreamer/libtheora-0.dll and b/Output/x64/gstreamer/libtheora-0.dll differ diff --git a/Output/x64/gstreamer/libtheoradec-1.dll b/Output/x64/gstreamer/libtheoradec-1.dll index 58dbab54..5695322d 100644 Binary files a/Output/x64/gstreamer/libtheoradec-1.dll and b/Output/x64/gstreamer/libtheoradec-1.dll differ diff --git a/Output/x64/gstreamer/libtheoraenc-1.dll b/Output/x64/gstreamer/libtheoraenc-1.dll index 785b7457..97f6d413 100644 Binary files a/Output/x64/gstreamer/libtheoraenc-1.dll and b/Output/x64/gstreamer/libtheoraenc-1.dll differ diff --git a/Output/x64/gstreamer/libtiff-5.dll b/Output/x64/gstreamer/libtiff-5.dll index 83bab4a7..2946cbbf 100644 Binary files a/Output/x64/gstreamer/libtiff-5.dll and b/Output/x64/gstreamer/libtiff-5.dll differ diff --git a/Output/x64/gstreamer/libvisual-0.4-0.dll b/Output/x64/gstreamer/libvisual-0.4-0.dll index 6e203113..41380ba0 100644 Binary files a/Output/x64/gstreamer/libvisual-0.4-0.dll and b/Output/x64/gstreamer/libvisual-0.4-0.dll differ diff --git a/Output/x64/gstreamer/libvorbis-0.dll b/Output/x64/gstreamer/libvorbis-0.dll index 203f6905..16ed64eb 100644 Binary files a/Output/x64/gstreamer/libvorbis-0.dll and b/Output/x64/gstreamer/libvorbis-0.dll differ diff --git a/Output/x64/gstreamer/libvorbisenc-2.dll b/Output/x64/gstreamer/libvorbisenc-2.dll index 2085b45b..74076909 100644 Binary files a/Output/x64/gstreamer/libvorbisenc-2.dll and b/Output/x64/gstreamer/libvorbisenc-2.dll differ diff --git a/Output/x64/gstreamer/libvorbisfile-3.dll b/Output/x64/gstreamer/libvorbisfile-3.dll index 6a0fc95a..f72cc6b7 100644 Binary files a/Output/x64/gstreamer/libvorbisfile-3.dll and b/Output/x64/gstreamer/libvorbisfile-3.dll differ diff --git a/Output/x64/gstreamer/libwavpack-1.dll b/Output/x64/gstreamer/libwavpack-1.dll index 438356fe..eda6f846 100644 Binary files a/Output/x64/gstreamer/libwavpack-1.dll and b/Output/x64/gstreamer/libwavpack-1.dll differ diff --git a/Output/x64/gstreamer/libwinpthread-1.dll b/Output/x64/gstreamer/libwinpthread-1.dll new file mode 100644 index 00000000..e517c82d Binary files /dev/null and b/Output/x64/gstreamer/libwinpthread-1.dll differ diff --git a/Output/x64/gstreamer/libx264-125.dll b/Output/x64/gstreamer/libx264-125.dll new file mode 100644 index 00000000..661089e3 Binary files /dev/null and b/Output/x64/gstreamer/libx264-125.dll differ diff --git a/Output/x64/gstreamer/libxml2-2.dll b/Output/x64/gstreamer/libxml2-2.dll index 86e22cb5..6cea9673 100644 Binary files a/Output/x64/gstreamer/libxml2-2.dll and b/Output/x64/gstreamer/libxml2-2.dll differ diff --git a/Output/x64/gstreamer/libz.dll b/Output/x64/gstreamer/libz.dll index a67b4e9c..5daeaade 100644 Binary files a/Output/x64/gstreamer/libz.dll and b/Output/x64/gstreamer/libz.dll differ diff --git a/Output/x64/gstreamer/pthreadGC2-w64.dll b/Output/x64/gstreamer/pthreadGC2-w64.dll deleted file mode 100644 index 59cd89f1..00000000 Binary files a/Output/x64/gstreamer/pthreadGC2-w64.dll and /dev/null differ diff --git a/Output/x64/gstreamer/x86_64-w64-mingw32-gst-inspect-1.0.exe b/Output/x64/gstreamer/x86_64-w64-mingw32-gst-inspect-1.0.exe deleted file mode 100644 index a3133322..00000000 Binary files a/Output/x64/gstreamer/x86_64-w64-mingw32-gst-inspect-1.0.exe and /dev/null differ diff --git a/Output/x64/gstreamer/x86_64-w64-mingw32-gst-launch-1.0.exe b/Output/x64/gstreamer/x86_64-w64-mingw32-gst-launch-1.0.exe deleted file mode 100644 index 9d640961..00000000 Binary files a/Output/x64/gstreamer/x86_64-w64-mingw32-gst-launch-1.0.exe and /dev/null differ diff --git a/Output/x64/hidapi.dll b/Output/x64/hidapi.dll index 9e65d33a..54422765 100644 Binary files a/Output/x64/hidapi.dll and b/Output/x64/hidapi.dll differ diff --git a/Output/x86/gstreamer/libFLAC-8.dll b/Output/x86/gstreamer/libFLAC-8.dll index e0e00543..f18d03ba 100644 Binary files a/Output/x86/gstreamer/libFLAC-8.dll and b/Output/x86/gstreamer/libFLAC-8.dll differ diff --git a/Output/x86/gstreamer/liba52-0.dll b/Output/x86/gstreamer/liba52-0.dll index a22ef1d1..0ca827a8 100644 Binary files a/Output/x86/gstreamer/liba52-0.dll and b/Output/x86/gstreamer/liba52-0.dll differ diff --git a/Output/x86/gstreamer/libass-4.dll b/Output/x86/gstreamer/libass-4.dll index 4065bd16..652e351c 100644 Binary files a/Output/x86/gstreamer/libass-4.dll and b/Output/x86/gstreamer/libass-4.dll differ diff --git a/Output/x86/gstreamer/libbz2.dll b/Output/x86/gstreamer/libbz2.dll index 0c995786..bc4906bf 100644 Binary files a/Output/x86/gstreamer/libbz2.dll and b/Output/x86/gstreamer/libbz2.dll differ diff --git a/Output/x86/gstreamer/libcairo-2.dll b/Output/x86/gstreamer/libcairo-2.dll index d2034400..41d46bab 100644 Binary files a/Output/x86/gstreamer/libcairo-2.dll and b/Output/x86/gstreamer/libcairo-2.dll differ diff --git a/Output/x86/gstreamer/libcairo-gobject-2.dll b/Output/x86/gstreamer/libcairo-gobject-2.dll index 09a3abfd..254ad744 100644 Binary files a/Output/x86/gstreamer/libcairo-gobject-2.dll and b/Output/x86/gstreamer/libcairo-gobject-2.dll differ diff --git a/Output/x86/gstreamer/libcairo-script-interpreter-2.dll b/Output/x86/gstreamer/libcairo-script-interpreter-2.dll index b4a2f7b2..cb94ab63 100644 Binary files a/Output/x86/gstreamer/libcairo-script-interpreter-2.dll and b/Output/x86/gstreamer/libcairo-script-interpreter-2.dll differ diff --git a/Output/x86/gstreamer/libcharset-1.dll b/Output/x86/gstreamer/libcharset-1.dll index b0075e55..adf7ff56 100644 Binary files a/Output/x86/gstreamer/libcharset-1.dll and b/Output/x86/gstreamer/libcharset-1.dll differ diff --git a/Output/x86/gstreamer/libdca-0.dll b/Output/x86/gstreamer/libdca-0.dll index 06816f47..810ec4ad 100644 Binary files a/Output/x86/gstreamer/libdca-0.dll and b/Output/x86/gstreamer/libdca-0.dll differ diff --git a/Output/x86/gstreamer/libdv-4.dll b/Output/x86/gstreamer/libdv-4.dll index ed40c157..f4550758 100644 Binary files a/Output/x86/gstreamer/libdv-4.dll and b/Output/x86/gstreamer/libdv-4.dll differ diff --git a/Output/x86/gstreamer/libdvdnav-4.dll b/Output/x86/gstreamer/libdvdnav-4.dll index cd767f6f..9d6b2708 100644 Binary files a/Output/x86/gstreamer/libdvdnav-4.dll and b/Output/x86/gstreamer/libdvdnav-4.dll differ diff --git a/Output/x86/gstreamer/libdvdnavmini-4.dll b/Output/x86/gstreamer/libdvdnavmini-4.dll index 5841a527..18b93733 100644 Binary files a/Output/x86/gstreamer/libdvdnavmini-4.dll and b/Output/x86/gstreamer/libdvdnavmini-4.dll differ diff --git a/Output/x86/gstreamer/libdvdread-4.dll b/Output/x86/gstreamer/libdvdread-4.dll index af0586db..792db099 100644 Binary files a/Output/x86/gstreamer/libdvdread-4.dll and b/Output/x86/gstreamer/libdvdread-4.dll differ diff --git a/Output/x86/gstreamer/libexpat-1.dll b/Output/x86/gstreamer/libexpat-1.dll index 627f7382..755a3191 100644 Binary files a/Output/x86/gstreamer/libexpat-1.dll and b/Output/x86/gstreamer/libexpat-1.dll differ diff --git a/Output/x86/gstreamer/libfaad-2.dll b/Output/x86/gstreamer/libfaad-2.dll index 28861278..8b530f21 100644 Binary files a/Output/x86/gstreamer/libfaad-2.dll and b/Output/x86/gstreamer/libfaad-2.dll differ diff --git a/Output/x86/gstreamer/libffi-5.dll b/Output/x86/gstreamer/libffi-5.dll deleted file mode 100644 index ae89c8a2..00000000 Binary files a/Output/x86/gstreamer/libffi-5.dll and /dev/null differ diff --git a/Output/x86/gstreamer/libffi-6.dll b/Output/x86/gstreamer/libffi-6.dll new file mode 100644 index 00000000..3b439f96 Binary files /dev/null and b/Output/x86/gstreamer/libffi-6.dll differ diff --git a/Output/x86/gstreamer/libfontconfig-1.dll b/Output/x86/gstreamer/libfontconfig-1.dll index e1573704..12384b6b 100644 Binary files a/Output/x86/gstreamer/libfontconfig-1.dll and b/Output/x86/gstreamer/libfontconfig-1.dll differ diff --git a/Output/x86/gstreamer/libfreetype-6.dll b/Output/x86/gstreamer/libfreetype-6.dll index 969ce4ea..2681a07f 100644 Binary files a/Output/x86/gstreamer/libfreetype-6.dll and b/Output/x86/gstreamer/libfreetype-6.dll differ diff --git a/Output/x86/gstreamer/libfribidi-0.dll b/Output/x86/gstreamer/libfribidi-0.dll index ba85b561..5ff8d465 100644 Binary files a/Output/x86/gstreamer/libfribidi-0.dll and b/Output/x86/gstreamer/libfribidi-0.dll differ diff --git a/Output/x86/gstreamer/libgcc_s_sjlj-1.dll b/Output/x86/gstreamer/libgcc_s_sjlj-1.dll index 0e1c64f3..d7d77a76 100644 Binary files a/Output/x86/gstreamer/libgcc_s_sjlj-1.dll and b/Output/x86/gstreamer/libgcc_s_sjlj-1.dll differ diff --git a/Output/x86/gstreamer/libgdk_pixbuf-2.0-0.dll b/Output/x86/gstreamer/libgdk_pixbuf-2.0-0.dll index 7b0531e1..70f3e79f 100644 Binary files a/Output/x86/gstreamer/libgdk_pixbuf-2.0-0.dll and b/Output/x86/gstreamer/libgdk_pixbuf-2.0-0.dll differ diff --git a/Output/x86/gstreamer/libgio-2.0-0.dll b/Output/x86/gstreamer/libgio-2.0-0.dll index a9f3cf77..159bc588 100644 Binary files a/Output/x86/gstreamer/libgio-2.0-0.dll and b/Output/x86/gstreamer/libgio-2.0-0.dll differ diff --git a/Output/x86/gstreamer/libglib-2.0-0.dll b/Output/x86/gstreamer/libglib-2.0-0.dll index 02846ed8..400805b4 100644 Binary files a/Output/x86/gstreamer/libglib-2.0-0.dll and b/Output/x86/gstreamer/libglib-2.0-0.dll differ diff --git a/Output/x86/gstreamer/libgmodule-2.0-0.dll b/Output/x86/gstreamer/libgmodule-2.0-0.dll index ead44201..54c7a026 100644 Binary files a/Output/x86/gstreamer/libgmodule-2.0-0.dll and b/Output/x86/gstreamer/libgmodule-2.0-0.dll differ diff --git a/Output/x86/gstreamer/libgmp-10.dll b/Output/x86/gstreamer/libgmp-10.dll deleted file mode 100644 index 6945a933..00000000 Binary files a/Output/x86/gstreamer/libgmp-10.dll and /dev/null differ diff --git a/Output/x86/gstreamer/libgmpxx-4.dll b/Output/x86/gstreamer/libgmpxx-4.dll deleted file mode 100644 index f8f505a9..00000000 Binary files a/Output/x86/gstreamer/libgmpxx-4.dll and /dev/null differ diff --git a/Output/x86/gstreamer/libgnutls-28.dll b/Output/x86/gstreamer/libgnutls-28.dll index 856a47d4..a2fc2320 100644 Binary files a/Output/x86/gstreamer/libgnutls-28.dll and b/Output/x86/gstreamer/libgnutls-28.dll differ diff --git a/Output/x86/gstreamer/libgnutls-openssl-27.dll b/Output/x86/gstreamer/libgnutls-openssl-27.dll index 487c616a..cff30817 100644 Binary files a/Output/x86/gstreamer/libgnutls-openssl-27.dll and b/Output/x86/gstreamer/libgnutls-openssl-27.dll differ diff --git a/Output/x86/gstreamer/libgnutlsxx-28.dll b/Output/x86/gstreamer/libgnutlsxx-28.dll index 248ec2a3..cfbe9cdb 100644 Binary files a/Output/x86/gstreamer/libgnutlsxx-28.dll and b/Output/x86/gstreamer/libgnutlsxx-28.dll differ diff --git a/Output/x86/gstreamer/libgobject-2.0-0.dll b/Output/x86/gstreamer/libgobject-2.0-0.dll index d1c8e3b9..7ade25ec 100644 Binary files a/Output/x86/gstreamer/libgobject-2.0-0.dll and b/Output/x86/gstreamer/libgobject-2.0-0.dll differ diff --git a/Output/x86/gstreamer/libgomp-1.dll b/Output/x86/gstreamer/libgomp-1.dll new file mode 100644 index 00000000..7a50d33b Binary files /dev/null and b/Output/x86/gstreamer/libgomp-1.dll differ diff --git a/Output/x86/gstreamer/libgsta52dec.dll b/Output/x86/gstreamer/libgsta52dec.dll index ea5fbc50..0674bc61 100644 Binary files a/Output/x86/gstreamer/libgsta52dec.dll and b/Output/x86/gstreamer/libgsta52dec.dll differ diff --git a/Output/x86/gstreamer/libgstadder.dll b/Output/x86/gstreamer/libgstadder.dll index b1f0c4c8..33784b7e 100644 Binary files a/Output/x86/gstreamer/libgstadder.dll and b/Output/x86/gstreamer/libgstadder.dll differ diff --git a/Output/x86/gstreamer/libgstadpcmdec.dll b/Output/x86/gstreamer/libgstadpcmdec.dll index 348a1995..85732dc4 100644 Binary files a/Output/x86/gstreamer/libgstadpcmdec.dll and b/Output/x86/gstreamer/libgstadpcmdec.dll differ diff --git a/Output/x86/gstreamer/libgstadpcmenc.dll b/Output/x86/gstreamer/libgstadpcmenc.dll index 6874da47..5541b423 100644 Binary files a/Output/x86/gstreamer/libgstadpcmenc.dll and b/Output/x86/gstreamer/libgstadpcmenc.dll differ diff --git a/Output/x86/gstreamer/libgstalaw.dll b/Output/x86/gstreamer/libgstalaw.dll index e1d385c7..4decabf2 100644 Binary files a/Output/x86/gstreamer/libgstalaw.dll and b/Output/x86/gstreamer/libgstalaw.dll differ diff --git a/Output/x86/gstreamer/libgstalpha.dll b/Output/x86/gstreamer/libgstalpha.dll index f2d2419a..31a17709 100644 Binary files a/Output/x86/gstreamer/libgstalpha.dll and b/Output/x86/gstreamer/libgstalpha.dll differ diff --git a/Output/x86/gstreamer/libgstalphacolor.dll b/Output/x86/gstreamer/libgstalphacolor.dll index e8637754..45fc0eb1 100644 Binary files a/Output/x86/gstreamer/libgstalphacolor.dll and b/Output/x86/gstreamer/libgstalphacolor.dll differ diff --git a/Output/x86/gstreamer/libgstamrnb.dll b/Output/x86/gstreamer/libgstamrnb.dll index b93247f0..df4269fd 100644 Binary files a/Output/x86/gstreamer/libgstamrnb.dll and b/Output/x86/gstreamer/libgstamrnb.dll differ diff --git a/Output/x86/gstreamer/libgstamrwbdec.dll b/Output/x86/gstreamer/libgstamrwbdec.dll index dd9311c8..016e1040 100644 Binary files a/Output/x86/gstreamer/libgstamrwbdec.dll and b/Output/x86/gstreamer/libgstamrwbdec.dll differ diff --git a/Output/x86/gstreamer/libgstapetag.dll b/Output/x86/gstreamer/libgstapetag.dll index 1f115998..e024fb8a 100644 Binary files a/Output/x86/gstreamer/libgstapetag.dll and b/Output/x86/gstreamer/libgstapetag.dll differ diff --git a/Output/x86/gstreamer/libgstapp-1.0-0.dll b/Output/x86/gstreamer/libgstapp-1.0-0.dll index 3f9752d0..23fdc027 100644 Binary files a/Output/x86/gstreamer/libgstapp-1.0-0.dll and b/Output/x86/gstreamer/libgstapp-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libgstapp.dll b/Output/x86/gstreamer/libgstapp.dll index ffdd315f..8af1de0e 100644 Binary files a/Output/x86/gstreamer/libgstapp.dll and b/Output/x86/gstreamer/libgstapp.dll differ diff --git a/Output/x86/gstreamer/libgstasf.dll b/Output/x86/gstreamer/libgstasf.dll index f6cd3c27..d69a19f6 100644 Binary files a/Output/x86/gstreamer/libgstasf.dll and b/Output/x86/gstreamer/libgstasf.dll differ diff --git a/Output/x86/gstreamer/libgstasfmux.dll b/Output/x86/gstreamer/libgstasfmux.dll index ec0ac132..81ae5027 100644 Binary files a/Output/x86/gstreamer/libgstasfmux.dll and b/Output/x86/gstreamer/libgstasfmux.dll differ diff --git a/Output/x86/gstreamer/libgstassrender.dll b/Output/x86/gstreamer/libgstassrender.dll index 93cc8b01..b5e8b75b 100644 Binary files a/Output/x86/gstreamer/libgstassrender.dll and b/Output/x86/gstreamer/libgstassrender.dll differ diff --git a/Output/x86/gstreamer/libgstaudio-1.0-0.dll b/Output/x86/gstreamer/libgstaudio-1.0-0.dll index 673eb6b7..b901a739 100644 Binary files a/Output/x86/gstreamer/libgstaudio-1.0-0.dll and b/Output/x86/gstreamer/libgstaudio-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libgstaudioconvert.dll b/Output/x86/gstreamer/libgstaudioconvert.dll index a8033a7e..577d55c6 100644 Binary files a/Output/x86/gstreamer/libgstaudioconvert.dll and b/Output/x86/gstreamer/libgstaudioconvert.dll differ diff --git a/Output/x86/gstreamer/libgstaudiofx.dll b/Output/x86/gstreamer/libgstaudiofx.dll index 5a643f61..3b4519b1 100644 Binary files a/Output/x86/gstreamer/libgstaudiofx.dll and b/Output/x86/gstreamer/libgstaudiofx.dll differ diff --git a/Output/x86/gstreamer/libgstaudioparsers.dll b/Output/x86/gstreamer/libgstaudioparsers.dll index 36c45e03..ea454be6 100644 Binary files a/Output/x86/gstreamer/libgstaudioparsers.dll and b/Output/x86/gstreamer/libgstaudioparsers.dll differ diff --git a/Output/x86/gstreamer/libgstaudiorate.dll b/Output/x86/gstreamer/libgstaudiorate.dll index b8ba408b..411f2ba6 100644 Binary files a/Output/x86/gstreamer/libgstaudiorate.dll and b/Output/x86/gstreamer/libgstaudiorate.dll differ diff --git a/Output/x86/gstreamer/libgstaudioresample.dll b/Output/x86/gstreamer/libgstaudioresample.dll index bd899d81..08e57dc0 100644 Binary files a/Output/x86/gstreamer/libgstaudioresample.dll and b/Output/x86/gstreamer/libgstaudioresample.dll differ diff --git a/Output/x86/gstreamer/libgstaudiotestsrc.dll b/Output/x86/gstreamer/libgstaudiotestsrc.dll index cd9e4f64..8f1c4547 100644 Binary files a/Output/x86/gstreamer/libgstaudiotestsrc.dll and b/Output/x86/gstreamer/libgstaudiotestsrc.dll differ diff --git a/Output/x86/gstreamer/libgstaudiovisualizers.dll b/Output/x86/gstreamer/libgstaudiovisualizers.dll index 9b52b960..5115aed0 100644 Binary files a/Output/x86/gstreamer/libgstaudiovisualizers.dll and b/Output/x86/gstreamer/libgstaudiovisualizers.dll differ diff --git a/Output/x86/gstreamer/libgstauparse.dll b/Output/x86/gstreamer/libgstauparse.dll index b31e8ef3..5a415d16 100644 Binary files a/Output/x86/gstreamer/libgstauparse.dll and b/Output/x86/gstreamer/libgstauparse.dll differ diff --git a/Output/x86/gstreamer/libgstautoconvert.dll b/Output/x86/gstreamer/libgstautoconvert.dll index cb4cfb0c..eeaa5c2d 100644 Binary files a/Output/x86/gstreamer/libgstautoconvert.dll and b/Output/x86/gstreamer/libgstautoconvert.dll differ diff --git a/Output/x86/gstreamer/libgstautodetect.dll b/Output/x86/gstreamer/libgstautodetect.dll index 1e8dbf77..f560416a 100644 Binary files a/Output/x86/gstreamer/libgstautodetect.dll and b/Output/x86/gstreamer/libgstautodetect.dll differ diff --git a/Output/x86/gstreamer/libgstavi.dll b/Output/x86/gstreamer/libgstavi.dll index b543003d..ce14cebd 100644 Binary files a/Output/x86/gstreamer/libgstavi.dll and b/Output/x86/gstreamer/libgstavi.dll differ diff --git a/Output/x86/gstreamer/libgstavscale.dll b/Output/x86/gstreamer/libgstavscale.dll deleted file mode 100644 index 151295bd..00000000 Binary files a/Output/x86/gstreamer/libgstavscale.dll and /dev/null differ diff --git a/Output/x86/gstreamer/libgstbase-1.0-0.dll b/Output/x86/gstreamer/libgstbase-1.0-0.dll index aaf7b7aa..c7f9c325 100644 Binary files a/Output/x86/gstreamer/libgstbase-1.0-0.dll and b/Output/x86/gstreamer/libgstbase-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libgstbasecamerabinsrc-1.0-0.dll b/Output/x86/gstreamer/libgstbasecamerabinsrc-1.0-0.dll index 59756955..90173e16 100644 Binary files a/Output/x86/gstreamer/libgstbasecamerabinsrc-1.0-0.dll and b/Output/x86/gstreamer/libgstbasecamerabinsrc-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libgstbasevideo-1.0-0.dll b/Output/x86/gstreamer/libgstbasevideo-1.0-0.dll deleted file mode 100644 index 72d688f9..00000000 Binary files a/Output/x86/gstreamer/libgstbasevideo-1.0-0.dll and /dev/null differ diff --git a/Output/x86/gstreamer/libgstbayer.dll b/Output/x86/gstreamer/libgstbayer.dll index b6483c0a..6c40b2fa 100644 Binary files a/Output/x86/gstreamer/libgstbayer.dll and b/Output/x86/gstreamer/libgstbayer.dll differ diff --git a/Output/x86/gstreamer/libgstcairo.dll b/Output/x86/gstreamer/libgstcairo.dll new file mode 100644 index 00000000..a6d3811d Binary files /dev/null and b/Output/x86/gstreamer/libgstcairo.dll differ diff --git a/Output/x86/gstreamer/libgstcamerabin2.dll b/Output/x86/gstreamer/libgstcamerabin2.dll index 50f980b7..47d9bb6e 100644 Binary files a/Output/x86/gstreamer/libgstcamerabin2.dll and b/Output/x86/gstreamer/libgstcamerabin2.dll differ diff --git a/Output/x86/gstreamer/libgstcodecparsers-1.0-0.dll b/Output/x86/gstreamer/libgstcodecparsers-1.0-0.dll index d1c5e3ec..b2486237 100644 Binary files a/Output/x86/gstreamer/libgstcodecparsers-1.0-0.dll and b/Output/x86/gstreamer/libgstcodecparsers-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libgstcoloreffects.dll b/Output/x86/gstreamer/libgstcoloreffects.dll index cb597ccd..77d9d251 100644 Binary files a/Output/x86/gstreamer/libgstcoloreffects.dll and b/Output/x86/gstreamer/libgstcoloreffects.dll differ diff --git a/Output/x86/gstreamer/libgstcontroller-1.0-0.dll b/Output/x86/gstreamer/libgstcontroller-1.0-0.dll index d37ae1ac..9f3269b8 100644 Binary files a/Output/x86/gstreamer/libgstcontroller-1.0-0.dll and b/Output/x86/gstreamer/libgstcontroller-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libgstcoreelements.dll b/Output/x86/gstreamer/libgstcoreelements.dll index e0383584..e07af1f4 100644 Binary files a/Output/x86/gstreamer/libgstcoreelements.dll and b/Output/x86/gstreamer/libgstcoreelements.dll differ diff --git a/Output/x86/gstreamer/libgstcutter.dll b/Output/x86/gstreamer/libgstcutter.dll index 2d5a0480..701c2e8a 100644 Binary files a/Output/x86/gstreamer/libgstcutter.dll and b/Output/x86/gstreamer/libgstcutter.dll differ diff --git a/Output/x86/gstreamer/libgstd3dvideosink.dll b/Output/x86/gstreamer/libgstd3dvideosink.dll index 385efb4c..a87a4205 100644 Binary files a/Output/x86/gstreamer/libgstd3dvideosink.dll and b/Output/x86/gstreamer/libgstd3dvideosink.dll differ diff --git a/Output/x86/gstreamer/libgstdataurisrc.dll b/Output/x86/gstreamer/libgstdataurisrc.dll index 7b1d2476..18038a72 100644 Binary files a/Output/x86/gstreamer/libgstdataurisrc.dll and b/Output/x86/gstreamer/libgstdataurisrc.dll differ diff --git a/Output/x86/gstreamer/libgstdebug.dll b/Output/x86/gstreamer/libgstdebug.dll index 0dd4c055..87f5bb0d 100644 Binary files a/Output/x86/gstreamer/libgstdebug.dll and b/Output/x86/gstreamer/libgstdebug.dll differ diff --git a/Output/x86/gstreamer/libgstdebugutilsbad.dll b/Output/x86/gstreamer/libgstdebugutilsbad.dll deleted file mode 100644 index a478ad82..00000000 Binary files a/Output/x86/gstreamer/libgstdebugutilsbad.dll and /dev/null differ diff --git a/Output/x86/gstreamer/libgstdeinterlace.dll b/Output/x86/gstreamer/libgstdeinterlace.dll index 7b5ec030..de5a9665 100644 Binary files a/Output/x86/gstreamer/libgstdeinterlace.dll and b/Output/x86/gstreamer/libgstdeinterlace.dll differ diff --git a/Output/x86/gstreamer/libgstdirectsoundsink.dll b/Output/x86/gstreamer/libgstdirectsoundsink.dll index d425f9f9..981d7722 100644 Binary files a/Output/x86/gstreamer/libgstdirectsoundsink.dll and b/Output/x86/gstreamer/libgstdirectsoundsink.dll differ diff --git a/Output/x86/gstreamer/libgstdirectsoundsrc.dll b/Output/x86/gstreamer/libgstdirectsoundsrc.dll deleted file mode 100644 index 024f15d8..00000000 Binary files a/Output/x86/gstreamer/libgstdirectsoundsrc.dll and /dev/null differ diff --git a/Output/x86/gstreamer/libgstdtmf.dll b/Output/x86/gstreamer/libgstdtmf.dll index 1816f9e4..a45d8bae 100644 Binary files a/Output/x86/gstreamer/libgstdtmf.dll and b/Output/x86/gstreamer/libgstdtmf.dll differ diff --git a/Output/x86/gstreamer/libgstdtsdec.dll b/Output/x86/gstreamer/libgstdtsdec.dll index 021c6e98..80815aed 100644 Binary files a/Output/x86/gstreamer/libgstdtsdec.dll and b/Output/x86/gstreamer/libgstdtsdec.dll differ diff --git a/Output/x86/gstreamer/libgstdv.dll b/Output/x86/gstreamer/libgstdv.dll index 969940ef..64bba83f 100644 Binary files a/Output/x86/gstreamer/libgstdv.dll and b/Output/x86/gstreamer/libgstdv.dll differ diff --git a/Output/x86/gstreamer/libgstdvbsuboverlay.dll b/Output/x86/gstreamer/libgstdvbsuboverlay.dll index b0de1eb5..b677005d 100644 Binary files a/Output/x86/gstreamer/libgstdvbsuboverlay.dll and b/Output/x86/gstreamer/libgstdvbsuboverlay.dll differ diff --git a/Output/x86/gstreamer/libgstdvdlpcmdec.dll b/Output/x86/gstreamer/libgstdvdlpcmdec.dll index b64b9651..6b4e8d7a 100644 Binary files a/Output/x86/gstreamer/libgstdvdlpcmdec.dll and b/Output/x86/gstreamer/libgstdvdlpcmdec.dll differ diff --git a/Output/x86/gstreamer/libgstdvdread.dll b/Output/x86/gstreamer/libgstdvdread.dll index 5afc930b..c6346cfa 100644 Binary files a/Output/x86/gstreamer/libgstdvdread.dll and b/Output/x86/gstreamer/libgstdvdread.dll differ diff --git a/Output/x86/gstreamer/libgstdvdspu.dll b/Output/x86/gstreamer/libgstdvdspu.dll index 2f937b16..01587444 100644 Binary files a/Output/x86/gstreamer/libgstdvdspu.dll and b/Output/x86/gstreamer/libgstdvdspu.dll differ diff --git a/Output/x86/gstreamer/libgstdvdsub.dll b/Output/x86/gstreamer/libgstdvdsub.dll deleted file mode 100644 index 03bbeaed..00000000 Binary files a/Output/x86/gstreamer/libgstdvdsub.dll and /dev/null differ diff --git a/Output/x86/gstreamer/libgsteffectv.dll b/Output/x86/gstreamer/libgsteffectv.dll index cd641348..71ac25b3 100644 Binary files a/Output/x86/gstreamer/libgsteffectv.dll and b/Output/x86/gstreamer/libgsteffectv.dll differ diff --git a/Output/x86/gstreamer/libgstencodebin.dll b/Output/x86/gstreamer/libgstencodebin.dll index efa6ddbf..1dc99224 100644 Binary files a/Output/x86/gstreamer/libgstencodebin.dll and b/Output/x86/gstreamer/libgstencodebin.dll differ diff --git a/Output/x86/gstreamer/libgstequalizer.dll b/Output/x86/gstreamer/libgstequalizer.dll index 8b8696c4..2f1cba5a 100644 Binary files a/Output/x86/gstreamer/libgstequalizer.dll and b/Output/x86/gstreamer/libgstequalizer.dll differ diff --git a/Output/x86/gstreamer/libgstfaad.dll b/Output/x86/gstreamer/libgstfaad.dll index dfc210d4..2d29d553 100644 Binary files a/Output/x86/gstreamer/libgstfaad.dll and b/Output/x86/gstreamer/libgstfaad.dll differ diff --git a/Output/x86/gstreamer/libgstfft-1.0-0.dll b/Output/x86/gstreamer/libgstfft-1.0-0.dll index dae057a9..fd02f6c5 100644 Binary files a/Output/x86/gstreamer/libgstfft-1.0-0.dll and b/Output/x86/gstreamer/libgstfft-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libgstfieldanalysis.dll b/Output/x86/gstreamer/libgstfieldanalysis.dll index 4d72c71c..4caf5a8d 100644 Binary files a/Output/x86/gstreamer/libgstfieldanalysis.dll and b/Output/x86/gstreamer/libgstfieldanalysis.dll differ diff --git a/Output/x86/gstreamer/libgstflac.dll b/Output/x86/gstreamer/libgstflac.dll index db85b9c5..1cdec1d5 100644 Binary files a/Output/x86/gstreamer/libgstflac.dll and b/Output/x86/gstreamer/libgstflac.dll differ diff --git a/Output/x86/gstreamer/libgstflv.dll b/Output/x86/gstreamer/libgstflv.dll index cb517cab..c8d678fa 100644 Binary files a/Output/x86/gstreamer/libgstflv.dll and b/Output/x86/gstreamer/libgstflv.dll differ diff --git a/Output/x86/gstreamer/libgstflxdec.dll b/Output/x86/gstreamer/libgstflxdec.dll index 4e2d1c60..9d558801 100644 Binary files a/Output/x86/gstreamer/libgstflxdec.dll and b/Output/x86/gstreamer/libgstflxdec.dll differ diff --git a/Output/x86/gstreamer/libgstfragmented.dll b/Output/x86/gstreamer/libgstfragmented.dll index fef04e0e..f282f6f0 100644 Binary files a/Output/x86/gstreamer/libgstfragmented.dll and b/Output/x86/gstreamer/libgstfragmented.dll differ diff --git a/Output/x86/gstreamer/libgstfrei0r.dll b/Output/x86/gstreamer/libgstfrei0r.dll index 66901906..f9d743df 100644 Binary files a/Output/x86/gstreamer/libgstfrei0r.dll and b/Output/x86/gstreamer/libgstfrei0r.dll differ diff --git a/Output/x86/gstreamer/libgstgaudieffects.dll b/Output/x86/gstreamer/libgstgaudieffects.dll index 0cf42a3a..e643af7b 100644 Binary files a/Output/x86/gstreamer/libgstgaudieffects.dll and b/Output/x86/gstreamer/libgstgaudieffects.dll differ diff --git a/Output/x86/gstreamer/libgstgdkpixbuf.dll b/Output/x86/gstreamer/libgstgdkpixbuf.dll index 1b3d59de..ce9e2be1 100644 Binary files a/Output/x86/gstreamer/libgstgdkpixbuf.dll and b/Output/x86/gstreamer/libgstgdkpixbuf.dll differ diff --git a/Output/x86/gstreamer/libgstgdp.dll b/Output/x86/gstreamer/libgstgdp.dll deleted file mode 100644 index 5a0235ff..00000000 Binary files a/Output/x86/gstreamer/libgstgdp.dll and /dev/null differ diff --git a/Output/x86/gstreamer/libgstgeometrictransform.dll b/Output/x86/gstreamer/libgstgeometrictransform.dll index b96e1390..df16b7fa 100644 Binary files a/Output/x86/gstreamer/libgstgeometrictransform.dll and b/Output/x86/gstreamer/libgstgeometrictransform.dll differ diff --git a/Output/x86/gstreamer/libgstgio.dll b/Output/x86/gstreamer/libgstgio.dll index b2af5414..48552e8f 100644 Binary files a/Output/x86/gstreamer/libgstgio.dll and b/Output/x86/gstreamer/libgstgio.dll differ diff --git a/Output/x86/gstreamer/libgstgoom.dll b/Output/x86/gstreamer/libgstgoom.dll index c8f98405..50c24afe 100644 Binary files a/Output/x86/gstreamer/libgstgoom.dll and b/Output/x86/gstreamer/libgstgoom.dll differ diff --git a/Output/x86/gstreamer/libgstgoom2k1.dll b/Output/x86/gstreamer/libgstgoom2k1.dll index 6af469e3..5da701f5 100644 Binary files a/Output/x86/gstreamer/libgstgoom2k1.dll and b/Output/x86/gstreamer/libgstgoom2k1.dll differ diff --git a/Output/x86/gstreamer/libgsticydemux.dll b/Output/x86/gstreamer/libgsticydemux.dll index da1de0b9..e07a828a 100644 Binary files a/Output/x86/gstreamer/libgsticydemux.dll and b/Output/x86/gstreamer/libgsticydemux.dll differ diff --git a/Output/x86/gstreamer/libgstid3demux.dll b/Output/x86/gstreamer/libgstid3demux.dll index 516fe447..5178e494 100644 Binary files a/Output/x86/gstreamer/libgstid3demux.dll and b/Output/x86/gstreamer/libgstid3demux.dll differ diff --git a/Output/x86/gstreamer/libgstid3tag.dll b/Output/x86/gstreamer/libgstid3tag.dll index 8b6d910e..8b9cacb8 100644 Binary files a/Output/x86/gstreamer/libgstid3tag.dll and b/Output/x86/gstreamer/libgstid3tag.dll differ diff --git a/Output/x86/gstreamer/libgstimagefreeze.dll b/Output/x86/gstreamer/libgstimagefreeze.dll index f0fd4b2b..726f0e56 100644 Binary files a/Output/x86/gstreamer/libgstimagefreeze.dll and b/Output/x86/gstreamer/libgstimagefreeze.dll differ diff --git a/Output/x86/gstreamer/libgstinterlace.dll b/Output/x86/gstreamer/libgstinterlace.dll index 1f8516a7..ba1a09fd 100644 Binary files a/Output/x86/gstreamer/libgstinterlace.dll and b/Output/x86/gstreamer/libgstinterlace.dll differ diff --git a/Output/x86/gstreamer/libgstinterleave.dll b/Output/x86/gstreamer/libgstinterleave.dll index b88347b2..e0841d33 100644 Binary files a/Output/x86/gstreamer/libgstinterleave.dll and b/Output/x86/gstreamer/libgstinterleave.dll differ diff --git a/Output/x86/gstreamer/libgstisomp4.dll b/Output/x86/gstreamer/libgstisomp4.dll index 2ae79bcc..e0a237aa 100644 Binary files a/Output/x86/gstreamer/libgstisomp4.dll and b/Output/x86/gstreamer/libgstisomp4.dll differ diff --git a/Output/x86/gstreamer/libgstjpeg.dll b/Output/x86/gstreamer/libgstjpeg.dll index bca6bde3..1acf3ac0 100644 Binary files a/Output/x86/gstreamer/libgstjpeg.dll and b/Output/x86/gstreamer/libgstjpeg.dll differ diff --git a/Output/x86/gstreamer/libgstjpegformat.dll b/Output/x86/gstreamer/libgstjpegformat.dll index b14cc3dc..7317e8ca 100644 Binary files a/Output/x86/gstreamer/libgstjpegformat.dll and b/Output/x86/gstreamer/libgstjpegformat.dll differ diff --git a/Output/x86/gstreamer/libgstlevel.dll b/Output/x86/gstreamer/libgstlevel.dll index e98cc369..a3196c8f 100644 Binary files a/Output/x86/gstreamer/libgstlevel.dll and b/Output/x86/gstreamer/libgstlevel.dll differ diff --git a/Output/x86/gstreamer/libgstlibav.dll b/Output/x86/gstreamer/libgstlibav.dll index 958b7135..cc53b994 100644 Binary files a/Output/x86/gstreamer/libgstlibav.dll and b/Output/x86/gstreamer/libgstlibav.dll differ diff --git a/Output/x86/gstreamer/libgstlibvisual.dll b/Output/x86/gstreamer/libgstlibvisual.dll index f43bc2bc..e47f6063 100644 Binary files a/Output/x86/gstreamer/libgstlibvisual.dll and b/Output/x86/gstreamer/libgstlibvisual.dll differ diff --git a/Output/x86/gstreamer/libgstliveadder.dll b/Output/x86/gstreamer/libgstliveadder.dll index 1dea1d78..438087f6 100644 Binary files a/Output/x86/gstreamer/libgstliveadder.dll and b/Output/x86/gstreamer/libgstliveadder.dll differ diff --git a/Output/x86/gstreamer/libgstmad.dll b/Output/x86/gstreamer/libgstmad.dll index 549030e6..5f162650 100644 Binary files a/Output/x86/gstreamer/libgstmad.dll and b/Output/x86/gstreamer/libgstmad.dll differ diff --git a/Output/x86/gstreamer/libgstmatroska.dll b/Output/x86/gstreamer/libgstmatroska.dll index 6e93f5cb..f65d9821 100644 Binary files a/Output/x86/gstreamer/libgstmatroska.dll and b/Output/x86/gstreamer/libgstmatroska.dll differ diff --git a/Output/x86/gstreamer/libgstmms.dll b/Output/x86/gstreamer/libgstmms.dll index 8042b11f..dc9724ca 100644 Binary files a/Output/x86/gstreamer/libgstmms.dll and b/Output/x86/gstreamer/libgstmms.dll differ diff --git a/Output/x86/gstreamer/libgstmpeg2dec.dll b/Output/x86/gstreamer/libgstmpeg2dec.dll index 60102ed8..a446faca 100644 Binary files a/Output/x86/gstreamer/libgstmpeg2dec.dll and b/Output/x86/gstreamer/libgstmpeg2dec.dll differ diff --git a/Output/x86/gstreamer/libgstmpegpsdemux.dll b/Output/x86/gstreamer/libgstmpegpsdemux.dll index 1e3ee494..6dd27e97 100644 Binary files a/Output/x86/gstreamer/libgstmpegpsdemux.dll and b/Output/x86/gstreamer/libgstmpegpsdemux.dll differ diff --git a/Output/x86/gstreamer/libgstmpegpsmux.dll b/Output/x86/gstreamer/libgstmpegpsmux.dll index 7d0dfd76..2ce4185e 100644 Binary files a/Output/x86/gstreamer/libgstmpegpsmux.dll and b/Output/x86/gstreamer/libgstmpegpsmux.dll differ diff --git a/Output/x86/gstreamer/libgstmpegtsdemux.dll b/Output/x86/gstreamer/libgstmpegtsdemux.dll index 4fca24a1..0348f638 100644 Binary files a/Output/x86/gstreamer/libgstmpegtsdemux.dll and b/Output/x86/gstreamer/libgstmpegtsdemux.dll differ diff --git a/Output/x86/gstreamer/libgstmpegtsmux.dll b/Output/x86/gstreamer/libgstmpegtsmux.dll index ecdd9f58..f6ca0fa9 100644 Binary files a/Output/x86/gstreamer/libgstmpegtsmux.dll and b/Output/x86/gstreamer/libgstmpegtsmux.dll differ diff --git a/Output/x86/gstreamer/libgstmulaw.dll b/Output/x86/gstreamer/libgstmulaw.dll index 611108af..3cfe5b04 100644 Binary files a/Output/x86/gstreamer/libgstmulaw.dll and b/Output/x86/gstreamer/libgstmulaw.dll differ diff --git a/Output/x86/gstreamer/libgstmultifile.dll b/Output/x86/gstreamer/libgstmultifile.dll index f75c7e3f..608c8b8d 100644 Binary files a/Output/x86/gstreamer/libgstmultifile.dll and b/Output/x86/gstreamer/libgstmultifile.dll differ diff --git a/Output/x86/gstreamer/libgstmultipart.dll b/Output/x86/gstreamer/libgstmultipart.dll index 2016dcec..58b4bc8d 100644 Binary files a/Output/x86/gstreamer/libgstmultipart.dll and b/Output/x86/gstreamer/libgstmultipart.dll differ diff --git a/Output/x86/gstreamer/libgstnavigationtest.dll b/Output/x86/gstreamer/libgstnavigationtest.dll deleted file mode 100644 index 9b38cd7e..00000000 Binary files a/Output/x86/gstreamer/libgstnavigationtest.dll and /dev/null differ diff --git a/Output/x86/gstreamer/libgstnet-1.0-0.dll b/Output/x86/gstreamer/libgstnet-1.0-0.dll index 00acaf51..37ff4075 100644 Binary files a/Output/x86/gstreamer/libgstnet-1.0-0.dll and b/Output/x86/gstreamer/libgstnet-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libgstogg.dll b/Output/x86/gstreamer/libgstogg.dll index ab45c435..83df5f20 100644 Binary files a/Output/x86/gstreamer/libgstogg.dll and b/Output/x86/gstreamer/libgstogg.dll differ diff --git a/Output/x86/gstreamer/libgstopus.dll b/Output/x86/gstreamer/libgstopus.dll index 2a833fe2..3c81ecf6 100644 Binary files a/Output/x86/gstreamer/libgstopus.dll and b/Output/x86/gstreamer/libgstopus.dll differ diff --git a/Output/x86/gstreamer/libgstpango.dll b/Output/x86/gstreamer/libgstpango.dll index 7a7a78bf..eab7f62e 100644 Binary files a/Output/x86/gstreamer/libgstpango.dll and b/Output/x86/gstreamer/libgstpango.dll differ diff --git a/Output/x86/gstreamer/libgstpbutils-1.0-0.dll b/Output/x86/gstreamer/libgstpbutils-1.0-0.dll index edc82832..bfd889ee 100644 Binary files a/Output/x86/gstreamer/libgstpbutils-1.0-0.dll and b/Output/x86/gstreamer/libgstpbutils-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libgstpcapparse.dll b/Output/x86/gstreamer/libgstpcapparse.dll index b2be7bb4..a93eab1d 100644 Binary files a/Output/x86/gstreamer/libgstpcapparse.dll and b/Output/x86/gstreamer/libgstpcapparse.dll differ diff --git a/Output/x86/gstreamer/libgstphotography-1.0-0.dll b/Output/x86/gstreamer/libgstphotography-1.0-0.dll index c68f3a5f..ab9c9cb4 100644 Binary files a/Output/x86/gstreamer/libgstphotography-1.0-0.dll and b/Output/x86/gstreamer/libgstphotography-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libgstplayback.dll b/Output/x86/gstreamer/libgstplayback.dll index 88a3e3c5..debe2dca 100644 Binary files a/Output/x86/gstreamer/libgstplayback.dll and b/Output/x86/gstreamer/libgstplayback.dll differ diff --git a/Output/x86/gstreamer/libgstpng.dll b/Output/x86/gstreamer/libgstpng.dll index 49ce1089..57df4d65 100644 Binary files a/Output/x86/gstreamer/libgstpng.dll and b/Output/x86/gstreamer/libgstpng.dll differ diff --git a/Output/x86/gstreamer/libgstpnm.dll b/Output/x86/gstreamer/libgstpnm.dll index fc317c69..1bcb49d8 100644 Binary files a/Output/x86/gstreamer/libgstpnm.dll and b/Output/x86/gstreamer/libgstpnm.dll differ diff --git a/Output/x86/gstreamer/libgstrawparse.dll b/Output/x86/gstreamer/libgstrawparse.dll index 0f6142d1..0b9d5f35 100644 Binary files a/Output/x86/gstreamer/libgstrawparse.dll and b/Output/x86/gstreamer/libgstrawparse.dll differ diff --git a/Output/x86/gstreamer/libgstreamer-1.0-0.dll b/Output/x86/gstreamer/libgstreamer-1.0-0.dll index 078eb3bd..10bb3208 100644 Binary files a/Output/x86/gstreamer/libgstreamer-1.0-0.dll and b/Output/x86/gstreamer/libgstreamer-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libgstremovesilence.dll b/Output/x86/gstreamer/libgstremovesilence.dll index 1c609c19..0b489a18 100644 Binary files a/Output/x86/gstreamer/libgstremovesilence.dll and b/Output/x86/gstreamer/libgstremovesilence.dll differ diff --git a/Output/x86/gstreamer/libgstreplaygain.dll b/Output/x86/gstreamer/libgstreplaygain.dll index 93826e4a..39857e99 100644 Binary files a/Output/x86/gstreamer/libgstreplaygain.dll and b/Output/x86/gstreamer/libgstreplaygain.dll differ diff --git a/Output/x86/gstreamer/libgstresindvd.dll b/Output/x86/gstreamer/libgstresindvd.dll index 9afd6f35..9302e3af 100644 Binary files a/Output/x86/gstreamer/libgstresindvd.dll and b/Output/x86/gstreamer/libgstresindvd.dll differ diff --git a/Output/x86/gstreamer/libgstriff-1.0-0.dll b/Output/x86/gstreamer/libgstriff-1.0-0.dll index 7c6d5704..2a068e7c 100644 Binary files a/Output/x86/gstreamer/libgstriff-1.0-0.dll and b/Output/x86/gstreamer/libgstriff-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libgstrmdemux.dll b/Output/x86/gstreamer/libgstrmdemux.dll index 515b82a2..fd602a5d 100644 Binary files a/Output/x86/gstreamer/libgstrmdemux.dll and b/Output/x86/gstreamer/libgstrmdemux.dll differ diff --git a/Output/x86/gstreamer/libgstrtp-1.0-0.dll b/Output/x86/gstreamer/libgstrtp-1.0-0.dll index 9f348886..df40de79 100644 Binary files a/Output/x86/gstreamer/libgstrtp-1.0-0.dll and b/Output/x86/gstreamer/libgstrtp-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libgstrtp.dll b/Output/x86/gstreamer/libgstrtp.dll index a1a08380..c6a4c95a 100644 Binary files a/Output/x86/gstreamer/libgstrtp.dll and b/Output/x86/gstreamer/libgstrtp.dll differ diff --git a/Output/x86/gstreamer/libgstrtpmanager.dll b/Output/x86/gstreamer/libgstrtpmanager.dll index 5bc72a02..bb6ba895 100644 Binary files a/Output/x86/gstreamer/libgstrtpmanager.dll and b/Output/x86/gstreamer/libgstrtpmanager.dll differ diff --git a/Output/x86/gstreamer/libgstrtpmux.dll b/Output/x86/gstreamer/libgstrtpmux.dll deleted file mode 100644 index 0dbdbff0..00000000 Binary files a/Output/x86/gstreamer/libgstrtpmux.dll and /dev/null differ diff --git a/Output/x86/gstreamer/libgstrtpvp8.dll b/Output/x86/gstreamer/libgstrtpvp8.dll deleted file mode 100644 index 9ebf7f5f..00000000 Binary files a/Output/x86/gstreamer/libgstrtpvp8.dll and /dev/null differ diff --git a/Output/x86/gstreamer/libgstrtsp-1.0-0.dll b/Output/x86/gstreamer/libgstrtsp-1.0-0.dll index b8f8d5be..dedb31e3 100644 Binary files a/Output/x86/gstreamer/libgstrtsp-1.0-0.dll and b/Output/x86/gstreamer/libgstrtsp-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libgstrtsp.dll b/Output/x86/gstreamer/libgstrtsp.dll index d9ed991e..2c350de0 100644 Binary files a/Output/x86/gstreamer/libgstrtsp.dll and b/Output/x86/gstreamer/libgstrtsp.dll differ diff --git a/Output/x86/gstreamer/libgstscaletempoplugin.dll b/Output/x86/gstreamer/libgstscaletempoplugin.dll index 40622d4c..6c857794 100644 Binary files a/Output/x86/gstreamer/libgstscaletempoplugin.dll and b/Output/x86/gstreamer/libgstscaletempoplugin.dll differ diff --git a/Output/x86/gstreamer/libgstschro.dll b/Output/x86/gstreamer/libgstschro.dll index b0550943..c1f6c667 100644 Binary files a/Output/x86/gstreamer/libgstschro.dll and b/Output/x86/gstreamer/libgstschro.dll differ diff --git a/Output/x86/gstreamer/libgstsdp-1.0-0.dll b/Output/x86/gstreamer/libgstsdp-1.0-0.dll index 4c6135f6..d299174d 100644 Binary files a/Output/x86/gstreamer/libgstsdp-1.0-0.dll and b/Output/x86/gstreamer/libgstsdp-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libgstsdpelem.dll b/Output/x86/gstreamer/libgstsdpelem.dll index fa3b00b5..e29664b9 100644 Binary files a/Output/x86/gstreamer/libgstsdpelem.dll and b/Output/x86/gstreamer/libgstsdpelem.dll differ diff --git a/Output/x86/gstreamer/libgstsegmentclip.dll b/Output/x86/gstreamer/libgstsegmentclip.dll index a695edab..57eb1f28 100644 Binary files a/Output/x86/gstreamer/libgstsegmentclip.dll and b/Output/x86/gstreamer/libgstsegmentclip.dll differ diff --git a/Output/x86/gstreamer/libgstshapewipe.dll b/Output/x86/gstreamer/libgstshapewipe.dll index e38e320d..6839d947 100644 Binary files a/Output/x86/gstreamer/libgstshapewipe.dll and b/Output/x86/gstreamer/libgstshapewipe.dll differ diff --git a/Output/x86/gstreamer/libgstsignalprocessor-1.0-0.dll b/Output/x86/gstreamer/libgstsignalprocessor-1.0-0.dll deleted file mode 100644 index 0ac96df8..00000000 Binary files a/Output/x86/gstreamer/libgstsignalprocessor-1.0-0.dll and /dev/null differ diff --git a/Output/x86/gstreamer/libgstsiren.dll b/Output/x86/gstreamer/libgstsiren.dll index 48639ec7..4d6cc6df 100644 Binary files a/Output/x86/gstreamer/libgstsiren.dll and b/Output/x86/gstreamer/libgstsiren.dll differ diff --git a/Output/x86/gstreamer/libgstsmooth.dll b/Output/x86/gstreamer/libgstsmooth.dll index 8b712e31..aa582672 100644 Binary files a/Output/x86/gstreamer/libgstsmooth.dll and b/Output/x86/gstreamer/libgstsmooth.dll differ diff --git a/Output/x86/gstreamer/libgstsmpte.dll b/Output/x86/gstreamer/libgstsmpte.dll index 5255c8da..8b744500 100644 Binary files a/Output/x86/gstreamer/libgstsmpte.dll and b/Output/x86/gstreamer/libgstsmpte.dll differ diff --git a/Output/x86/gstreamer/libgstsouphttpsrc.dll b/Output/x86/gstreamer/libgstsouphttpsrc.dll index b17b28e2..39201051 100644 Binary files a/Output/x86/gstreamer/libgstsouphttpsrc.dll and b/Output/x86/gstreamer/libgstsouphttpsrc.dll differ diff --git a/Output/x86/gstreamer/libgstspectrum.dll b/Output/x86/gstreamer/libgstspectrum.dll index 7682552f..9b4e9936 100644 Binary files a/Output/x86/gstreamer/libgstspectrum.dll and b/Output/x86/gstreamer/libgstspectrum.dll differ diff --git a/Output/x86/gstreamer/libgstspeed.dll b/Output/x86/gstreamer/libgstspeed.dll index 3f0b1eeb..a57031dc 100644 Binary files a/Output/x86/gstreamer/libgstspeed.dll and b/Output/x86/gstreamer/libgstspeed.dll differ diff --git a/Output/x86/gstreamer/libgstspeex.dll b/Output/x86/gstreamer/libgstspeex.dll index 112b5241..a45eab57 100644 Binary files a/Output/x86/gstreamer/libgstspeex.dll and b/Output/x86/gstreamer/libgstspeex.dll differ diff --git a/Output/x86/gstreamer/libgstsubenc.dll b/Output/x86/gstreamer/libgstsubenc.dll index d4024ef7..1efc8e45 100644 Binary files a/Output/x86/gstreamer/libgstsubenc.dll and b/Output/x86/gstreamer/libgstsubenc.dll differ diff --git a/Output/x86/gstreamer/libgstsubparse.dll b/Output/x86/gstreamer/libgstsubparse.dll index a9b3dbb6..c13898f6 100644 Binary files a/Output/x86/gstreamer/libgstsubparse.dll and b/Output/x86/gstreamer/libgstsubparse.dll differ diff --git a/Output/x86/gstreamer/libgsttag-1.0-0.dll b/Output/x86/gstreamer/libgsttag-1.0-0.dll index c57cdad4..eff7d616 100644 Binary files a/Output/x86/gstreamer/libgsttag-1.0-0.dll and b/Output/x86/gstreamer/libgsttag-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libgsttaglib.dll b/Output/x86/gstreamer/libgsttaglib.dll index ed43466f..2a2ad451 100644 Binary files a/Output/x86/gstreamer/libgsttaglib.dll and b/Output/x86/gstreamer/libgsttaglib.dll differ diff --git a/Output/x86/gstreamer/libgsttcp.dll b/Output/x86/gstreamer/libgsttcp.dll index 3b0708a1..c0d049b9 100644 Binary files a/Output/x86/gstreamer/libgsttcp.dll and b/Output/x86/gstreamer/libgsttcp.dll differ diff --git a/Output/x86/gstreamer/libgsttheora.dll b/Output/x86/gstreamer/libgsttheora.dll index 8e28b65a..afbe8529 100644 Binary files a/Output/x86/gstreamer/libgsttheora.dll and b/Output/x86/gstreamer/libgsttheora.dll differ diff --git a/Output/x86/gstreamer/libgsttypefindfunctions.dll b/Output/x86/gstreamer/libgsttypefindfunctions.dll index ca68a9bc..7f2fb7f3 100644 Binary files a/Output/x86/gstreamer/libgsttypefindfunctions.dll and b/Output/x86/gstreamer/libgsttypefindfunctions.dll differ diff --git a/Output/x86/gstreamer/libgstudp.dll b/Output/x86/gstreamer/libgstudp.dll index 9a8d9715..7c7bbdd3 100644 Binary files a/Output/x86/gstreamer/libgstudp.dll and b/Output/x86/gstreamer/libgstudp.dll differ diff --git a/Output/x86/gstreamer/libgstvideo-1.0-0.dll b/Output/x86/gstreamer/libgstvideo-1.0-0.dll index fea95abb..228d3eeb 100644 Binary files a/Output/x86/gstreamer/libgstvideo-1.0-0.dll and b/Output/x86/gstreamer/libgstvideo-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libgstvideobox.dll b/Output/x86/gstreamer/libgstvideobox.dll index ad2fa566..39f5c89f 100644 Binary files a/Output/x86/gstreamer/libgstvideobox.dll and b/Output/x86/gstreamer/libgstvideobox.dll differ diff --git a/Output/x86/gstreamer/libgstvideoconvert.dll b/Output/x86/gstreamer/libgstvideoconvert.dll index a8555e26..99d55036 100644 Binary files a/Output/x86/gstreamer/libgstvideoconvert.dll and b/Output/x86/gstreamer/libgstvideoconvert.dll differ diff --git a/Output/x86/gstreamer/libgstvideocrop.dll b/Output/x86/gstreamer/libgstvideocrop.dll index 4f9f8df6..ee9f6651 100644 Binary files a/Output/x86/gstreamer/libgstvideocrop.dll and b/Output/x86/gstreamer/libgstvideocrop.dll differ diff --git a/Output/x86/gstreamer/libgstvideofilter.dll b/Output/x86/gstreamer/libgstvideofilter.dll index f9b0759b..fa924756 100644 Binary files a/Output/x86/gstreamer/libgstvideofilter.dll and b/Output/x86/gstreamer/libgstvideofilter.dll differ diff --git a/Output/x86/gstreamer/libgstvideomixer.dll b/Output/x86/gstreamer/libgstvideomixer.dll index 25ee1900..8e740fbc 100644 Binary files a/Output/x86/gstreamer/libgstvideomixer.dll and b/Output/x86/gstreamer/libgstvideomixer.dll differ diff --git a/Output/x86/gstreamer/libgstvideoparsersbad.dll b/Output/x86/gstreamer/libgstvideoparsersbad.dll index 580925ff..85bb03ac 100644 Binary files a/Output/x86/gstreamer/libgstvideoparsersbad.dll and b/Output/x86/gstreamer/libgstvideoparsersbad.dll differ diff --git a/Output/x86/gstreamer/libgstvideorate.dll b/Output/x86/gstreamer/libgstvideorate.dll index cfa464ec..86fc11cf 100644 Binary files a/Output/x86/gstreamer/libgstvideorate.dll and b/Output/x86/gstreamer/libgstvideorate.dll differ diff --git a/Output/x86/gstreamer/libgstvideoscale.dll b/Output/x86/gstreamer/libgstvideoscale.dll index 19fed78f..6300992d 100644 Binary files a/Output/x86/gstreamer/libgstvideoscale.dll and b/Output/x86/gstreamer/libgstvideoscale.dll differ diff --git a/Output/x86/gstreamer/libgstvideotestsrc.dll b/Output/x86/gstreamer/libgstvideotestsrc.dll index 64c6b1b3..48ba83ad 100644 Binary files a/Output/x86/gstreamer/libgstvideotestsrc.dll and b/Output/x86/gstreamer/libgstvideotestsrc.dll differ diff --git a/Output/x86/gstreamer/libgstvolume.dll b/Output/x86/gstreamer/libgstvolume.dll index 86cc45c7..ada5b9e1 100644 Binary files a/Output/x86/gstreamer/libgstvolume.dll and b/Output/x86/gstreamer/libgstvolume.dll differ diff --git a/Output/x86/gstreamer/libgstvorbis.dll b/Output/x86/gstreamer/libgstvorbis.dll index 3c2e95de..aeb22ae4 100644 Binary files a/Output/x86/gstreamer/libgstvorbis.dll and b/Output/x86/gstreamer/libgstvorbis.dll differ diff --git a/Output/x86/gstreamer/libgstvpx.dll b/Output/x86/gstreamer/libgstvpx.dll index 55033d05..9c86f27a 100644 Binary files a/Output/x86/gstreamer/libgstvpx.dll and b/Output/x86/gstreamer/libgstvpx.dll differ diff --git a/Output/x86/gstreamer/libgstwaveformsink.dll b/Output/x86/gstreamer/libgstwaveformsink.dll deleted file mode 100644 index cb439dd6..00000000 Binary files a/Output/x86/gstreamer/libgstwaveformsink.dll and /dev/null differ diff --git a/Output/x86/gstreamer/libgstwavenc.dll b/Output/x86/gstreamer/libgstwavenc.dll index 0e5c3c41..87422b13 100644 Binary files a/Output/x86/gstreamer/libgstwavenc.dll and b/Output/x86/gstreamer/libgstwavenc.dll differ diff --git a/Output/x86/gstreamer/libgstwavpack.dll b/Output/x86/gstreamer/libgstwavpack.dll index e15413e2..08b7f0f9 100644 Binary files a/Output/x86/gstreamer/libgstwavpack.dll and b/Output/x86/gstreamer/libgstwavpack.dll differ diff --git a/Output/x86/gstreamer/libgstwavparse.dll b/Output/x86/gstreamer/libgstwavparse.dll index 16757786..6e364532 100644 Binary files a/Output/x86/gstreamer/libgstwavparse.dll and b/Output/x86/gstreamer/libgstwavparse.dll differ diff --git a/Output/x86/gstreamer/libgstx264.dll b/Output/x86/gstreamer/libgstx264.dll new file mode 100644 index 00000000..5dd3fd5c Binary files /dev/null and b/Output/x86/gstreamer/libgstx264.dll differ diff --git a/Output/x86/gstreamer/libgstxingmux.dll b/Output/x86/gstreamer/libgstxingmux.dll index cc7314e2..fc09d237 100644 Binary files a/Output/x86/gstreamer/libgstxingmux.dll and b/Output/x86/gstreamer/libgstxingmux.dll differ diff --git a/Output/x86/gstreamer/libgsty4mdec.dll b/Output/x86/gstreamer/libgsty4mdec.dll index 4ed519e5..d839532b 100644 Binary files a/Output/x86/gstreamer/libgsty4mdec.dll and b/Output/x86/gstreamer/libgsty4mdec.dll differ diff --git a/Output/x86/gstreamer/libgsty4menc.dll b/Output/x86/gstreamer/libgsty4menc.dll index 384a0949..129f2f37 100644 Binary files a/Output/x86/gstreamer/libgsty4menc.dll and b/Output/x86/gstreamer/libgsty4menc.dll differ diff --git a/Output/x86/gstreamer/libgthread-2.0-0.dll b/Output/x86/gstreamer/libgthread-2.0-0.dll index a17bc5c6..5c8e03e8 100644 Binary files a/Output/x86/gstreamer/libgthread-2.0-0.dll and b/Output/x86/gstreamer/libgthread-2.0-0.dll differ diff --git a/Output/x86/gstreamer/libhogweed-2-2.dll b/Output/x86/gstreamer/libhogweed-2-2.dll index 3cccacde..04cec47f 100644 Binary files a/Output/x86/gstreamer/libhogweed-2-2.dll and b/Output/x86/gstreamer/libhogweed-2-2.dll differ diff --git a/Output/x86/gstreamer/libiconv-2.dll b/Output/x86/gstreamer/libiconv-2.dll index cb363ae5..98b3e824 100644 Binary files a/Output/x86/gstreamer/libiconv-2.dll and b/Output/x86/gstreamer/libiconv-2.dll differ diff --git a/Output/x86/gstreamer/libintl-8.dll b/Output/x86/gstreamer/libintl-8.dll index 10332191..76b00225 100644 Binary files a/Output/x86/gstreamer/libintl-8.dll and b/Output/x86/gstreamer/libintl-8.dll differ diff --git a/Output/x86/gstreamer/libjasper-1.dll b/Output/x86/gstreamer/libjasper-1.dll deleted file mode 100644 index 57edb779..00000000 Binary files a/Output/x86/gstreamer/libjasper-1.dll and /dev/null differ diff --git a/Output/x86/gstreamer/libjpeg-8.dll b/Output/x86/gstreamer/libjpeg-8.dll index 4d04b230..e4f52bad 100644 Binary files a/Output/x86/gstreamer/libjpeg-8.dll and b/Output/x86/gstreamer/libjpeg-8.dll differ diff --git a/Output/x86/gstreamer/libkate-1.dll b/Output/x86/gstreamer/libkate-1.dll index f639c2d5..e6bc08bf 100644 Binary files a/Output/x86/gstreamer/libkate-1.dll and b/Output/x86/gstreamer/libkate-1.dll differ diff --git a/Output/x86/gstreamer/libmms-0.dll b/Output/x86/gstreamer/libmms-0.dll index 8943fd8a..495397cc 100644 Binary files a/Output/x86/gstreamer/libmms-0.dll and b/Output/x86/gstreamer/libmms-0.dll differ diff --git a/Output/x86/gstreamer/libmpeg2-0.dll b/Output/x86/gstreamer/libmpeg2-0.dll index 09fb018f..03d4d18d 100644 Binary files a/Output/x86/gstreamer/libmpeg2-0.dll and b/Output/x86/gstreamer/libmpeg2-0.dll differ diff --git a/Output/x86/gstreamer/libmpeg2convert-0.dll b/Output/x86/gstreamer/libmpeg2convert-0.dll index 1b040750..68ffc517 100644 Binary files a/Output/x86/gstreamer/libmpeg2convert-0.dll and b/Output/x86/gstreamer/libmpeg2convert-0.dll differ diff --git a/Output/x86/gstreamer/libnettle-4-4.dll b/Output/x86/gstreamer/libnettle-4-4.dll index 8524bff6..5eb48dae 100644 Binary files a/Output/x86/gstreamer/libnettle-4-4.dll and b/Output/x86/gstreamer/libnettle-4-4.dll differ diff --git a/Output/x86/gstreamer/libogg-0.dll b/Output/x86/gstreamer/libogg-0.dll index 43a7a89f..e0053c58 100644 Binary files a/Output/x86/gstreamer/libogg-0.dll and b/Output/x86/gstreamer/libogg-0.dll differ diff --git a/Output/x86/gstreamer/liboggkate-1.dll b/Output/x86/gstreamer/liboggkate-1.dll index 3caf5922..3ffe1994 100644 Binary files a/Output/x86/gstreamer/liboggkate-1.dll and b/Output/x86/gstreamer/liboggkate-1.dll differ diff --git a/Output/x86/gstreamer/libopencore-amrnb-0.dll b/Output/x86/gstreamer/libopencore-amrnb-0.dll index b9ab1561..1eef9151 100644 Binary files a/Output/x86/gstreamer/libopencore-amrnb-0.dll and b/Output/x86/gstreamer/libopencore-amrnb-0.dll differ diff --git a/Output/x86/gstreamer/libopencore-amrwb-0.dll b/Output/x86/gstreamer/libopencore-amrwb-0.dll index 840ad1b5..09f6d1c2 100644 Binary files a/Output/x86/gstreamer/libopencore-amrwb-0.dll and b/Output/x86/gstreamer/libopencore-amrwb-0.dll differ diff --git a/Output/x86/gstreamer/libopus-0.dll b/Output/x86/gstreamer/libopus-0.dll index 8a151912..4c37357f 100644 Binary files a/Output/x86/gstreamer/libopus-0.dll and b/Output/x86/gstreamer/libopus-0.dll differ diff --git a/Output/x86/gstreamer/liborc-0.4-0.dll b/Output/x86/gstreamer/liborc-0.4-0.dll index f48dde2f..c8b97949 100644 Binary files a/Output/x86/gstreamer/liborc-0.4-0.dll and b/Output/x86/gstreamer/liborc-0.4-0.dll differ diff --git a/Output/x86/gstreamer/liborc-test-0.4-0.dll b/Output/x86/gstreamer/liborc-test-0.4-0.dll index e226485f..0d830d91 100644 Binary files a/Output/x86/gstreamer/liborc-test-0.4-0.dll and b/Output/x86/gstreamer/liborc-test-0.4-0.dll differ diff --git a/Output/x86/gstreamer/libpango-1.0-0.dll b/Output/x86/gstreamer/libpango-1.0-0.dll index bdde5e90..3bc7dbd2 100644 Binary files a/Output/x86/gstreamer/libpango-1.0-0.dll and b/Output/x86/gstreamer/libpango-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libpangocairo-1.0-0.dll b/Output/x86/gstreamer/libpangocairo-1.0-0.dll index 340fb8b9..a230677a 100644 Binary files a/Output/x86/gstreamer/libpangocairo-1.0-0.dll and b/Output/x86/gstreamer/libpangocairo-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libpangoft2-1.0-0.dll b/Output/x86/gstreamer/libpangoft2-1.0-0.dll index 7ff78998..972fc2b3 100644 Binary files a/Output/x86/gstreamer/libpangoft2-1.0-0.dll and b/Output/x86/gstreamer/libpangoft2-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libpangowin32-1.0-0.dll b/Output/x86/gstreamer/libpangowin32-1.0-0.dll index ef44eedc..a8ca6052 100644 Binary files a/Output/x86/gstreamer/libpangowin32-1.0-0.dll and b/Output/x86/gstreamer/libpangowin32-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libpixman-1-0.dll b/Output/x86/gstreamer/libpixman-1-0.dll index a3264b27..8b0e7510 100644 Binary files a/Output/x86/gstreamer/libpixman-1-0.dll and b/Output/x86/gstreamer/libpixman-1-0.dll differ diff --git a/Output/x86/gstreamer/libpng15-15.dll b/Output/x86/gstreamer/libpng15-15.dll index 692e1cb6..25b86025 100644 Binary files a/Output/x86/gstreamer/libpng15-15.dll and b/Output/x86/gstreamer/libpng15-15.dll differ diff --git a/Output/x86/gstreamer/libschroedinger-1.0-0.dll b/Output/x86/gstreamer/libschroedinger-1.0-0.dll index b90aaf6e..5b550844 100644 Binary files a/Output/x86/gstreamer/libschroedinger-1.0-0.dll and b/Output/x86/gstreamer/libschroedinger-1.0-0.dll differ diff --git a/Output/x86/gstreamer/libsoup-2.4-1.dll b/Output/x86/gstreamer/libsoup-2.4-1.dll index 5f2b87f1..3f9d3f5b 100644 Binary files a/Output/x86/gstreamer/libsoup-2.4-1.dll and b/Output/x86/gstreamer/libsoup-2.4-1.dll differ diff --git a/Output/x86/gstreamer/libspeex-1.dll b/Output/x86/gstreamer/libspeex-1.dll index 1bbbaef8..e20e3aeb 100644 Binary files a/Output/x86/gstreamer/libspeex-1.dll and b/Output/x86/gstreamer/libspeex-1.dll differ diff --git a/Output/x86/gstreamer/libspeexdsp-1.dll b/Output/x86/gstreamer/libspeexdsp-1.dll index 3198ce5e..b8c4c07f 100644 Binary files a/Output/x86/gstreamer/libspeexdsp-1.dll and b/Output/x86/gstreamer/libspeexdsp-1.dll differ diff --git a/Output/x86/gstreamer/libstdc++-6.dll b/Output/x86/gstreamer/libstdc++-6.dll index 73958a43..dcd41a9d 100644 Binary files a/Output/x86/gstreamer/libstdc++-6.dll and b/Output/x86/gstreamer/libstdc++-6.dll differ diff --git a/Output/x86/gstreamer/libtag.dll b/Output/x86/gstreamer/libtag.dll index 72128dda..302fb280 100644 Binary files a/Output/x86/gstreamer/libtag.dll and b/Output/x86/gstreamer/libtag.dll differ diff --git a/Output/x86/gstreamer/libtag_c.dll b/Output/x86/gstreamer/libtag_c.dll index 1643687f..f9b18a5a 100644 Binary files a/Output/x86/gstreamer/libtag_c.dll and b/Output/x86/gstreamer/libtag_c.dll differ diff --git a/Output/x86/gstreamer/libtasn1-3.dll b/Output/x86/gstreamer/libtasn1-3.dll index a7cd1de5..3efd4c60 100644 Binary files a/Output/x86/gstreamer/libtasn1-3.dll and b/Output/x86/gstreamer/libtasn1-3.dll differ diff --git a/Output/x86/gstreamer/libtheora-0.dll b/Output/x86/gstreamer/libtheora-0.dll index 8d9402ba..97ef40c8 100644 Binary files a/Output/x86/gstreamer/libtheora-0.dll and b/Output/x86/gstreamer/libtheora-0.dll differ diff --git a/Output/x86/gstreamer/libtheoradec-1.dll b/Output/x86/gstreamer/libtheoradec-1.dll index a30d2c74..7136909b 100644 Binary files a/Output/x86/gstreamer/libtheoradec-1.dll and b/Output/x86/gstreamer/libtheoradec-1.dll differ diff --git a/Output/x86/gstreamer/libtheoraenc-1.dll b/Output/x86/gstreamer/libtheoraenc-1.dll index 39e52496..38a7187a 100644 Binary files a/Output/x86/gstreamer/libtheoraenc-1.dll and b/Output/x86/gstreamer/libtheoraenc-1.dll differ diff --git a/Output/x86/gstreamer/libtiff-5.dll b/Output/x86/gstreamer/libtiff-5.dll index fd0d2e0e..4f64c71c 100644 Binary files a/Output/x86/gstreamer/libtiff-5.dll and b/Output/x86/gstreamer/libtiff-5.dll differ diff --git a/Output/x86/gstreamer/libvisual-0.4-0.dll b/Output/x86/gstreamer/libvisual-0.4-0.dll index e9e4c58b..e25b19f2 100644 Binary files a/Output/x86/gstreamer/libvisual-0.4-0.dll and b/Output/x86/gstreamer/libvisual-0.4-0.dll differ diff --git a/Output/x86/gstreamer/libvorbis-0.dll b/Output/x86/gstreamer/libvorbis-0.dll index ae7da204..dc0bed93 100644 Binary files a/Output/x86/gstreamer/libvorbis-0.dll and b/Output/x86/gstreamer/libvorbis-0.dll differ diff --git a/Output/x86/gstreamer/libvorbisenc-2.dll b/Output/x86/gstreamer/libvorbisenc-2.dll index 02755ede..695beb90 100644 Binary files a/Output/x86/gstreamer/libvorbisenc-2.dll and b/Output/x86/gstreamer/libvorbisenc-2.dll differ diff --git a/Output/x86/gstreamer/libvorbisfile-3.dll b/Output/x86/gstreamer/libvorbisfile-3.dll index ec59a400..eae3fda5 100644 Binary files a/Output/x86/gstreamer/libvorbisfile-3.dll and b/Output/x86/gstreamer/libvorbisfile-3.dll differ diff --git a/Output/x86/gstreamer/libwavpack-1.dll b/Output/x86/gstreamer/libwavpack-1.dll index 4cc147b1..7f5ece56 100644 Binary files a/Output/x86/gstreamer/libwavpack-1.dll and b/Output/x86/gstreamer/libwavpack-1.dll differ diff --git a/Output/x86/gstreamer/libwinpthread-1.dll b/Output/x86/gstreamer/libwinpthread-1.dll new file mode 100644 index 00000000..e27a40c6 Binary files /dev/null and b/Output/x86/gstreamer/libwinpthread-1.dll differ diff --git a/Output/x86/gstreamer/libx264-125.dll b/Output/x86/gstreamer/libx264-125.dll new file mode 100644 index 00000000..caf83228 Binary files /dev/null and b/Output/x86/gstreamer/libx264-125.dll differ diff --git a/Output/x86/gstreamer/libxml2-2.dll b/Output/x86/gstreamer/libxml2-2.dll index ca1d0ec2..70e68238 100644 Binary files a/Output/x86/gstreamer/libxml2-2.dll and b/Output/x86/gstreamer/libxml2-2.dll differ diff --git a/Output/x86/gstreamer/libz.dll b/Output/x86/gstreamer/libz.dll index 3298ad60..49dd02aa 100644 Binary files a/Output/x86/gstreamer/libz.dll and b/Output/x86/gstreamer/libz.dll differ diff --git a/Output/x86/gstreamer/log.txt b/Output/x86/gstreamer/log.txt deleted file mode 100644 index f0cfa4a2..00000000 --- a/Output/x86/gstreamer/log.txt +++ /dev/null @@ -1,929 +0,0 @@ -y4menc: y4menc: YUV4MPEG video encoder -y4mdec: y4mdec: YUV4MPEG demuxer/decoder -xingmux: xingmux: MP3 Xing muxer -wavparse: wavparse: WAV audio demuxer -wavpack: wavpackdec: Wavpack audio decoder -wavpack: wavpackenc: Wavpack audio encoder -wavenc: wavenc: WAV audio muxer -waveform: waveformsink: WaveForm Audio Sink -vorbis: vorbisenc: Vorbis audio encoder -vorbis: vorbisdec: Vorbis audio decoder -vorbis: vorbisparse: VorbisParse -vorbis: vorbistag: VorbisTag -volume: volume: Volume -videotestsrc: videotestsrc: Video test source -videoscale: videoscale: Video scaler -videorate: videorate: Video rate adjuster -videoparsersbad: h263parse: H.263 parser -videoparsersbad: h264parse: H.264 parser -videoparsersbad: diracparse: Dirac parser -videoparsersbad: mpegvideoparse: MPEG video elementary stream parser -videoparsersbad: mpeg4videoparse: MPEG 4 video elementary stream parser -videomixer: videomixer: Video mixer 2 -videofilter: gamma: Video gamma correction -videofilter: videobalance: Video balance -videofilter: videoflip: Video flipper -videofilter: videomedian: Median effect -videocrop: videocrop: Crop -videocrop: aspectratiocrop: aspectratiocrop -videoconvert: videoconvert: Colorspace converter -videobox: videobox: Video box filter -udp: udpsink: UDP packet sender -udp: multiudpsink: UDP packet sender -udp: dynudpsink: UDP packet sender -udp: udpsrc: UDP packet receiver -typefindfunctions: video/x-ms-asf: asf, wm, wma, wmv -typefindfunctions: audio/x-musepack: mpc, mpp, mp+ -typefindfunctions: audio/x-au: au, snd -typefindfunctions: video/x-msvideo: avi -typefindfunctions: audio/qcelp: qcp -typefindfunctions: video/x-cdxa: dat -typefindfunctions: video/x-vcd: dat -typefindfunctions: audio/x-imelody: imy, ime, imelody -typefindfunctions: audio/midi: mid, midi -typefindfunctions: audio/riff-midi: mid, midi -typefindfunctions: audio/mobile-xmf: mxmf -typefindfunctions: video/x-fli: flc, fli -typefindfunctions: application/x-id3v2: mp3, mp2, mp1, mpga, ogg, flac, tta -typefindfunctions: application/x-id3v1: mp3, mp2, mp1, mpga, ogg, flac, tta -typefindfunctions: application/x-apetag: mp3, ape, mpc, wv -typefindfunctions: audio/x-ttafile: tta -typefindfunctions: audio/x-mod: 669, amf, dsm, gdm, far, imf, it, med, mod, mtm, okt, sam, s3m, stm, stx, ult, xm -typefindfunctions: audio/mpeg: mp3, mp2, mp1, mpga -typefindfunctions: audio/x-ac3: ac3, eac3 -typefindfunctions: audio/x-dts: dts -typefindfunctions: audio/x-gsm: gsm -typefindfunctions: video/mpeg-sys: mpe, mpeg, mpg -typefindfunctions: video/mpegts: ts, mts -typefindfunctions: application/ogg: ogg, oga, ogv, ogm, ogx, spx, anx, axa, axv -typefindfunctions: video/mpeg-elementary: mpv, mpeg, mpg -typefindfunctions: video/mpeg4: m4v -typefindfunctions: video/x-h263: h263, 263 -typefindfunctions: video/x-h264: h264, x264, 264 -typefindfunctions: video/x-nuv: nuv -typefindfunctions: audio/x-m4a: m4a -typefindfunctions: application/x-3gp: 3gp -typefindfunctions: video/quicktime: mov -typefindfunctions: image/x-quicktime: qif, qtif, qti -typefindfunctions: image/jp2: jp2 -typefindfunctions: video/mj2: mj2 -typefindfunctions: text/html: htm, html -typefindfunctions: application/vnd.rn-realmedia: ra, ram, rm, rmvb -typefindfunctions: application/x-pn-realaudio: ra, ram, rm, rmvb -typefindfunctions: application/x-shockwave-flash: swf, swfl -typefindfunctions: video/x-flv: flv -typefindfunctions: text/plain: txt -typefindfunctions: text/utf-16: txt -typefindfunctions: text/utf-32: txt -typefindfunctions: text/uri-list: ram -typefindfunctions: application/x-hls: m3u8 -typefindfunctions: application/sdp: sdp -typefindfunctions: application/smil: smil -typefindfunctions: application/xml: xml -typefindfunctions: audio/x-wav: wav -typefindfunctions: audio/x-aiff: aiff, aif, aifc -typefindfunctions: audio/x-svx: iff, svx -typefindfunctions: audio/x-paris: paf -typefindfunctions: audio/x-nist: nist -typefindfunctions: audio/x-voc: voc -typefindfunctions: audio/x-sds: sds -typefindfunctions: audio/x-ircam: sf -typefindfunctions: audio/x-w64: w64 -typefindfunctions: audio/x-shorten: shn -typefindfunctions: application/x-ape: ape -typefindfunctions: image/jpeg: jpg, jpe, jpeg -typefindfunctions: image/gif: gif -typefindfunctions: image/png: png -typefindfunctions: image/bmp: bmp -typefindfunctions: image/tiff: tif, tiff -typefindfunctions: image/x-portable-pixmap: pnm, ppm, pgm, pbm -typefindfunctions: video/x-matroska: mkv, mka, mk3d, webm -typefindfunctions: application/mxf: mxf -typefindfunctions: video/x-mve: mve -typefindfunctions: video/x-dv: dv, dif -typefindfunctions: audio/x-amr-nb-sh: amr -typefindfunctions: audio/x-amr-wb-sh: amr -typefindfunctions: audio/iLBC-sh: ilbc -typefindfunctions: audio/x-sid: sid -typefindfunctions: image/x-xcf: xcf -typefindfunctions: video/x-mng: mng -typefindfunctions: image/x-jng: jng -typefindfunctions: image/x-xpixmap: xpm -typefindfunctions: image/x-sun-raster: ras -typefindfunctions: application/x-bzip: bz2 -typefindfunctions: application/x-gzip: gz -typefindfunctions: application/zip: zip -typefindfunctions: application/x-compress: Z -typefindfunctions: subtitle/x-kate: no extensions -typefindfunctions: audio/x-flac: flac -typefindfunctions: audio/x-vorbis: no extensions -typefindfunctions: video/x-theora: no extensions -typefindfunctions: application/x-ogm-video: no extensions -typefindfunctions: application/x-ogm-audio: no extensions -typefindfunctions: application/x-ogm-text: no extensions -typefindfunctions: audio/x-speex: no extensions -typefindfunctions: audio/x-celt: no extensions -typefindfunctions: application/x-ogg-skeleton: no extensions -typefindfunctions: text/x-cmml: no extensions -typefindfunctions: application/x-executable: no extensions -typefindfunctions: audio/aac: aac, adts, adif, loas -typefindfunctions: audio/x-spc: spc -typefindfunctions: audio/x-wavpack: wv, wvp -typefindfunctions: audio/x-wavpack-correction: wvc -typefindfunctions: application/postscript: ps -typefindfunctions: image/svg+xml: svg -typefindfunctions: application/x-rar: rar -typefindfunctions: application/x-tar: tar -typefindfunctions: application/x-ar: a -typefindfunctions: application/x-ms-dos-executable: dll, exe, ocx, sys, scr, msstyles, cpl -typefindfunctions: video/x-dirac: no extensions -typefindfunctions: multipart/x-mixed-replace: no extensions -typefindfunctions: application/x-mmsh: no extensions -typefindfunctions: video/vivo: viv -typefindfunctions: audio/x-nsf: nsf -typefindfunctions: audio/x-gym: gym -typefindfunctions: audio/x-ay: ay -typefindfunctions: audio/x-gbs: gbs -typefindfunctions: audio/x-vgm: vgm -typefindfunctions: audio/x-sap: sap -typefindfunctions: video/x-ivf: ivf -typefindfunctions: audio/x-kss: kss -typefindfunctions: application/pdf: pdf -typefindfunctions: application/msword: doc -typefindfunctions: image/vnd.adobe.photoshop: psd -typefindfunctions: image/vnd.wap.wbmp: no extensions -typefindfunctions: application/x-yuv4mpeg: y4m -typefindfunctions: image/x-icon: no extensions -typefindfunctions: image/x-degas: no extensions -typefindfunctions: application/octet-stream: no extensions -theora: theoradec: Theora video decoder -theora: theoraenc: Theora video encoder -theora: theoraparse: Theora video parser -tcp: tcpclientsink: TCP client sink -tcp: tcpclientsrc: TCP client source -tcp: tcpserversink: TCP server sink -tcp: tcpserversrc: TCP server source -tcp: multisocketsink: Multi socket sink -taglib: id3v2mux: TagLib-based ID3v2 Muxer -taglib: apev2mux: TagLib-based APEv2 Muxer -subparse: subparse_typefind: srt, sub, mpsub, mdvd, smi, txt, dks -subparse: subparse: Subtitle parser -subparse: ssaparse: SSA Subtitle Parser -subenc: srtenc: Srt encoder -subenc: webvttenc: WebVTT encoder -speex: speexenc: Speex audio encoder -speex: speexdec: Speex audio decoder -speed: speed: Speed -spectrum: spectrum: Spectrum analyzer -soup: souphttpsrc: HTTP client source -soup: souphttpclientsink: HTTP client sink -smpte: smpte: SMPTE transitions -smpte: smptealpha: SMPTE transitions -smooth: smooth: Smooth effect -gstsiren: sirendec: Siren Decoder element -gstsiren: sirenenc: Siren Encoder element -shapewipe: shapewipe: Shape Wipe transition filter -segmentclip: audiosegmentclip: Audio buffer segment clipper -segmentclip: videosegmentclip: Video buffer segment clipper -sdp: sdpdemux: SDP session setup -schro: schrodec: Dirac Decoder -schro: schroenc: Dirac Encoder -scaletempo: scaletempo: Scaletempo -rtsp: rtspsrc: RTSP packet receiver -rtsp: rtpdec: RTP Decoder -rtpvp8: rtpvp8depay: RTP VP8 depayloader -rtpvp8: rtpvp8pay: RTP VP8 payloader -rtpmux: rtpmux: RTP muxer -rtpmux: rtpdtmfmux: RTP muxer -rtpmanager: rtpbin: RTP Bin -rtpmanager: rtpjitterbuffer: RTP packet jitter-buffer -rtpmanager: rtpptdemux: RTP Demux -rtpmanager: rtpsession: RTP Session -rtpmanager: rtpssrcdemux: RTP SSRC Demux -rtp: rtpac3depay: RTP AC3 depayloader -rtp: rtpac3pay: RTP AC3 audio payloader -rtp: rtpbvdepay: RTP BroadcomVoice depayloader -rtp: rtpbvpay: RTP BV Payloader -rtp: rtpceltdepay: RTP CELT depayloader -rtp: rtpceltpay: RTP CELT payloader -rtp: rtpdvdepay: RTP DV Depayloader -rtp: rtpdvpay: RTP DV Payloader -rtp: rtpgstdepay: GStreamer depayloader -rtp: rtpgstpay: RTP GStreamer payloader -rtp: rtpilbcpay: RTP iLBC Payloader -rtp: rtpilbcdepay: RTP iLBC depayloader -rtp: rtpg722depay: RTP audio depayloader -rtp: rtpg722pay: RTP audio payloader -rtp: rtpg723depay: RTP G.723 depayloader -rtp: rtpg723pay: RTP G.723 payloader -rtp: rtpg726depay: RTP G.726 depayloader -rtp: rtpg726pay: RTP G.726 payloader -rtp: rtpg729depay: RTP G.729 depayloader -rtp: rtpg729pay: RTP G.729 payloader -rtp: rtpgsmdepay: RTP GSM depayloader -rtp: rtpgsmpay: RTP GSM payloader -rtp: rtpamrdepay: RTP AMR depayloader -rtp: rtpamrpay: RTP AMR payloader -rtp: rtppcmadepay: RTP PCMA depayloader -rtp: rtppcmudepay: RTP PCMU depayloader -rtp: rtppcmupay: RTP PCMU payloader -rtp: rtppcmapay: RTP PCMA payloader -rtp: rtpmpadepay: RTP MPEG audio depayloader -rtp: rtpmpapay: RTP MPEG audio payloader -rtp: rtpmparobustdepay: RTP MPEG audio depayloader -rtp: rtpmpvdepay: RTP MPEG video depayloader -rtp: rtpmpvpay: RTP MPEG2 ES video payloader -rtp: rtph263ppay: RTP H263 payloader -rtp: rtph263pdepay: RTP H263 depayloader -rtp: rtph263depay: RTP H263 depayloader -rtp: rtph263pay: RTP H263 packet payloader -rtp: rtph264depay: RTP H264 depayloader -rtp: rtph264pay: RTP H264 payloader -rtp: rtpj2kdepay: RTP JPEG 2000 depayloader -rtp: rtpj2kpay: RTP JPEG 2000 payloader -rtp: rtpjpegdepay: RTP JPEG depayloader -rtp: rtpjpegpay: RTP JPEG payloader -rtp: rtpL16pay: RTP audio payloader -rtp: rtpL16depay: RTP audio depayloader -rtp: asteriskh263: RTP Asterisk H263 depayloader -rtp: rtpmp1sdepay: RTP MPEG1 System Stream depayloader -rtp: rtpmp2tdepay: RTP MPEG Transport Stream depayloader -rtp: rtpmp2tpay: RTP MPEG2 Transport Stream payloader -rtp: rtpmp4vpay: RTP MPEG4 Video payloader -rtp: rtpmp4vdepay: RTP MPEG4 video depayloader -rtp: rtpmp4apay: RTP MPEG4 audio payloader -rtp: rtpmp4adepay: RTP MPEG4 audio depayloader -rtp: rtpmp4gdepay: RTP MPEG4 ES depayloader -rtp: rtpmp4gpay: RTP MPEG4 ES payloader -rtp: rtpqcelpdepay: RTP QCELP depayloader -rtp: rtpqdm2depay: RTP QDM2 depayloader -rtp: rtpsirenpay: RTP Payloader for Siren Audio -rtp: rtpsirendepay: RTP Siren packet depayloader -rtp: rtpspeexpay: RTP Speex payloader -rtp: rtpspeexdepay: RTP Speex depayloader -rtp: rtpsv3vdepay: RTP SVQ3 depayloader -rtp: rtptheoradepay: RTP Theora depayloader -rtp: rtptheorapay: RTP Theora payloader -rtp: rtpvorbisdepay: RTP Vorbis depayloader -rtp: rtpvorbispay: RTP Vorbis depayloader -rtp: rtpvrawdepay: RTP Raw Video depayloader -rtp: rtpvrawpay: RTP Raw Video payloader -realmedia: rmdemux: RealMedia Demuxer -realmedia: rademux: RealAudio Demuxer -realmedia: rdtdepay: RDT packet parser -realmedia: rdtmanager: RTP Decoder -realmedia: rtspreal: RealMedia RTSP Extension -realmedia: pnmsrc: PNM packet receiver -resindvd: rsndvdbin: rsndvdbin -replaygain: rganalysis: ReplayGain analysis -replaygain: rglimiter: ReplayGain limiter -replaygain: rgvolume: ReplayGain volume -removesilence: removesilence: RemoveSilence -rawparse: videoparse: Video Parse -rawparse: audioparse: Audio Parse -pnm: pnmdec: PNM image decoder -pnm: pnmenc: PNM image encoder -png: pngdec: PNG image decoder -png: pngenc: PNG image encoder -playback: playbin: Player Bin 2 -playback: playsink: Player Sink -playback: subtitleoverlay: Subtitle Overlay -playback: decodebin: Decoder Bin -playback: uridecodebin: URI Decoder -pcapparse: pcapparse: PCapParse -pcapparse: irtspparse: IRTSPParse -pango: textoverlay: Text overlay -pango: timeoverlay: Time overlay -pango: clockoverlay: Clock overlay -pango: textrender: Text renderer -opus: opusenc: Opus audio encoder -opus: opusdec: Opus audio decoder -opus: opusparse: Opus audio parser -opus: rtpopusdepay: RTP Opus packet depayloader -opus: rtpopuspay: RTP Opus payloader -ogg: oggdemux: Ogg demuxer -ogg: oggmux: Ogg muxer -ogg: ogmaudioparse: OGM audio stream parser -ogg: ogmvideoparse: OGM video stream parser -ogg: ogmtextparse: OGM text stream parser -ogg: oggparse: Ogg parser -ogg: oggaviparse: Ogg AVI parser -navigationtest: navigationtest: Video navigation test -multipart: multipartdemux: Multipart demuxer -multipart: multipartmux: Multipart muxer -multifile: multifilesrc: Multi-File Source -multifile: multifilesink: Multi-File Sink -multifile: splitfilesrc: Split-File Source -mulaw: mulawenc: Mu Law audio encoder -mulaw: mulawdec: Mu Law audio decoder -mpegtsmux: mpegtsmux: MPEG Transport Stream Muxer -mpegtsdemux: tsparse: MPEG transport stream parser -mpegtsdemux: tsdemux: MPEG transport stream demuxer -mpegpsmux: mpegpsmux: MPEG Program Stream Muxer -mpegpsdemux: mpegpsdemux: The Fluendo MPEG Program Stream Demuxer -mpeg2dec: mpeg2dec: mpeg1 and mpeg2 video decoder -mms: mmssrc: MMS streaming source -matroska: matroskademux: Matroska demuxer -matroska: matroskaparse: Matroska parser -matroska: matroskamux: Matroska muxer -matroska: webmmux: WebM muxer -mad: mad: mad mp3 decoder -liveadder: liveadder: Live Adder element -libav: avenc_aac: libav Advanced Audio Coding encoder -libav: avenc_ac3: libav ATSC A/52A (AC-3) encoder -libav: avenc_ac3_fixed: libav ATSC A/52A (AC-3) encoder -libav: avenc_alac: libav ALAC (Apple Lossless Audio Codec) encoder -libav: avenc_eac3: libav ATSC A/52 E-AC-3 encoder -libav: avenc_mp2: libav MP2 (MPEG audio layer 2) encoder -libav: avenc_nellymoser: libav Nellymoser Asao encoder -libav: avenc_real_144: libav RealAudio 1.0 (14.4K) encoder encoder -libav: avenc_wmav1: libav Windows Media Audio 1 encoder -libav: avenc_wmav2: libav Windows Media Audio 2 encoder -libav: avenc_roq_dpcm: libav id RoQ DPCM encoder -libav: avenc_adpcm_adx: libav SEGA CRI ADX ADPCM encoder -libav: avenc_g722: libav G.722 ADPCM encoder -libav: avenc_g726: libav G.726 ADPCM encoder -libav: avenc_adpcm_ima_qt: libav ADPCM IMA QuickTime encoder -libav: avenc_adpcm_ima_wav: libav ADPCM IMA WAV encoder -libav: avenc_adpcm_ms: libav ADPCM Microsoft encoder -libav: avenc_adpcm_swf: libav ADPCM Shockwave Flash encoder -libav: avenc_adpcm_yamaha: libav ADPCM Yamaha encoder -libav: avenc_a64multi: libav Multicolor charset for Commodore 64 encoder -libav: avenc_a64multi5: libav Multicolor charset for Commodore 64, extended with 5th color (colram) encoder -libav: avenc_asv1: libav ASUS V1 encoder -libav: avenc_asv2: libav ASUS V2 encoder -libav: avenc_bmp: libav BMP image encoder -libav: avenc_cljr: libav Cirrus Logic AccuPak encoder -libav: avenc_dnxhd: libav VC3/DNxHD encoder -libav: avenc_dpx: libav DPX image encoder -libav: avenc_dvvideo: libav DV (Digital Video) encoder -libav: avenc_ffv1: libav FFmpeg video codec #1 encoder -libav: avenc_ffvhuff: libav Huffyuv FFmpeg variant encoder -libav: avenc_flashsv: libav Flash Screen Video encoder -libav: avenc_flv: libav Flash Video (FLV) / Sorenson Spark / Sorenson H.263 encoder -libav: avenc_h261: libav H.261 encoder -libav: avenc_h263: libav H.263 / H.263-1996 encoder -libav: avenc_h263p: libav H.263+ / H.263-1998 / H.263 version 2 encoder -libav: avenc_huffyuv: libav Huffyuv / HuffYUV encoder -libav: avenc_jpegls: libav JPEG-LS encoder -libav: avenc_ljpeg: libav Lossless JPEG encoder -libav: avenc_mjpeg: libav MJPEG (Motion JPEG) encoder -libav: avenc_mpeg1video: libav MPEG-1 video encoder -libav: avenc_mpeg2video: libav MPEG-2 video encoder -libav: avenc_mpeg4: libav MPEG-4 part 2 encoder -libav: avenc_msmpeg4v2: libav MPEG-4 part 2 Microsoft variant version 2 encoder -libav: avenc_msmpeg4: libav MPEG-4 part 2 Microsoft variant version 3 encoder -libav: avenc_pam: libav PAM (Portable AnyMap) image encoder -libav: avenc_pbm: libav PBM (Portable BitMap) image encoder -libav: avenc_pcx: libav PC Paintbrush PCX image encoder -libav: avenc_pgm: libav PGM (Portable GrayMap) image encoder -libav: avenc_pgmyuv: libav PGMYUV (Portable GrayMap YUV) image encoder -libav: avenc_png: libav PNG image encoder -libav: avenc_ppm: libav PPM (Portable PixelMap) image encoder -libav: avenc_qtrle: libav QuickTime Animation (RLE) video encoder -libav: avenc_roqvideo: libav id RoQ video encoder -libav: avenc_rv10: libav RealVideo 1.0 encoder -libav: avenc_rv20: libav RealVideo 2.0 encoder -libav: avenc_sgi: libav SGI image encoder -libav: avenc_snow: libav Snow encoder -libav: avenc_svq1: libav Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1 encoder -libav: avenc_targa: libav Truevision Targa image encoder -libav: avenc_tiff: libav TIFF image encoder -libav: avenc_v410: libav Uncompressed 4:4:4 10-bit encoder -libav: avenc_wmv1: libav Windows Media Video 7 encoder -libav: avenc_wmv2: libav Windows Media Video 8 encoder -libav: avenc_zmbv: libav Zip Motion Blocks Video encoder -libav: avdec_8svx_exp: libav 8SVX exponential decoder -libav: avdec_8svx_fib: libav 8SVX fibonacci decoder -libav: avdec_s302m: libav SMPTE 302M decoder -libav: avdec_aac: libav Advanced Audio Coding decoder -libav: avdec_aac_latm: libav AAC LATM (Advanced Audio Codec LATM syntax) decoder -libav: avdec_ac3: libav ATSC A/52A (AC-3) decoder -libav: avdec_alac: libav ALAC (Apple Lossless Audio Codec) decoder -libav: avdec_als: libav MPEG-4 Audio Lossless Coding (ALS) decoder -libav: avdec_amrnb: libav Adaptive Multi-Rate NarrowBand decoder -libav: avdec_amrwb: libav Adaptive Multi-Rate WideBand decoder -libav: avdec_ape: libav Monkey's Audio decoder -libav: avdec_atrac1: libav Atrac 1 (Adaptive TRansform Acoustic Coding) decoder -libav: avdec_atrac3: libav Atrac 3 (Adaptive TRansform Acoustic Coding 3) decoder -libav: avdec_binkaudio_dct: libav Bink Audio (DCT) decoder -libav: avdec_binkaudio_rdft: libav Bink Audio (RDFT) decoder -libav: avdec_bmv_audio: libav Discworld II BMV audio decoder -libav: avdec_cook: libav COOK decoder -libav: avdec_dca: libav DCA (DTS Coherent Acoustics) decoder -libav: avdec_dsicinaudio: libav Delphine Software International CIN audio decoder -libav: avdec_eac3: libav ATSC A/52B (AC-3, E-AC-3) decoder -libav: avdec_flac: libav FLAC (Free Lossless Audio Codec) decoder -libav: avdec_gsm: libav GSM decoder -libav: avdec_gsm_ms: libav GSM Microsoft variant decoder -libav: avdec_imc: libav IMC (Intel Music Coder) decoder -libav: avdec_mace3: libav MACE (Macintosh Audio Compression/Expansion) 3:1 decoder -libav: avdec_mace6: libav MACE (Macintosh Audio Compression/Expansion) 6:1 decoder -libav: avdec_mlp: libav MLP (Meridian Lossless Packing) decoder -libav: avdec_mp1float: libav MP1 (MPEG audio layer 1) decoder -libav: avdec_mp2float: libav MP2 (MPEG audio layer 2) decoder -libav: avdec_mp3: libav MP3 (MPEG audio layer 3) decoder -libav: avdec_mp3float: libav MP3 (MPEG audio layer 3) decoder -libav: avdec_mp3adu: libav ADU (Application Data Unit) MP3 (MPEG audio layer 3) decoder -libav: avdec_mp3adufloat: libav ADU (Application Data Unit) MP3 (MPEG audio layer 3) decoder -libav: avdec_mp3on4: libav MP3onMP4 decoder -libav: avdec_mp3on4float: libav MP3onMP4 decoder -libav: avdec_mpc7: libav Musepack SV7 decoder -libav: avdec_mpc8: libav Musepack SV8 decoder -libav: avdec_nellymoser: libav Nellymoser Asao decoder -libav: avdec_qcelp: libav QCELP / PureVoice decoder -libav: avdec_qdm2: libav QDesign Music Codec 2 decoder -libav: avdec_real_144: libav RealAudio 1.0 (14.4K) decoder -libav: avdec_real_288: libav RealAudio 2.0 (28.8K) decoder -libav: avdec_shorten: libav Shorten decoder -libav: avdec_sipr: libav RealAudio SIPR / ACELP.NET decoder -libav: avdec_smackaud: libav Smacker audio decoder -libav: avdec_truehd: libav TrueHD decoder -libav: avdec_truespeech: libav DSP Group TrueSpeech decoder -libav: avdec_tta: libav True Audio (TTA) decoder -libav: avdec_twinvq: libav VQF TwinVQ decoder -libav: avdec_vmdaudio: libav Sierra VMD audio decoder -libav: avdec_wmapro: libav Windows Media Audio 9 Professional decoder -libav: avdec_wmav1: libav Windows Media Audio 1 decoder -libav: avdec_wmav2: libav Windows Media Audio 2 decoder -libav: avdec_wmavoice: libav Windows Media Audio Voice decoder -libav: avdec_ws_snd1: libav Westwood Audio (SND1) decoder -libav: avdec_pcm_lxf: libav PCM signed 20-bit little-endian planar decoder -libav: avdec_pcm_s8_planar: libav PCM signed 8-bit planar decoder -libav: avdec_interplay_dpcm: libav DPCM Interplay decoder -libav: avdec_roq_dpcm: libav DPCM id RoQ decoder -libav: avdec_sol_dpcm: libav DPCM Sol decoder -libav: avdec_xan_dpcm: libav DPCM Xan decoder -libav: avdec_adpcm_4xm: libav ADPCM 4X Movie decoder -libav: avdec_adpcm_adx: libav SEGA CRI ADX ADPCM decoder -libav: avdec_adpcm_ct: libav ADPCM Creative Technology decoder -libav: avdec_adpcm_ea: libav ADPCM Electronic Arts decoder -libav: avdec_adpcm_ea_maxis_xa: libav ADPCM Electronic Arts Maxis CDROM XA decoder -libav: avdec_adpcm_ea_r1: libav ADPCM Electronic Arts R1 decoder -libav: avdec_adpcm_ea_r2: libav ADPCM Electronic Arts R2 decoder -libav: avdec_adpcm_ea_r3: libav ADPCM Electronic Arts R3 decoder -libav: avdec_adpcm_ea_xas: libav ADPCM Electronic Arts XAS decoder -libav: avdec_g722: libav G.722 ADPCM decoder -libav: avdec_g726: libav G.726 ADPCM decoder -libav: avdec_adpcm_ima_amv: libav ADPCM IMA AMV decoder -libav: avdec_adpcm_ima_dk3: libav ADPCM IMA Duck DK3 decoder -libav: avdec_adpcm_ima_dk4: libav ADPCM IMA Duck DK4 decoder -libav: avdec_adpcm_ima_ea_eacs: libav ADPCM IMA Electronic Arts EACS decoder -libav: avdec_adpcm_ima_ea_sead: libav ADPCM IMA Electronic Arts SEAD decoder -libav: avdec_adpcm_ima_iss: libav ADPCM IMA Funcom ISS decoder -libav: avdec_adpcm_ima_qt: libav ADPCM IMA QuickTime decoder -libav: avdec_adpcm_ima_smjpeg: libav ADPCM IMA Loki SDL MJPEG decoder -libav: avdec_adpcm_ima_wav: libav ADPCM IMA WAV decoder -libav: avdec_adpcm_ima_ws: libav ADPCM IMA Westwood decoder -libav: avdec_adpcm_ms: libav ADPCM Microsoft decoder -libav: avdec_adpcm_sbpro_2: libav ADPCM Sound Blaster Pro 2-bit decoder -libav: avdec_adpcm_sbpro_3: libav ADPCM Sound Blaster Pro 2.6-bit decoder -libav: avdec_adpcm_sbpro_4: libav ADPCM Sound Blaster Pro 4-bit decoder -libav: avdec_adpcm_swf: libav ADPCM Shockwave Flash decoder -libav: avdec_adpcm_thp: libav ADPCM Nintendo Gamecube THP decoder -libav: avdec_adpcm_xa: libav ADPCM CDROM XA decoder -libav: avdec_adpcm_yamaha: libav ADPCM Yamaha decoder -libav: avdec_aasc: libav Autodesk RLE decoder -libav: avdec_amv: libav AMV Video decoder -libav: avdec_anm: libav Deluxe Paint Animation decoder -libav: avdec_ansi: libav ASCII/ANSI art decoder -libav: avdec_asv1: libav ASUS V1 decoder -libav: avdec_asv2: libav ASUS V2 decoder -libav: avdec_aura: libav Auravision AURA decoder -libav: avdec_aura2: libav Auravision Aura 2 decoder -libav: avdec_avs: libav AVS (Audio Video Standard) video decoder -libav: avdec_bethsoftvid: libav Bethesda VID video decoder -libav: avdec_bfi: libav Brute Force & Ignorance decoder -libav: avdec_binkvideo: libav Bink video decoder -libav: avdec_bmp: libav BMP image decoder -libav: avdec_bmv_video: libav Discworld II BMV video decoder -libav: avdec_c93: libav Interplay C93 decoder -libav: avdec_cdgraphics: libav CD Graphics video decoder -libav: avdec_cinepak: libav Cinepak decoder -libav: avdec_cljr: libav Cirrus Logic AccuPak decoder -libav: avdec_camstudio: libav CamStudio decoder -libav: avdec_cyuv: libav Creative YUV (CYUV) decoder -libav: avdec_dfa: libav Chronomaster DFA decoder -libav: avdec_dnxhd: libav VC3/DNxHD decoder -libav: avdec_dpx: libav DPX image decoder -libav: avdec_dsicinvideo: libav Delphine Software International CIN video decoder -libav: avdec_dvvideo: libav DV (Digital Video) decoder -libav: avdec_dxa: libav Feeble Files/ScummVM DXA decoder -libav: avdec_dxtory: libav Dxtory decoder -libav: avdec_eacmv: libav Electronic Arts CMV video decoder -libav: avdec_eamad: libav Electronic Arts Madcow Video decoder -libav: avdec_eatgq: libav Electronic Arts TGQ video decoder -libav: avdec_eatgv: libav Electronic Arts TGV video decoder -libav: avdec_eatqi: libav Electronic Arts TQI Video decoder -libav: avdec_8bps: libav QuickTime 8BPS video decoder -libav: avdec_escape124: libav Escape 124 decoder -libav: avdec_ffv1: libav FFmpeg video codec #1 decoder -libav: avdec_ffvhuff: libav Huffyuv FFmpeg variant decoder -libav: avdec_flashsv: libav Flash Screen Video v1 decoder -libav: avdec_flashsv2: libav Flash Screen Video v2 decoder -libav: avdec_flic: libav Autodesk Animator Flic video decoder -libav: avdec_flv: libav Flash Video (FLV) / Sorenson Spark / Sorenson H.263 decoder -libav: avdec_4xm: libav 4X Movie decoder -libav: avdec_fraps: libav Fraps decoder -libav: avdec_FRWU: libav Forward Uncompressed decoder -libav: avdec_h261: libav H.261 decoder -libav: avdec_h263: libav H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2 decoder -libav: avdec_h263i: libav Intel H.263 decoder -libav: avdec_h264: libav H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 decoder -libav: avdec_huffyuv: libav Huffyuv / HuffYUV decoder -libav: avdec_idcinvideo: libav id Quake II CIN video decoder -libav: avdec_iff_byterun1: libav IFF ByteRun1 decoder -libav: avdec_iff_ilbm: libav IFF ILBM decoder -libav: avdec_indeo2: libav Intel Indeo 2 decoder -libav: avdec_indeo3: libav Intel Indeo 3 decoder -libav: avdec_indeo4: libav Intel Indeo Video Interactive 4 decoder -libav: avdec_indeo5: libav Intel Indeo Video Interactive 5 decoder -libav: avdec_interplayvideo: libav Interplay MVE video decoder -libav: avdec_jpegls: libav JPEG-LS decoder -libav: avdec_jv: libav Bitmap Brothers JV video decoder -libav: avdec_kgv1: libav Kega Game Video decoder -libav: avdec_kmvc: libav Karl Morton's video codec decoder -libav: avdec_lagarith: libav Lagarith lossless decoder -libav: avdec_loco: libav LOCO decoder -libav: avdec_mdec: libav Sony PlayStation MDEC (Motion DECoder) decoder -libav: avdec_mimic: libav Mimic decoder -libav: avdec_mjpeg: libav MJPEG (Motion JPEG) decoder -libav: avdec_mjpegb: libav Apple MJPEG-B decoder -libav: avdec_mmvideo: libav American Laser Games MM Video decoder -libav: avdec_motionpixels: libav Motion Pixels video decoder -libav: avdec_mpeg2video: libav MPEG-2 video decoder -libav: avdec_mpeg4: libav MPEG-4 part 2 decoder -libav: avdec_msmpeg4v1: libav MPEG-4 part 2 Microsoft variant version 1 decoder -libav: avdec_msmpeg4v2: libav MPEG-4 part 2 Microsoft variant version 2 decoder -libav: avdec_msmpeg4: libav MPEG-4 part 2 Microsoft variant version 3 decoder -libav: avdec_msrle: libav Microsoft RLE decoder -libav: avdec_msvideo1: libav Microsoft Video 1 decoder -libav: avdec_mszh: libav LCL (LossLess Codec Library) MSZH decoder -libav: avdec_mxpeg: libav Mobotix MxPEG video decoder -libav: avdec_nuv: libav NuppelVideo/RTJPEG decoder -libav: avdec_pam: libav PAM (Portable AnyMap) image decoder -libav: avdec_pbm: libav PBM (Portable BitMap) image decoder -libav: avdec_pcx: libav PC Paintbrush PCX image decoder -libav: avdec_pgm: libav PGM (Portable GrayMap) image decoder -libav: avdec_pgmyuv: libav PGMYUV (Portable GrayMap YUV) image decoder -libav: avdec_pictor: libav Pictor/PC Paint decoder -libav: avdec_png: libav PNG image decoder -libav: avdec_ppm: libav PPM (Portable PixelMap) image decoder -libav: avdec_prores: libav Apple ProRes (iCodec Pro) decoder -libav: avdec_ptx: libav V.Flash PTX image decoder -libav: avdec_qdraw: libav Apple QuickDraw decoder -libav: avdec_qpeg: libav Q-team QPEG decoder -libav: avdec_qtrle: libav QuickTime Animation (RLE) video decoder -libav: avdec_r10k: libav AJA Kona 10-bit RGB Codec decoder -libav: avdec_rl2: libav RL2 video decoder -libav: avdec_roqvideo: libav id RoQ video decoder -libav: avdec_rpza: libav QuickTime video (RPZA) decoder -libav: avdec_rv10: libav RealVideo 1.0 decoder -libav: avdec_rv20: libav RealVideo 2.0 decoder -libav: avdec_rv30: libav RealVideo 3.0 decoder -libav: avdec_rv40: libav RealVideo 4.0 decoder -libav: avdec_sgi: libav SGI image decoder -libav: avdec_smackvid: libav Smacker video decoder -libav: avdec_smc: libav QuickTime Graphics (SMC) decoder -libav: avdec_snow: libav Snow decoder -libav: avdec_sp5x: libav Sunplus JPEG (SP5X) decoder -libav: avdec_sunrast: libav Sun Rasterfile image decoder -libav: avdec_svq1: libav Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1 decoder -libav: avdec_svq3: libav Sorenson Vector Quantizer 3 / Sorenson Video 3 / SVQ3 decoder -libav: avdec_targa: libav Truevision Targa image decoder -libav: avdec_thp: libav Nintendo Gamecube THP video decoder -libav: avdec_tiertexseqvideo: libav Tiertex Limited SEQ video decoder -libav: avdec_tiff: libav TIFF image decoder -libav: avdec_tmv: libav 8088flex TMV decoder -libav: avdec_truemotion1: libav Duck TrueMotion 1.0 decoder -libav: avdec_truemotion2: libav Duck TrueMotion 2.0 decoder -libav: avdec_camtasia: libav TechSmith Screen Capture Codec decoder -libav: avdec_txd: libav Renderware TXD (TeXture Dictionary) image decoder -libav: avdec_ultimotion: libav IBM UltiMotion decoder -libav: avdec_utvideo: libav Ut Video decoder -libav: avdec_v410: libav Uncompressed 4:4:4 10-bit decoder -libav: avdec_vb: libav Beam Software VB decoder -libav: avdec_vble: libav VBLE Lossless Codec decoder -libav: avdec_vc1: libav SMPTE VC-1 decoder -libav: avdec_vc1image: libav Windows Media Video 9 Image v2 decoder -libav: avdec_vcr1: libav ATI VCR1 decoder -libav: avdec_vmdvideo: libav Sierra VMD video decoder -libav: avdec_vmnc: libav VMware Screen Codec / VMware Video decoder -libav: avdec_vp3: libav On2 VP3 decoder -libav: avdec_vp5: libav On2 VP5 decoder -libav: avdec_vp6: libav On2 VP6 decoder -libav: avdec_vp6a: libav On2 VP6 (Flash version, with alpha channel) decoder -libav: avdec_vp6f: libav On2 VP6 (Flash version) decoder -libav: avdec_vp8: libav On2 VP8 decoder -libav: avdec_vqavideo: libav Westwood Studios VQA (Vector Quantized Animation) video decoder -libav: avdec_wmv1: libav Windows Media Video 7 decoder -libav: avdec_wmv2: libav Windows Media Video 8 decoder -libav: avdec_wmv3: libav Windows Media Video 9 decoder -libav: avdec_wmv3image: libav Windows Media Video 9 Image decoder -libav: avdec_wnv1: libav Winnov WNV1 decoder -libav: avdec_xan_wc3: libav Wing Commander III / Xan decoder -libav: avdec_xan_wc4: libav Wing Commander IV / Xxan decoder -libav: avdec_xl: libav Miro VideoXL decoder -libav: avdec_yop: libav Psygnosis YOP Video decoder -libav: avdec_zlib: libav LCL (LossLess Codec Library) ZLIB decoder -libav: avdec_zmbv: libav Zip Motion Blocks Video decoder -libav: avdemux_aiff: libav Audio IFF demuxer -libav: avdemux_ape: libav Monkey's Audio demuxer -libav: avdemux_avs: libav AVS format demuxer -libav: avtype_avs: no extensions -libav: avdemux_daud: libav D-Cinema audio format demuxer -libav: avtype_daud: 302 -libav: avdemux_ea: libav Electronic Arts Multimedia Format demuxer -libav: avtype_ea: no extensions -libav: avdemux_ffm: libav FFM (AVserver live feed) format demuxer -libav: avtype_ffm: no extensions -libav: avdemux_4xm: libav 4X Technologies format demuxer -libav: avtype_4xm: no extensions -libav: avdemux_gxf: libav GXF format demuxer -libav: avtype_gxf: no extensions -libav: avdemux_idcin: libav id Cinematic format demuxer -libav: avtype_idcin: no extensions -libav: avdemux_ipmovie: libav Interplay MVE format demuxer -libav: avtype_ipmovie: no extensions -libav: avdemux_mm: libav American Laser Games MM format demuxer -libav: avtype_mm: no extensions -libav: avdemux_mmf: libav Yamaha SMAF demuxer -libav: avtype_mmf: no extensions -libav: avdemux_mpc: libav Musepack demuxer -libav: avdemux_mxf: libav Material eXchange Format demuxer -libav: avdemux_nsv: libav Nullsoft Streaming Video demuxer -libav: avtype_nsv: no extensions -libav: avdemux_nut: libav NUT format demuxer -libav: avtype_nut: nut -libav: avdemux_nuv: libav NuppelVideo format demuxer -libav: avdemux_RoQ: libav id RoQ format demuxer -libav: avtype_RoQ: no extensions -libav: avdemux_film_cpk: libav Sega FILM/CPK format demuxer -libav: avtype_film_cpk: no extensions -libav: avdemux_smk: libav Smacker video demuxer -libav: avtype_smk: no extensions -libav: avdemux_sol: libav Sierra SOL format demuxer -libav: avtype_sol: no extensions -libav: avdemux_psxstr: libav Sony Playstation STR format demuxer -libav: avtype_psxstr: no extensions -libav: avdemux_tta: libav True Audio demuxer -libav: avdemux_vmd: libav Sierra VMD format demuxer -libav: avtype_vmd: no extensions -libav: avdemux_voc: libav Creative Voice file format demuxer -libav: avdemux_wc3movie: libav Wing Commander III movie format demuxer -libav: avtype_wc3movie: no extensions -libav: avdemux_wsaud: libav Westwood Studios audio format demuxer -libav: avtype_wsaud: no extensions -libav: avdemux_wsvqa: libav Westwood Studios VQA format demuxer -libav: avtype_wsvqa: no extensions -libav: avdemux_yuv4mpegpipe: libav YUV4MPEG pipe format demuxer -libav: avtype_yuv4mpegpipe: y4m -libav: avmux_a64: libav a64 - video for Commodore 64 muxer -libav: avmux_adts: libav ADTS AAC muxer (not recommended, use aacparse instead) -libav: avmux_adx: libav CRI ADX muxer -libav: avmux_aiff: libav Audio IFF muxer (not recommended, use aiffmux instead) -libav: avmux_amr: libav 3GPP AMR file format muxer -libav: avmux_asf: libav ASF format muxer (not recommended, use asfmux instead) -libav: avmux_asf_stream: libav ASF format muxer (not recommended, use asfmux instead) -libav: avmux_au: libav SUN AU format muxer -libav: avmux_avi: libav AVI format muxer (not recommended, use avimux instead) -libav: avmux_avm2: libav Flash 9 (AVM2) format muxer -libav: avmux_daud: libav D-Cinema audio format muxer -libav: avmux_dv: libav DV video format muxer -libav: avmux_ffm: libav FFM (AVserver live feed) format muxer -libav: avmux_filmstrip: libav Adobe Filmstrip muxer -libav: avmux_flv: libav FLV format muxer (not recommended, use flvmux instead) -libav: avmux_gxf: libav GXF format muxer -libav: avmux_ipod: libav iPod H.264 MP4 format muxer -libav: avmux_ivf: libav On2 IVF muxer -libav: avmux_latm: libav LOAS/LATM muxer -libav: avmux_md5: libav MD5 testing format muxer -libav: avmux_matroska: libav Matroska file format muxer (not recommended, use matroskamux instead) -libav: avmux_mmf: libav Yamaha SMAF muxer -libav: avmux_mov: libav MOV format muxer (not recommended, use qtmux instead) -libav: avmux_mp2: libav MPEG audio layer 2 formatter (not recommended, use id3v2mux instead) -libav: avmux_mp3: libav MPEG audio layer 3 formatter (not recommended, use id3v2mux instead) -libav: avmux_mp4: libav MP4 format muxer (not recommended, use mp4mux instead) -libav: avmux_mpeg: libav MPEG-1 System format muxer -libav: avmux_vcd: libav MPEG-1 System format (VCD) muxer -libav: avmux_dvd: libav MPEG-2 PS format (DVD VOB) muxer -libav: avmux_svcd: libav MPEG-2 PS format (VOB) muxer -libav: avmux_vob: libav MPEG-2 PS format (VOB) muxer -libav: avmux_mpegts: libav MPEG-2 transport stream format muxer (not recommended, use mpegtsmux instead) -libav: avmux_mpjpeg: libav MIME multipart JPEG format muxer (not recommended, use multipartmux instead) -libav: avmux_mxf: libav Material eXchange Format muxer (not recommended, use mxfmux instead) -libav: avmux_mxf_d10: libav Material eXchange Format, D-10 Mapping muxer -libav: avmux_nut: libav NUT format muxer -libav: avmux_ogg: libav Ogg muxer (not recommended, use oggmux instead) -libav: avmux_oma: libav Sony OpenMG audio muxer -libav: avmux_psp: libav PSP MP4 format muxer -libav: avmux_rm: libav RealMedia format muxer -libav: avmux_rso: libav Lego Mindstorms RSO format muxer -libav: avmux_smjpeg: libav Loki SDL MJPEG muxer -libav: avmux_sox: libav SoX native format muxer -libav: avmux_spdif: libav IEC 61937 (used on S/PDIF - IEC958) muxer -libav: avmux_swf: libav Flash format muxer -libav: avmux_3g2: libav 3GP2 format muxer -libav: avmux_3gp: libav 3GP format muxer (not recommended, use gppmux instead) -libav: avmux_rcv: libav VC-1 test bitstream muxer -libav: avmux_voc: libav Creative Voice file format muxer -libav: avmux_wav: libav WAV format muxer (not recommended, use wavenc instead) -libav: avmux_webm: libav WebM file format muxer (not recommended, use webmmux instead) -libav: avmux_yuv4mpegpipe: libav YUV4MPEG pipe format muxer (not recommended, use y4menc instead) -libav: avdeinterlace: libav Deinterlace element -level: level: Level -jpegformat: jpegparse: JPEG stream parser -jpegformat: jifmux: JPEG stream muxer -jpeg: jpegenc: JPEG image encoder -jpeg: jpegdec: JPEG image decoder -isomp4: qtdemux: QuickTime demuxer -isomp4: rtpxqtdepay: RTP packet depayloader -isomp4: qtmux: QuickTime Muxer -isomp4: mp4mux: MP4 Muxer -isomp4: ismlmux: ISML Muxer -isomp4: 3gppmux: 3GPP Muxer -isomp4: mj2mux: MJ2 Muxer -isomp4: qtmoovrecover: QT Moov Recover -interleave: interleave: Audio interleaver -interleave: deinterleave: Audio deinterleaver -interlace: interlace: Interlace filter -imagefreeze: imagefreeze: Still frame stream generator -id3tag: id3mux: ID3 v1 and v2 Muxer -id3demux: id3demux: ID3 tag demuxer -icydemux: icydemux: ICY tag demuxer -goom2k1: goom2k1: GOOM: what a GOOM! 2k1 edition -goom: goom: GOOM: what a GOOM! -gio: giosink: GIO sink -gio: giosrc: GIO source -gio: giostreamsink: GIO stream sink -gio: giostreamsrc: GIO stream source -geometrictransform: circle: circle -geometrictransform: diffuse: diffuse -geometrictransform: kaleidoscope: kaleidoscope -geometrictransform: marble: marble -geometrictransform: pinch: pinch -geometrictransform: rotate: rotate -geometrictransform: sphere: sphere -geometrictransform: twirl: twirl -geometrictransform: waterripple: waterripple -geometrictransform: stretch: stretch -geometrictransform: bulge: bulge -geometrictransform: tunnel: tunnel -geometrictransform: square: square -geometrictransform: mirror: mirror -geometrictransform: fisheye: fisheye -gdp: gdpdepay: GDP Depayloader -gdp: gdppay: GDP Payloader -gdkpixbuf: gdkpixbufdec: GdkPixbuf image decoder -gdkpixbuf: gdkpixbufoverlay: GdkPixbuf Overlay -gdkpixbuf: gdkpixbufsink: GdkPixbuf sink -gaudieffects: burn: Burn -gaudieffects: chromium: Chromium -gaudieffects: dilate: Dilate -gaudieffects: dodge: Dodge -gaudieffects: exclusion: Exclusion -gaudieffects: solarize: Solarize -gaudieffects: gaussianblur: GstGaussianBlur -fragmented: hlsdemux: HLS Demuxer -flxdec: flxdec: FLX video decoder -flv: flvdemux: FLV Demuxer -flv: flvmux: FLV muxer -flac: flacenc: FLAC audio encoder -flac: flacdec: FLAC audio decoder -flac: flactag: FLAC tagger -fieldanalysis: fieldanalysis: Video field analysis -faad: faad: AAC audio decoder -equalizer: equalizer-nbands: N Band Equalizer -equalizer: equalizer-3bands: 3 Band Equalizer -equalizer: equalizer-10bands: 10 Band Equalizer -encoding: encodebin: Encoder Bin -effectv: edgetv: EdgeTV effect -effectv: agingtv: AgingTV effect -effectv: dicetv: DiceTV effect -effectv: warptv: WarpTV effect -effectv: shagadelictv: ShagadelicTV -effectv: vertigotv: VertigoTV effect -effectv: revtv: RevTV effect -effectv: quarktv: QuarkTV effect -effectv: optv: OpTV effect -effectv: radioactv: RadioacTV effect -effectv: streaktv: StreakTV effect -effectv: rippletv: RippleTV effect -dvdsub: dvdsubdec: DVD subtitle decoder -dvdsub: dvdsubparse: DVD subtitle parser -dvdspu: dvdspu: Sub-picture Overlay -dvdread: dvdreadsrc: DVD Source -dvdlpcmdec: dvdlpcmdec: DVD LPCM Audio decoder -dvbsuboverlay: dvbsuboverlay: DVB Subtitles Overlay -dv: dvdemux: DV system stream demuxer -dv: dvdec: DV video decoder -dtsdec: dtsdec: DTS audio decoder -dtmf: dtmfdetect: DTMF detector element -dtmf: dtmfsrc: DTMF tone generator -dtmf: rtpdtmfsrc: RTP DTMF packet generator -dtmf: rtpdtmfdepay: RTP DTMF packet depayloader -directsoundsrc: directsoundsrc: DirectSound audio source -directsound: directsoundsink: Direct Sound Audio Sink -deinterlace: deinterlace: Deinterlacer -debugutilsbad: checksumsink: Checksum sink -debugutilsbad: fpsdisplaysink: Measure and show framerate on videosink -debugutilsbad: chopmydata: FIXME -debugutilsbad: compare: Compare buffers -debugutilsbad: debugspy: DebugSpy -debug: breakmydata: Break my data -debug: capssetter: CapsSetter -debug: rndbuffersize: Random buffer size -debug: navseek: Seek based on left-right arrows -debug: pushfilesrc: Push File Source -debug: progressreport: Progress report -debug: taginject: TagInject -debug: testsink: Test plugin -debug: cpureport: CPU report -dataurisrc: dataurisrc: data: URI source element -d3dsinkwrapper: d3dvideosink: Direct3D video sink -cutter: cutter: Audio cutter -coreelements: capsfilter: CapsFilter -coreelements: fakesrc: Fake Source -coreelements: fakesink: Fake Sink -coreelements: filesrc: File Source -coreelements: funnel: Funnel pipe fitting -coreelements: identity: Identity -coreelements: input-selector: Input selector -coreelements: output-selector: Output selector -coreelements: queue: Queue -coreelements: queue2: Queue 2 -coreelements: filesink: File Sink -coreelements: tee: Tee pipe fitting -coreelements: typefind: TypeFind -coreelements: multiqueue: MultiQueue -coreelements: valve: Valve element -coloreffects: coloreffects: Color Look-up Table filter -coloreffects: chromahold: Chroma hold filter -camerabin: viewfinderbin: Viewfinder Bin -camerabin: wrappercamerabinsrc: Wrapper camera src element for camerabin2 -camerabin: camerabin: Camera Bin -bayer: bayer2rgb: Bayer to RGB decoder for cameras -bayer: rgb2bayer: RGB to Bayer converter -avvideoscale: avvideoscale: libav Scale element -avi: avidemux: Avi demuxer -avi: avimux: Avi muxer -avi: avisubtitle: Avi subtitle parser -autodetect: autovideosink: Auto video sink -autodetect: autovideosrc: Auto video source -autodetect: autoaudiosink: Auto audio sink -autodetect: autoaudiosrc: Auto audio source -autoconvert: autoconvert: Select convertor based on caps -autoconvert: autovideoconvert: Select color space convertor based on caps -auparse: auparse: AU audio demuxer -audiovisualizers: spacescope: Stereo visualizer -audiovisualizers: spectrascope: Frequency spectrum scope -audiovisualizers: synaescope: Synaescope -audiovisualizers: wavescope: Waveform oscilloscope -audiotestsrc: audiotestsrc: Audio test source -audioresample: audioresample: Audio resampler -audiorate: audiorate: Audio rate adjuster -audioparsers: aacparse: AAC audio stream parser -audioparsers: amrparse: AMR audio stream parser -audioparsers: ac3parse: AC3 audio stream parser -audioparsers: dcaparse: DTS Coherent Acoustics audio stream parser -audioparsers: flacparse: FLAC audio parser -audioparsers: mpegaudioparse: MPEG1 Audio Parser -audioparsers: wavpackparse: Wavpack audio stream parser -audiofx: audiopanorama: Stereo positioning -audiofx: audioinvert: Audio inversion -audiofx: audiokaraoke: AudioKaraoke -audiofx: audioamplify: Audio amplifier -audiofx: audiodynamic: Dynamic range controller -audiofx: audiocheblimit: Low pass & high pass filter -audiofx: audiochebband: Band pass & band reject filter -audiofx: audioiirfilter: Audio IIR filter -audiofx: audiowsinclimit: Low pass & high pass filter -audiofx: audiowsincband: Band pass & band reject filter -audiofx: audiofirfilter: Audio FIR filter -audiofx: audioecho: Audio echo -audioconvert: audioconvert: Audio converter -assrender: assrender: ASS/SSA Render -asfmux: asfmux: ASF muxer -asfmux: rtpasfpay: RTP ASF payloader -asfmux: asfparse: ASF parser -asf: asfdemux: ASF Demuxer -asf: rtspwms: WMS RTSP Extension -asf: rtpasfdepay: RTP ASF packet depayloader -app: appsrc: AppSrc -app: appsink: AppSink -apetag: apedemux: APE tag demuxer -amrwbdec: amrwbdec: AMR-WB audio decoder -amrnb: amrnbdec: AMR-NB audio decoder -amrnb: amrnbenc: AMR-NB audio encoder -alphacolor: alphacolor: Alpha color filter -alpha: alpha: Alpha filter -alaw: alawenc: A Law audio encoder -alaw: alawdec: A Law audio decoder -adpcmenc: adpcmenc: ADPCM encoder -adpcmdec: adpcmdec: ADPCM decoder -adder: adder: Adder -a52dec: a52dec: ATSC A/52 audio decoder -staticelements: bin: Generic bin -staticelements: pipeline: Pipeline object - -Total count: 144 plugins, 927 features diff --git a/Output/x86/gstreamer/pthreadGC2-w32.dll b/Output/x86/gstreamer/pthreadGC2-w32.dll deleted file mode 100644 index 8b5fca03..00000000 Binary files a/Output/x86/gstreamer/pthreadGC2-w32.dll and /dev/null differ diff --git a/Output/x86/hidapi.dll b/Output/x86/hidapi.dll index b24dfb33..7bdc8fe2 100644 Binary files a/Output/x86/hidapi.dll and b/Output/x86/hidapi.dll differ diff --git a/PartyModes/PartyModeChallenge/CChallengeRounds.cs b/PartyModes/PartyModeChallenge/CChallengeRounds.cs index ed122395..bb2d05cb 100644 --- a/PartyModes/PartyModeChallenge/CChallengeRounds.cs +++ b/PartyModes/PartyModeChallenge/CChallengeRounds.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/PartyModes/PartyModeChallenge/CPartyModeChallenge.cs b/PartyModes/PartyModeChallenge/CPartyModeChallenge.cs index 1c6fa0d8..46260c81 100644 --- a/PartyModes/PartyModeChallenge/CPartyModeChallenge.cs +++ b/PartyModes/PartyModeChallenge/CPartyModeChallenge.cs @@ -1,27 +1,24 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; using System.Collections.Generic; using System.Runtime.InteropServices; using VocaluxeLib.Menu; -using VocaluxeLib.Profile; [assembly: ComVisible(false)] @@ -65,7 +62,7 @@ namespace VocaluxeLib.PartyModes.Challenge public int CompareTo(object obj) { - CResultTableRow row = obj as CResultTableRow; + var row = obj as CResultTableRow; if (row != null) { int res = row.NumGamePoints.CompareTo(NumGamePoints); @@ -545,9 +542,7 @@ namespace VocaluxeLib.PartyModes.Challenge for (int i = 0; i < _GameData.NumPlayerAtOnce; i++) { if (c != null) - { _ScreenSongOptions.Selection.TeamNames[i] = CBase.Profiles.GetPlayerName(_GameData.ProfileIDs[c.Player[i]]); - } else _ScreenSongOptions.Selection.TeamNames[i] = "foobar"; } @@ -559,7 +554,7 @@ namespace VocaluxeLib.PartyModes.Challenge { for (int i = 0; i < _GameData.NumPlayer; i++) { - CResultTableRow row = new CResultTableRow {PlayerID = _GameData.ProfileIDs[i], NumPlayed = 0, NumWon = 0, NumSingPoints = 0, NumGamePoints = 0}; + var row = new CResultTableRow {PlayerID = _GameData.ProfileIDs[i], NumPlayed = 0, NumWon = 0, NumSingPoints = 0, NumGamePoints = 0}; _GameData.ResultTable.Add(row); } @@ -627,10 +622,10 @@ namespace VocaluxeLib.PartyModes.Challenge private List _GetPointsForPlayer(SPlayer[] results) { - List result = new List(); + var result = new List(); for (int i = 0; i < _GameData.NumPlayerAtOnce; i++) { - SStats stat = new SStats {ProfileID = results[i].ProfileID, SingPoints = (int)Math.Round(results[i].Points), Won = 0, GamePoints = 0}; + var stat = new SStats {ProfileID = results[i].ProfileID, SingPoints = (int)Math.Round(results[i].Points), Won = 0, GamePoints = 0}; result.Add(stat); } diff --git a/PartyModes/PartyModeChallenge/CPartyScreenChallengeConfig.cs b/PartyModes/PartyModeChallenge/CPartyScreenChallengeConfig.cs index 7e856321..229d68ba 100644 --- a/PartyModes/PartyModeChallenge/CPartyScreenChallengeConfig.cs +++ b/PartyModes/PartyModeChallenge/CPartyScreenChallengeConfig.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/PartyModes/PartyModeChallenge/CPartyScreenChallengeMain.cs b/PartyModes/PartyModeChallenge/CPartyScreenChallengeMain.cs index 60a8bd86..22945876 100644 --- a/PartyModes/PartyModeChallenge/CPartyScreenChallengeMain.cs +++ b/PartyModes/PartyModeChallenge/CPartyScreenChallengeMain.cs @@ -1,27 +1,24 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; using System.Collections.Generic; using System.Windows.Forms; using VocaluxeLib.Menu; -using VocaluxeLib.Profile; namespace VocaluxeLib.PartyModes.Challenge { @@ -143,7 +140,7 @@ namespace VocaluxeLib.PartyModes.Challenge { try { - SDataToScreenMain data = (SDataToScreenMain)receivedData; + var data = (SDataToScreenMain)receivedData; _GameState = data; } catch (Exception e) @@ -405,7 +402,7 @@ namespace VocaluxeLib.PartyModes.Challenge _RoundsTable = new List(); for (int i = 0; i < 5; i++) { - CRoundsTableRow rtr = new CRoundsTableRow {TextPlayer = new List(), TextScores = new List()}; + var rtr = new CRoundsTableRow {TextPlayer = new List(), TextScores = new List()}; _RoundsTable.Add(rtr); } //Create statics and texts for rounds @@ -457,7 +454,7 @@ namespace VocaluxeLib.PartyModes.Challenge //Round-number roundRow.Number.X = numberX; roundRow.Number.Y = numberY; - int numInnerRows = (int)Math.Ceiling(_GameState.NumPlayerAtOnce / ((double)numPlayerInOneRow)); + var numInnerRows = (int)Math.Ceiling(_GameState.NumPlayerAtOnce / ((double)numPlayerInOneRow)); for (int row = 0; row < numInnerRows; row++) { int num = (row + 1) * numPlayerInOneRow; @@ -541,7 +538,7 @@ namespace VocaluxeLib.PartyModes.Challenge for (int i = 0; i < 10; i++) { - STableRow row = new STableRow + var row = new STableRow { Pos = GetNewText(_Texts[_TextPosition]), Name = GetNewText(_Texts[_TextPlayerName]), diff --git a/PartyModes/PartyModeChallenge/CPartyScreenChallengeNames.cs b/PartyModes/PartyModeChallenge/CPartyScreenChallengeNames.cs index 289f7a6d..16b275de 100644 --- a/PartyModes/PartyModeChallenge/CPartyScreenChallengeNames.cs +++ b/PartyModes/PartyModeChallenge/CPartyScreenChallengeNames.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -22,6 +20,7 @@ using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using VocaluxeLib.Menu; +using VocaluxeLib.Profile; namespace VocaluxeLib.PartyModes.Challenge { @@ -88,7 +87,7 @@ namespace VocaluxeLib.PartyModes.Challenge _ThemeButtons = new string[] {_ButtonBack, _ButtonNext, _ButtonPlayerDestination, _ButtonPlayerChoose}; _Data = new SDataFromScreen(); - SFromScreenNames names = new SFromScreenNames {FadeBack = false, ProfileIDs = new List()}; + var names = new SFromScreenNames {FadeBack = false, ProfileIDs = new List()}; _Data.ScreenNames = names; } @@ -96,7 +95,7 @@ namespace VocaluxeLib.PartyModes.Challenge { try { - SDataToScreenNames config = (SDataToScreenNames)receivedData; + var config = (SDataToScreenNames)receivedData; _Data.ScreenNames.ProfileIDs = config.ProfileIDs ?? new List(); _NumPlayer = config.NumPlayer; @@ -247,7 +246,7 @@ namespace VocaluxeLib.PartyModes.Challenge CButton b = GetNewButton(_Buttons[_ButtonPlayerChoose]); b.Rect.X = _PlayerChooseButtonsFirstX + column * (b.Rect.W + _PlayerChooseButtonsSpaceH); b.Rect.Y = _PlayerChooseButtonsFirstY + row * (b.Rect.H + _PlayerChooseButtonsSpaceW); - CPlayerChooseButton pcb = new CPlayerChooseButton {Button = b, ProfileID = -1}; + var pcb = new CPlayerChooseButton {Button = b, ProfileID = -1}; _PlayerChooseButtons.Add(pcb); column++; if (column >= _PlayerChooseButtonsNumH) @@ -309,15 +308,15 @@ namespace VocaluxeLib.PartyModes.Challenge private void _UpdateVisibleProfiles() { _PlayerChooseButtonsVisibleProfiles.Clear(); - Profile.CProfile[] profiles = CBase.Profiles.GetProfiles(); - for (int i = 0; i < profiles.Length; i++) + CProfile[] profiles = CBase.Profiles.GetProfiles(); + foreach (CProfile profile in profiles) { bool visible = false; //Show profile only if active - if (profiles[i].Active == EOffOn.TR_CONFIG_ON) - visible = _Data.ScreenNames.ProfileIDs.All(profileID => profileID != profiles[i].ID); + if (profile.Active == EOffOn.TR_CONFIG_ON) + visible = _Data.ScreenNames.ProfileIDs.All(profileID => profileID != profile.ID); if (visible) - _PlayerChooseButtonsVisibleProfiles.Add(profiles[i].ID); + _PlayerChooseButtonsVisibleProfiles.Add(profile.ID); } } diff --git a/PartyModes/PartyModeChallenge/GlobalSuppressions.cs b/PartyModes/PartyModeChallenge/GlobalSuppressions.cs index a29227be..e661ff03 100644 Binary files a/PartyModes/PartyModeChallenge/GlobalSuppressions.cs and b/PartyModes/PartyModeChallenge/GlobalSuppressions.cs differ diff --git a/PartyModes/PartyModeChallenge/PartyModeChallenge.csproj b/PartyModes/PartyModeChallenge/PartyModeChallenge.csproj index 4623278b..e9ca8fc6 100644 --- a/PartyModes/PartyModeChallenge/PartyModeChallenge.csproj +++ b/PartyModes/PartyModeChallenge/PartyModeChallenge.csproj @@ -106,6 +106,26 @@ + + bin + WIN + true + AnyCPU + false + Off + prompt + ManagedMinimumRules.ruleset + + + bin + WIN + true + AnyCPU + false + Off + prompt + ManagedMinimumRules.ruleset + @@ -141,4 +161,4 @@ xcopy "$(ProjectDir)*.cs" "$(SolutionDir)Output\PartyModes\$(TargetName)\Code\" --> - \ No newline at end of file + diff --git a/PartyModes/PartyModeChallengeMedley/CChallengeRounds.cs b/PartyModes/PartyModeChallengeMedley/CChallengeRounds.cs index d2345005..3b7f00a8 100644 --- a/PartyModes/PartyModeChallengeMedley/CChallengeRounds.cs +++ b/PartyModes/PartyModeChallengeMedley/CChallengeRounds.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/PartyModes/PartyModeChallengeMedley/CPartyModeChallengeMedley.cs b/PartyModes/PartyModeChallengeMedley/CPartyModeChallengeMedley.cs index f108e66f..234d1ca1 100644 --- a/PartyModes/PartyModeChallengeMedley/CPartyModeChallengeMedley.cs +++ b/PartyModes/PartyModeChallengeMedley/CPartyModeChallengeMedley.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/PartyModes/PartyModeChallengeMedley/CPartyScreenChallengeMedleyConfig.cs b/PartyModes/PartyModeChallengeMedley/CPartyScreenChallengeMedleyConfig.cs index ab99973c..b39c7052 100644 --- a/PartyModes/PartyModeChallengeMedley/CPartyScreenChallengeMedleyConfig.cs +++ b/PartyModes/PartyModeChallengeMedley/CPartyScreenChallengeMedleyConfig.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/PartyModes/PartyModeChallengeMedley/CPartyScreenChallengeMedleyMain.cs b/PartyModes/PartyModeChallengeMedley/CPartyScreenChallengeMedleyMain.cs index 47d7ff93..47dcb43c 100644 --- a/PartyModes/PartyModeChallengeMedley/CPartyScreenChallengeMedleyMain.cs +++ b/PartyModes/PartyModeChallengeMedley/CPartyScreenChallengeMedleyMain.cs @@ -1,27 +1,24 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; using System.Collections.Generic; using System.Windows.Forms; using VocaluxeLib.Menu; -using VocaluxeLib.Profile; namespace VocaluxeLib.PartyModes.ChallengeMedley { @@ -143,7 +140,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley { try { - SDataToScreenMain data = (SDataToScreenMain)receivedData; + var data = (SDataToScreenMain)receivedData; _GameState = data; } catch (Exception e) @@ -405,7 +402,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley _RoundsTable = new List(); for (int i = 0; i < 5; i++) { - CRoundsTableRow rtr = new CRoundsTableRow {TextPlayer = new List(), TextScores = new List()}; + var rtr = new CRoundsTableRow {TextPlayer = new List(), TextScores = new List()}; _RoundsTable.Add(rtr); } //Create statics and texts for rounds @@ -457,7 +454,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley //Round-number roundRow.Number.X = numberX; roundRow.Number.Y = numberY; - int numInnerRows = (int)Math.Ceiling(_GameState.NumPlayerAtOnce / ((double)numPlayerInOneRow)); + var numInnerRows = (int)Math.Ceiling(_GameState.NumPlayerAtOnce / ((double)numPlayerInOneRow)); for (int row = 0; row < numInnerRows; row++) { int num = (row + 1) * numPlayerInOneRow; @@ -541,7 +538,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley for (int i = 0; i < 10; i++) { - STableRow row = new STableRow + var row = new STableRow { Pos = GetNewText(_Texts[_TextPosition]), Name = GetNewText(_Texts[_TextPlayerName]), diff --git a/PartyModes/PartyModeChallengeMedley/CPartyScreenChallengeMedleyNames.cs b/PartyModes/PartyModeChallengeMedley/CPartyScreenChallengeMedleyNames.cs index 7346fccf..9959e330 100644 --- a/PartyModes/PartyModeChallengeMedley/CPartyScreenChallengeMedleyNames.cs +++ b/PartyModes/PartyModeChallengeMedley/CPartyScreenChallengeMedleyNames.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -22,6 +20,7 @@ using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using VocaluxeLib.Menu; +using VocaluxeLib.Profile; namespace VocaluxeLib.PartyModes.ChallengeMedley { @@ -85,10 +84,10 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley _Data.ScreenNames.ProfileIDs = new List(); - _ThemeButtons = new string[] { _ButtonBack, _ButtonNext, _ButtonPlayerDestination, _ButtonPlayerChoose }; + _ThemeButtons = new string[] {_ButtonBack, _ButtonNext, _ButtonPlayerDestination, _ButtonPlayerChoose}; _Data = new SDataFromScreen(); - SFromScreenNames names = new SFromScreenNames { FadeToConfig = false, ProfileIDs = new List() }; + var names = new SFromScreenNames {FadeToConfig = false, ProfileIDs = new List()}; _Data.ScreenNames = names; } @@ -96,7 +95,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley { try { - SDataToScreenNames config = (SDataToScreenNames)receivedData; + var config = (SDataToScreenNames)receivedData; _Data.ScreenNames.ProfileIDs = config.ProfileIDs ?? new List(); _NumPlayer = config.NumPlayer; @@ -114,7 +113,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley { base.HandleInput(keyEvent); - if (keyEvent.KeyPressed) { } + if (keyEvent.KeyPressed) {} else { switch (keyEvent.Key) @@ -156,7 +155,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley _OldMouseX = mouseEvent.X; _OldMouseY = mouseEvent.Y; } - // LeftButton isn't hold anymore, but Selec-Mode is still active -> "Drop" of Avatar + // LeftButton isn't hold anymore, but Selec-Mode is still active -> "Drop" of Avatar else if (_SelectingMouseActive) { //Reset variables @@ -247,7 +246,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley CButton b = GetNewButton(_Buttons[_ButtonPlayerChoose]); b.Rect.X = _PlayerChooseButtonsFirstX + column * (b.Rect.W + _PlayerChooseButtonsSpaceH); b.Rect.Y = _PlayerChooseButtonsFirstY + row * (b.Rect.H + _PlayerChooseButtonsSpaceW); - CPlayerChooseButton pcb = new CPlayerChooseButton { Button = b, ProfileID = -1 }; + var pcb = new CPlayerChooseButton {Button = b, ProfileID = -1}; _PlayerChooseButtons.Add(pcb); column++; if (column >= _PlayerChooseButtonsNumH) @@ -309,15 +308,15 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley private void _UpdateVisibleProfiles() { _PlayerChooseButtonsVisibleProfiles.Clear(); - Profile.CProfile[] profiles = CBase.Profiles.GetProfiles(); - for (int i = 0; i < profiles.Length; i++) + CProfile[] profiles = CBase.Profiles.GetProfiles(); + foreach (CProfile profile in profiles) { bool visible = false; //Show profile only if active - if (profiles[i].Active == EOffOn.TR_CONFIG_ON) - visible = _Data.ScreenNames.ProfileIDs.All(profileID => profileID != profiles[i].ID); + if (profile.Active == EOffOn.TR_CONFIG_ON) + visible = _Data.ScreenNames.ProfileIDs.All(profileID => profileID != profile.ID); if (visible) - _PlayerChooseButtonsVisibleProfiles.Add(profiles[i].ID); + _PlayerChooseButtonsVisibleProfiles.Add(profile.ID); } } diff --git a/PartyModes/PartyModeChallengeMedley/GlobalSuppressions.cs b/PartyModes/PartyModeChallengeMedley/GlobalSuppressions.cs index a29227be..e661ff03 100644 Binary files a/PartyModes/PartyModeChallengeMedley/GlobalSuppressions.cs and b/PartyModes/PartyModeChallengeMedley/GlobalSuppressions.cs differ diff --git a/PartyModes/PartyModeChallengeMedley/PartyModeChallengeMedley.csproj b/PartyModes/PartyModeChallengeMedley/PartyModeChallengeMedley.csproj index 9b4f39d5..4f6ab862 100644 --- a/PartyModes/PartyModeChallengeMedley/PartyModeChallengeMedley.csproj +++ b/PartyModes/PartyModeChallengeMedley/PartyModeChallengeMedley.csproj @@ -106,6 +106,26 @@ + + bin + WIN + true + AnyCPU + false + Off + prompt + ManagedMinimumRules.ruleset + + + bin + WIN + true + AnyCPU + false + Off + prompt + ManagedMinimumRules.ruleset + @@ -141,4 +161,4 @@ xcopy "$(ProjectDir)*.cs" "$(SolutionDir)Output\PartyModes\$(TargetName)\Code\" --> - \ No newline at end of file + diff --git a/PartyModes/PartyModeTicTacToe/CPartyModeTicTacToe.cs b/PartyModes/PartyModeTicTacToe/CPartyModeTicTacToe.cs index d7730f65..33102ced 100644 --- a/PartyModes/PartyModeTicTacToe/CPartyModeTicTacToe.cs +++ b/PartyModes/PartyModeTicTacToe/CPartyModeTicTacToe.cs @@ -1,27 +1,24 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; using System.Collections.Generic; using System.Runtime.InteropServices; using VocaluxeLib.Menu; -using VocaluxeLib.Profile; [assembly: ComVisible(false)] @@ -248,7 +245,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe public override void DataFromScreen(string screenName, Object data) { - SDataFromScreen dataFrom = new SDataFromScreen(); + var dataFrom = new SDataFromScreen(); switch (screenName) { case "PartyScreenTicTacToeConfig": @@ -492,7 +489,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe public override void SongSelected(int songID) { - EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL; + var gm = EGameMode.TR_GAMEMODE_NORMAL; switch (_GameData.GameMode) { @@ -525,7 +522,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe _GameData.Rounds = new List(); for (int i = 0; i < _GameData.NumFields; i++) { - CRound r = new CRound(); + var r = new CRound(); _GameData.Rounds.Add(r); } } @@ -540,11 +537,11 @@ namespace VocaluxeLib.PartyModes.TicTacToe _GameData.PlayerTeam2 = new List(); //Prepare Player-IDs - List ids1 = new List(); - List ids2 = new List(); + var ids1 = new List(); + var ids2 = new List(); //Add IDs to team-list while (_GameData.PlayerTeam1.Count < _GameData.NumFields + _GameData.NumJokerRetry[0] && - _GameData.PlayerTeam2.Count < _GameData.NumFields + _GameData.NumJokerRetry[1] ) + _GameData.PlayerTeam2.Count < _GameData.NumFields + _GameData.NumJokerRetry[1]) { if (ids1.Count == 0) { @@ -579,7 +576,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe case 1: { //Prepare Player-IDs - List ids = new List(); + var ids = new List(); //Add IDs to team-list while (_GameData.PlayerTeam1.Count < _GameData.NumFields + _GameData.NumJokerRetry[0] && ids.Count == 0) { @@ -602,7 +599,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe case 2: { //Prepare Player-IDs - List ids = new List(); + var ids = new List(); //Add IDs to team-list while (_GameData.PlayerTeam2.Count < _GameData.NumFields + _GameData.NumJokerRetry[1] && ids.Count == 0) { @@ -627,7 +624,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe private void _PrepareSongList() { - EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL; + var gm = EGameMode.TR_GAMEMODE_NORMAL; switch (_GameData.GameMode) { @@ -646,7 +643,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe while (_GameData.Songs.Count < (_GameData.NumFields + _GameData.NumJokerRandom[0] + _GameData.NumJokerRandom[1])) { - List songs = new List(); + var songs = new List(); switch (_GameData.SongSource) { case ESongSource.TR_PLAYLIST: @@ -741,11 +738,11 @@ namespace VocaluxeLib.PartyModes.TicTacToe { players[0].ProfileID = _GameData.ProfileIDsTeam1[r.SingerTeam1]; if (isDuet) - players[0].LineNr = 0; + players[0].VoiceNr = 0; players[1].ProfileID = _GameData.ProfileIDsTeam2[r.SingerTeam2]; if (isDuet) - players[1].LineNr = 1; + players[1].VoiceNr = 1; SongSelected(r.SongID); } diff --git a/PartyModes/PartyModeTicTacToe/CPartyScreenTicTacToeConfig.cs b/PartyModes/PartyModeTicTacToe/CPartyScreenTicTacToeConfig.cs index a03c839d..a72bc05a 100644 --- a/PartyModes/PartyModeTicTacToe/CPartyScreenTicTacToeConfig.cs +++ b/PartyModes/PartyModeTicTacToe/CPartyScreenTicTacToeConfig.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/PartyModes/PartyModeTicTacToe/CPartyScreenTicTacToeMain.cs b/PartyModes/PartyModeTicTacToe/CPartyScreenTicTacToeMain.cs index 46887b31..6cfad473 100644 --- a/PartyModes/PartyModeTicTacToe/CPartyScreenTicTacToeMain.cs +++ b/PartyModes/PartyModeTicTacToe/CPartyScreenTicTacToeMain.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -22,7 +20,6 @@ using System.Collections.Generic; using System.Windows.Forms; using VocaluxeLib.Menu; using VocaluxeLib.Songs; -using VocaluxeLib.Profile; namespace VocaluxeLib.PartyModes.TicTacToe { @@ -104,7 +101,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe _ThemeStatics = new string[] {_StaticPopupBG, _StaticAvatarT1, _StaticAvatarT2}; _Data = new SDataFromScreen(); - SFromScreenMain config = new SFromScreenMain(); + var config = new SFromScreenMain(); _GameData = new SDataToScreenMain(); config.SingRoundNr = 1; config.Rounds = new List(); @@ -130,7 +127,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe { try { - SDataToScreenMain config = (SDataToScreenMain)receivedData; + var config = (SDataToScreenMain)receivedData; _GameData = config; } catch (Exception e) @@ -389,7 +386,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe { for (int i = 0; i < 25; i++) { - CField f = new CField {Button = GetNewButton(_Buttons[_ButtonField])}; + var f = new CField {Button = GetNewButton(_Buttons[_ButtonField])}; f.Button.Visible = false; f.Content = new CRound(); _AddButton(f.Button); @@ -399,7 +396,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe private void _UpdateFields() { - int numOneRow = (int)Math.Sqrt(_GameData.NumFields); + var numOneRow = (int)Math.Sqrt(_GameData.NumFields); float fieldSizeY = ((float)CBase.Settings.GetRenderH() - 150 - numOneRow * _FieldSpace) / numOneRow; float fieldSizeX = ((float)CBase.Settings.GetRenderW() - 300 - numOneRow * _FieldSpace) / numOneRow; _FieldSize = Math.Min(fieldSizeX, fieldSizeY); @@ -495,7 +492,6 @@ namespace VocaluxeLib.PartyModes.TicTacToe _GameData.Rounds[_SelectedField].SingerTeam2 = singerTeam2; _UpdatePlayerInformation(); - } int songID = 0; if (_GameData.Songs.Count > 0) @@ -508,7 +504,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe CBase.BackgroundMusic.SetStatus(true); _PreviewStream = CBase.Sound.Load(song.GetMP3(), false); - CBase.Sound.SetPosition(_PreviewStream, song.PreviewStart); + CBase.Sound.SetPosition(_PreviewStream, song.Preview.StartTime); CBase.Sound.SetStreamVolume(_PreviewStream, 0f); CBase.Sound.Play(_PreviewStream); CBase.Sound.Fade(_PreviewStream, CBase.Config.GetBackgroundMusicVolume(), 1f); @@ -532,7 +528,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe CBase.BackgroundMusic.SetStatus(true); _PreviewStream = CBase.Sound.Load(song.GetMP3(), false); - CBase.Sound.SetPosition(_PreviewStream, song.PreviewStart); + CBase.Sound.SetPosition(_PreviewStream, song.Preview.StartTime); CBase.Sound.SetStreamVolume(_PreviewStream, 0f); CBase.Sound.Play(_PreviewStream); CBase.Sound.Fade(_PreviewStream, CBase.Config.GetBackgroundMusicVolume(), 1f); @@ -672,7 +668,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe private int _BuildWinnerPossibilities() { - int numOneRow = (int)Math.Sqrt(_GameData.NumFields); + var numOneRow = (int)Math.Sqrt(_GameData.NumFields); _Possibilities = new int[(numOneRow * 2) + 2,numOneRow]; for (int i = 0; i < _Possibilities.GetLength(0); i++) { @@ -704,7 +700,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe { for (int i = 0; i < _Possibilities.GetLength(0); i++) { - List check = new List(); + var check = new List(); for (int j = 0; j < _Possibilities.GetLength(1); j++) { if (_Fields[_Possibilities[i, j]].Content.Winner > 0) diff --git a/PartyModes/PartyModeTicTacToe/CPartyScreenTicTacToeNames.cs b/PartyModes/PartyModeTicTacToe/CPartyScreenTicTacToeNames.cs index f1c3c144..4f8a86cd 100644 --- a/PartyModes/PartyModeTicTacToe/CPartyScreenTicTacToeNames.cs +++ b/PartyModes/PartyModeTicTacToe/CPartyScreenTicTacToeNames.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -22,6 +20,7 @@ using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using VocaluxeLib.Menu; +using VocaluxeLib.Profile; namespace VocaluxeLib.PartyModes.TicTacToe { @@ -93,7 +92,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe _ThemeButtons = new string[] {_ButtonBack, _ButtonNext, _ButtonPlayerDestination, _ButtonPlayerChoose, _ButtonPlayerChooseScrollUp, _ButtonPlayerChooseScrollDown}; _Data = new SDataFromScreen(); - SFromScreenNames names = new SFromScreenNames {FadeToConfig = false, ProfileIDsTeam1 = new List(), ProfileIDsTeam2 = new List()}; + var names = new SFromScreenNames {FadeToConfig = false, ProfileIDsTeam1 = new List(), ProfileIDsTeam2 = new List()}; _Data.ScreenNames = names; } @@ -101,7 +100,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe { try { - SDataToScreenNames config = (SDataToScreenNames)receivedData; + var config = (SDataToScreenNames)receivedData; _Data.ScreenNames.ProfileIDsTeam1 = config.ProfileIDsTeam1; _Data.ScreenNames.ProfileIDsTeam2 = config.ProfileIDsTeam2; if (_Data.ScreenNames.ProfileIDsTeam1 == null) @@ -375,7 +374,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe CButton b = GetNewButton(_Buttons[_ButtonPlayerChoose]); b.Rect.X = _PlayerChooseButtonsFirstX + column * (b.Rect.W + _PlayerChooseButtonsSpaceH); b.Rect.Y = _PlayerChooseButtonsFirstY + row * (b.Rect.H + _PlayerChooseButtonsSpaceW); - CPlayerChooseButton pcb = new CPlayerChooseButton {Button = b, ProfileID = -1}; + var pcb = new CPlayerChooseButton {Button = b, ProfileID = -1}; _PlayerChooseButtons.Add(pcb); column++; if (column >= _PlayerChooseButtonsNumH) @@ -418,7 +417,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe _PlayerChooseButtons[i].ProfileID = id; _PlayerChooseButtons[i].Button.Text.Text = CBase.Profiles.GetPlayerName(id); _PlayerChooseButtons[i].Button.Texture = CBase.Profiles.GetAvatar(id); - _PlayerChooseButtons[i].Button.SelTexture = CBase.Profiles.GetAvatar(id); + _PlayerChooseButtons[i].Button.SelTexture = CBase.Profiles.GetAvatar(id); _PlayerChooseButtons[i].Button.Color = new SColorF(1, 1, 1, 0.6f); _PlayerChooseButtons[i].Button.SelColor = new SColorF(1, 1, 1, 1); _PlayerChooseButtons[i].Button.Enabled = true; @@ -440,15 +439,18 @@ namespace VocaluxeLib.PartyModes.TicTacToe private void _UpdateVisibleProfiles() { _PlayerChooseButtonsVisibleProfiles.Clear(); - Profile.CProfile[] profiles = CBase.Profiles.GetProfiles(); - for (int i = 0; i < profiles.Length; i++) + CProfile[] profiles = CBase.Profiles.GetProfiles(); + foreach (CProfile profile in profiles) { bool visible = false; //Show profile only if active - if (profiles[i].Active == EOffOn.TR_CONFIG_ON) - visible = _Data.ScreenNames.ProfileIDsTeam1.All(profileID => profileID != profiles[i].ID) && _Data.ScreenNames.ProfileIDsTeam2.All(profileID => profileID != profiles[i].ID); + if (profile.Active == EOffOn.TR_CONFIG_ON) + { + visible = _Data.ScreenNames.ProfileIDsTeam1.All(profileID => profileID != profile.ID) && + _Data.ScreenNames.ProfileIDsTeam2.All(profileID => profileID != profile.ID); + } if (visible) - _PlayerChooseButtonsVisibleProfiles.Add(profiles[i].ID); + _PlayerChooseButtonsVisibleProfiles.Add(profile.ID); } } @@ -486,7 +488,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe { if (_Data.ScreenNames.ProfileIDsTeam1[i] != -1) { - int id = _Data.ScreenNames.ProfileIDsTeam1[i]; + int id = _Data.ScreenNames.ProfileIDsTeam1[i]; _PlayerDestinationButtons[i].Color = new SColorF(1, 1, 1, 0.6f); _PlayerDestinationButtons[i].SelColor = new SColorF(1, 1, 1, 1); _PlayerDestinationButtons[i].Texture = CBase.Profiles.GetAvatar(id); @@ -511,7 +513,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe { if (_Data.ScreenNames.ProfileIDsTeam2[i] != -1) { - int id = _Data.ScreenNames.ProfileIDsTeam2[i]; + int id = _Data.ScreenNames.ProfileIDsTeam2[i]; _PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].Color = new SColorF(1, 1, 1, 0.6f); _PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].SelColor = new SColorF(1, 1, 1, 1); _PlayerDestinationButtons[i].Texture = CBase.Profiles.GetAvatar(id); diff --git a/PartyModes/PartyModeTicTacToe/GlobalSuppressions.cs b/PartyModes/PartyModeTicTacToe/GlobalSuppressions.cs index a29227be..e661ff03 100644 Binary files a/PartyModes/PartyModeTicTacToe/GlobalSuppressions.cs and b/PartyModes/PartyModeTicTacToe/GlobalSuppressions.cs differ diff --git a/PartyModes/PartyModeTicTacToe/PartyModeTicTacToe.csproj b/PartyModes/PartyModeTicTacToe/PartyModeTicTacToe.csproj index 7c64e9ac..fb739e23 100644 --- a/PartyModes/PartyModeTicTacToe/PartyModeTicTacToe.csproj +++ b/PartyModes/PartyModeTicTacToe/PartyModeTicTacToe.csproj @@ -106,6 +106,26 @@ + + bin + WIN + true + AnyCPU + false + Off + prompt + ManagedMinimumRules.ruleset + + + bin + WIN + true + AnyCPU + false + Off + prompt + ManagedMinimumRules.ruleset + @@ -140,4 +160,4 @@ xcopy "$(ProjectDir)*.cs" "$(SolutionDir)Output\PartyModes\$(TargetName)\Code\" --> - \ No newline at end of file + diff --git a/Vocaluxe.sln b/Vocaluxe.sln index 636ec3bf..0896a6f6 100644 --- a/Vocaluxe.sln +++ b/Vocaluxe.sln @@ -26,6 +26,8 @@ Global DebugLinux|x86 = DebugLinux|x86 DebugWin|x64 = DebugWin|x64 DebugWin|x86 = DebugWin|x86 + InstallerWin|x64 = InstallerWin|x64 + InstallerWin|x86 = InstallerWin|x86 ReleaseLinux|x64 = ReleaseLinux|x64 ReleaseLinux|x86 = ReleaseLinux|x86 ReleaseWin|x64 = ReleaseWin|x64 @@ -40,6 +42,10 @@ Global {2A1E0F2D-5392-4BB7-B0A1-A9DFA13E79FF}.DebugWin|x64.Build.0 = DebugWin|x64 {2A1E0F2D-5392-4BB7-B0A1-A9DFA13E79FF}.DebugWin|x86.ActiveCfg = DebugWin|x86 {2A1E0F2D-5392-4BB7-B0A1-A9DFA13E79FF}.DebugWin|x86.Build.0 = DebugWin|x86 + {2A1E0F2D-5392-4BB7-B0A1-A9DFA13E79FF}.InstallerWin|x64.ActiveCfg = InstallerWin|x64 + {2A1E0F2D-5392-4BB7-B0A1-A9DFA13E79FF}.InstallerWin|x64.Build.0 = InstallerWin|x64 + {2A1E0F2D-5392-4BB7-B0A1-A9DFA13E79FF}.InstallerWin|x86.ActiveCfg = InstallerWin|x86 + {2A1E0F2D-5392-4BB7-B0A1-A9DFA13E79FF}.InstallerWin|x86.Build.0 = InstallerWin|x86 {2A1E0F2D-5392-4BB7-B0A1-A9DFA13E79FF}.ReleaseLinux|x64.ActiveCfg = ReleaseLinux|x64 {2A1E0F2D-5392-4BB7-B0A1-A9DFA13E79FF}.ReleaseLinux|x64.Build.0 = ReleaseLinux|x64 {2A1E0F2D-5392-4BB7-B0A1-A9DFA13E79FF}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|x86 @@ -56,6 +62,10 @@ Global {D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}.DebugWin|x64.Build.0 = DebugWin|x64 {D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}.DebugWin|x86.ActiveCfg = DebugWin|x86 {D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}.DebugWin|x86.Build.0 = DebugWin|x86 + {D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}.InstallerWin|x64.ActiveCfg = InstallerWin|x64 + {D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}.InstallerWin|x64.Build.0 = InstallerWin|x64 + {D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}.InstallerWin|x86.ActiveCfg = InstallerWin|x86 + {D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}.InstallerWin|x86.Build.0 = InstallerWin|x86 {D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}.ReleaseLinux|x64.ActiveCfg = ReleaseLinux|x64 {D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}.ReleaseLinux|x64.Build.0 = ReleaseLinux|x64 {D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|x86 @@ -72,6 +82,10 @@ Global {6F3E1874-F28A-40E9-AFBD-31934D593679}.DebugWin|x64.Build.0 = DebugWin|x64 {6F3E1874-F28A-40E9-AFBD-31934D593679}.DebugWin|x86.ActiveCfg = DebugWin|x86 {6F3E1874-F28A-40E9-AFBD-31934D593679}.DebugWin|x86.Build.0 = DebugWin|x86 + {6F3E1874-F28A-40E9-AFBD-31934D593679}.InstallerWin|x64.ActiveCfg = InstallerWin|x64 + {6F3E1874-F28A-40E9-AFBD-31934D593679}.InstallerWin|x64.Build.0 = InstallerWin|x64 + {6F3E1874-F28A-40E9-AFBD-31934D593679}.InstallerWin|x86.ActiveCfg = InstallerWin|x86 + {6F3E1874-F28A-40E9-AFBD-31934D593679}.InstallerWin|x86.Build.0 = InstallerWin|x86 {6F3E1874-F28A-40E9-AFBD-31934D593679}.ReleaseLinux|x64.ActiveCfg = ReleaseLinux|x64 {6F3E1874-F28A-40E9-AFBD-31934D593679}.ReleaseLinux|x64.Build.0 = ReleaseLinux|x64 {6F3E1874-F28A-40E9-AFBD-31934D593679}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|x86 @@ -88,6 +102,10 @@ Global {5A4053F1-5AD5-441F-B254-D97A088127B6}.DebugWin|x64.Build.0 = DebugWin|x64 {5A4053F1-5AD5-441F-B254-D97A088127B6}.DebugWin|x86.ActiveCfg = DebugWin|x86 {5A4053F1-5AD5-441F-B254-D97A088127B6}.DebugWin|x86.Build.0 = DebugWin|x86 + {5A4053F1-5AD5-441F-B254-D97A088127B6}.InstallerWin|x64.ActiveCfg = InstallerWin|x64 + {5A4053F1-5AD5-441F-B254-D97A088127B6}.InstallerWin|x64.Build.0 = InstallerWin|x64 + {5A4053F1-5AD5-441F-B254-D97A088127B6}.InstallerWin|x86.ActiveCfg = InstallerWin|x86 + {5A4053F1-5AD5-441F-B254-D97A088127B6}.InstallerWin|x86.Build.0 = InstallerWin|x86 {5A4053F1-5AD5-441F-B254-D97A088127B6}.ReleaseLinux|x64.ActiveCfg = ReleaseLinux|x64 {5A4053F1-5AD5-441F-B254-D97A088127B6}.ReleaseLinux|x64.Build.0 = ReleaseLinux|x64 {5A4053F1-5AD5-441F-B254-D97A088127B6}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|x86 @@ -104,6 +122,10 @@ Global {6F3E1874-F28A-40E9-AFBD-31934D593678}.DebugWin|x64.Build.0 = DebugWin|x64 {6F3E1874-F28A-40E9-AFBD-31934D593678}.DebugWin|x86.ActiveCfg = DebugWin|x86 {6F3E1874-F28A-40E9-AFBD-31934D593678}.DebugWin|x86.Build.0 = DebugWin|x86 + {6F3E1874-F28A-40E9-AFBD-31934D593678}.InstallerWin|x64.ActiveCfg = InstallerWin|x64 + {6F3E1874-F28A-40E9-AFBD-31934D593678}.InstallerWin|x64.Build.0 = InstallerWin|x64 + {6F3E1874-F28A-40E9-AFBD-31934D593678}.InstallerWin|x86.ActiveCfg = InstallerWin|x86 + {6F3E1874-F28A-40E9-AFBD-31934D593678}.InstallerWin|x86.Build.0 = InstallerWin|x86 {6F3E1874-F28A-40E9-AFBD-31934D593678}.ReleaseLinux|x64.ActiveCfg = ReleaseLinux|x64 {6F3E1874-F28A-40E9-AFBD-31934D593678}.ReleaseLinux|x64.Build.0 = ReleaseLinux|x64 {6F3E1874-F28A-40E9-AFBD-31934D593678}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|x86 @@ -118,6 +140,10 @@ Global {ED007796-367F-4142-AA55-5450C7645C2C}.DebugWin|x64.Build.0 = DebugWin|x64 {ED007796-367F-4142-AA55-5450C7645C2C}.DebugWin|x86.ActiveCfg = DebugWin|Win32 {ED007796-367F-4142-AA55-5450C7645C2C}.DebugWin|x86.Build.0 = DebugWin|Win32 + {ED007796-367F-4142-AA55-5450C7645C2C}.InstallerWin|x64.ActiveCfg = InstallerWin|x64 + {ED007796-367F-4142-AA55-5450C7645C2C}.InstallerWin|x64.Build.0 = InstallerWin|x64 + {ED007796-367F-4142-AA55-5450C7645C2C}.InstallerWin|x86.ActiveCfg = InstallerWin|Win32 + {ED007796-367F-4142-AA55-5450C7645C2C}.InstallerWin|x86.Build.0 = InstallerWin|Win32 {ED007796-367F-4142-AA55-5450C7645C2C}.ReleaseLinux|x64.ActiveCfg = ReleaseWin|x64 {ED007796-367F-4142-AA55-5450C7645C2C}.ReleaseLinux|x86.ActiveCfg = ReleaseWin|x64 {ED007796-367F-4142-AA55-5450C7645C2C}.ReleaseWin|x64.ActiveCfg = ReleaseWin|x64 @@ -128,7 +154,4 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(Performance) = preSolution - HasPerformanceSessions = true - EndGlobalSection EndGlobal diff --git a/Vocaluxe.sln.DotSettings b/Vocaluxe.sln.DotSettings index 33cad2d0..edc4800a 100644 --- a/Vocaluxe.sln.DotSettings +++ b/Vocaluxe.sln.DotSettings @@ -9,8 +9,8 @@ DO_NOT_SHOW DO_NOT_SHOW DO_NOT_SHOW - <?xml version="1.0" encoding="utf-16"?><Profile name="Cleanup"><CSArrangeThisQualifier>True</CSArrangeThisQualifier><CSRemoveCodeRedundancies>True</CSRemoveCodeRedundancies><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSUseVar><BehavourStyle>CAN_CHANGE_TO_IMPLICIT</BehavourStyle><LocalVariableStyle>IMPLICIT_WHEN_INITIALIZER_HAS_TYPE</LocalVariableStyle><ForeachVariableStyle>ALWAYS_EXPLICIT</ForeachVariableStyle></CSUseVar><CSOptimizeUsings><OptimizeUsings>False</OptimizeUsings><EmbraceInRegion>False</EmbraceInRegion><RegionName></RegionName></CSOptimizeUsings><CSReformatCode>True</CSReformatCode><CSharpFormatDocComments>True</CSharpFormatDocComments><CSShortenReferences>True</CSShortenReferences><StyleCop.Documentation><SA1600ElementsMustBeDocumented>False</SA1600ElementsMustBeDocumented><SA1604ElementDocumentationMustHaveSummary>False</SA1604ElementDocumentationMustHaveSummary><SA1609PropertyDocumentationMustHaveValueDocumented>False</SA1609PropertyDocumentationMustHaveValueDocumented><SA1611ElementParametersMustBeDocumented>False</SA1611ElementParametersMustBeDocumented><SA1615ElementReturnValueMustBeDocumented>False</SA1615ElementReturnValueMustBeDocumented><SA1617VoidReturnValueMustNotBeDocumented>False</SA1617VoidReturnValueMustNotBeDocumented><SA1618GenericTypeParametersMustBeDocumented>False</SA1618GenericTypeParametersMustBeDocumented><SA1626SingleLineCommentsMustNotUseDocumentationStyleSlashes>False</SA1626SingleLineCommentsMustNotUseDocumentationStyleSlashes><SA1628DocumentationTextMustBeginWithACapitalLetter>False</SA1628DocumentationTextMustBeginWithACapitalLetter><SA1629DocumentationTextMustEndWithAPeriod>False</SA1629DocumentationTextMustEndWithAPeriod><SA1633SA1641UpdateFileHeader>Ignore</SA1633SA1641UpdateFileHeader><SA1639FileHeaderMustHaveSummary>False</SA1639FileHeaderMustHaveSummary><SA1642ConstructorSummaryDocumentationMustBeginWithStandardText>False</SA1642ConstructorSummaryDocumentationMustBeginWithStandardText><SA1643DestructorSummaryDocumentationMustBeginWithStandardText>False</SA1643DestructorSummaryDocumentationMustBeginWithStandardText><SA1644DocumentationHeadersMustNotContainBlankLines>False</SA1644DocumentationHeadersMustNotContainBlankLines></StyleCop.Documentation><StyleCop.Layout><SA1500CurlyBracketsForMultiLineStatementsMustNotShareLine>False</SA1500CurlyBracketsForMultiLineStatementsMustNotShareLine><SA1509OpeningCurlyBracketsMustNotBePrecededByBlankLine>True</SA1509OpeningCurlyBracketsMustNotBePrecededByBlankLine><SA1510ChainedStatementBlocksMustNotBePrecededByBlankLine>True</SA1510ChainedStatementBlocksMustNotBePrecededByBlankLine><SA1511WhileDoFooterMustNotBePrecededByBlankLine>True</SA1511WhileDoFooterMustNotBePrecededByBlankLine><SA1512SingleLineCommentsMustNotBeFollowedByBlankLine>True</SA1512SingleLineCommentsMustNotBeFollowedByBlankLine><SA1513ClosingCurlyBracketMustBeFollowedByBlankLine>False</SA1513ClosingCurlyBracketMustBeFollowedByBlankLine><SA1514ElementDocumentationHeaderMustBePrecededByBlankLine>False</SA1514ElementDocumentationHeaderMustBePrecededByBlankLine><SA1515SingleLineCommentMustBeProceededByBlankLine>False</SA1515SingleLineCommentMustBeProceededByBlankLine></StyleCop.Layout><StyleCop.Readability><SA1100DoNotPrefixCallsWithBaseUnlessLocalImplementationExists>True</SA1100DoNotPrefixCallsWithBaseUnlessLocalImplementationExists><SA1106CodeMustNotContainEmptyStatements>True</SA1106CodeMustNotContainEmptyStatements><SA1108BlockStatementsMustNotContainEmbeddedComments>True</SA1108BlockStatementsMustNotContainEmbeddedComments><SA1109BlockStatementsMustNotContainEmbeddedRegions>True</SA1109BlockStatementsMustNotContainEmbeddedRegions><SA1120CommentsMustContainText>False</SA1120CommentsMustContainText><SA1121UseBuiltInTypeAlias>False</SA1121UseBuiltInTypeAlias><SA1122UseStringEmptyForEmptyStrings>False</SA1122UseStringEmptyForEmptyStrings><SA1123DoNotPlaceRegionsWithinElements>False</SA1123DoNotPlaceRegionsWithinElements><SA1124CodeMustNotContainEmptyRegions>True</SA1124CodeMustNotContainEmptyRegions></StyleCop.Readability><StyleCop.Spacing><SA1001CommasMustBeSpacedCorrectly>False</SA1001CommasMustBeSpacedCorrectly><SA1005SingleLineCommentsMustBeginWithSingleSpace>False</SA1005SingleLineCommentsMustBeginWithSingleSpace><SA1006PreprocessorKeywordsMustNotBePrecededBySpace>True</SA1006PreprocessorKeywordsMustNotBePrecededBySpace><SA1021NegativeSignsMustBeSpacedCorrectly>True</SA1021NegativeSignsMustBeSpacedCorrectly><SA1022PositiveSignsMustBeSpacedCorrectly>True</SA1022PositiveSignsMustBeSpacedCorrectly><SA1025CodeMustNotContainMultipleWhitespaceInARow>True</SA1025CodeMustNotContainMultipleWhitespaceInARow></StyleCop.Spacing><StyleCop.Ordering><AlphabeticalUsingDirectives>Ignore</AlphabeticalUsingDirectives><ExpandUsingDirectives>Ignore</ExpandUsingDirectives><SA1212PropertyAccessorsMustFollowOrder>True</SA1212PropertyAccessorsMustFollowOrder><SA1213EventAccessorsMustFollowOrder>True</SA1213EventAccessorsMustFollowOrder></StyleCop.Ordering><CSUpdateFileHeader>True</CSUpdateFileHeader><CSUseAutoProperty>True</CSUseAutoProperty></Profile> - <?xml version="1.0" encoding="utf-16"?><Profile name="Simple Reformat"><CSOptimizeUsings><OptimizeUsings>False</OptimizeUsings><EmbraceInRegion>False</EmbraceInRegion><RegionName></RegionName></CSOptimizeUsings><CSReformatCode>True</CSReformatCode><StyleCop.Documentation><SA1600ElementsMustBeDocumented>False</SA1600ElementsMustBeDocumented><SA1604ElementDocumentationMustHaveSummary>False</SA1604ElementDocumentationMustHaveSummary><SA1609PropertyDocumentationMustHaveValueDocumented>False</SA1609PropertyDocumentationMustHaveValueDocumented><SA1611ElementParametersMustBeDocumented>False</SA1611ElementParametersMustBeDocumented><SA1615ElementReturnValueMustBeDocumented>False</SA1615ElementReturnValueMustBeDocumented><SA1617VoidReturnValueMustNotBeDocumented>False</SA1617VoidReturnValueMustNotBeDocumented><SA1618GenericTypeParametersMustBeDocumented>False</SA1618GenericTypeParametersMustBeDocumented><SA1626SingleLineCommentsMustNotUseDocumentationStyleSlashes>False</SA1626SingleLineCommentsMustNotUseDocumentationStyleSlashes><SA1628DocumentationTextMustBeginWithACapitalLetter>False</SA1628DocumentationTextMustBeginWithACapitalLetter><SA1629DocumentationTextMustEndWithAPeriod>False</SA1629DocumentationTextMustEndWithAPeriod><SA1633SA1641UpdateFileHeader>Ignore</SA1633SA1641UpdateFileHeader><SA1639FileHeaderMustHaveSummary>False</SA1639FileHeaderMustHaveSummary><SA1642ConstructorSummaryDocumentationMustBeginWithStandardText>False</SA1642ConstructorSummaryDocumentationMustBeginWithStandardText><SA1643DestructorSummaryDocumentationMustBeginWithStandardText>False</SA1643DestructorSummaryDocumentationMustBeginWithStandardText><SA1644DocumentationHeadersMustNotContainBlankLines>False</SA1644DocumentationHeadersMustNotContainBlankLines></StyleCop.Documentation><StyleCop.Spacing><SA1001CommasMustBeSpacedCorrectly>False</SA1001CommasMustBeSpacedCorrectly><SA1005SingleLineCommentsMustBeginWithSingleSpace>False</SA1005SingleLineCommentsMustBeginWithSingleSpace><SA1006PreprocessorKeywordsMustNotBePrecededBySpace>True</SA1006PreprocessorKeywordsMustNotBePrecededBySpace><SA1021NegativeSignsMustBeSpacedCorrectly>True</SA1021NegativeSignsMustBeSpacedCorrectly><SA1022PositiveSignsMustBeSpacedCorrectly>True</SA1022PositiveSignsMustBeSpacedCorrectly><SA1025CodeMustNotContainMultipleWhitespaceInARow>True</SA1025CodeMustNotContainMultipleWhitespaceInARow></StyleCop.Spacing><StyleCop.Readability><SA1100DoNotPrefixCallsWithBaseUnlessLocalImplementationExists>True</SA1100DoNotPrefixCallsWithBaseUnlessLocalImplementationExists><SA1106CodeMustNotContainEmptyStatements>True</SA1106CodeMustNotContainEmptyStatements><SA1108BlockStatementsMustNotContainEmbeddedComments>True</SA1108BlockStatementsMustNotContainEmbeddedComments><SA1109BlockStatementsMustNotContainEmbeddedRegions>True</SA1109BlockStatementsMustNotContainEmbeddedRegions><SA1120CommentsMustContainText>False</SA1120CommentsMustContainText><SA1121UseBuiltInTypeAlias>False</SA1121UseBuiltInTypeAlias><SA1122UseStringEmptyForEmptyStrings>False</SA1122UseStringEmptyForEmptyStrings><SA1123DoNotPlaceRegionsWithinElements>False</SA1123DoNotPlaceRegionsWithinElements><SA1124CodeMustNotContainEmptyRegions>True</SA1124CodeMustNotContainEmptyRegions></StyleCop.Readability><StyleCop.Layout><SA1500CurlyBracketsForMultiLineStatementsMustNotShareLine>False</SA1500CurlyBracketsForMultiLineStatementsMustNotShareLine><SA1509OpeningCurlyBracketsMustNotBePrecededByBlankLine>True</SA1509OpeningCurlyBracketsMustNotBePrecededByBlankLine><SA1510ChainedStatementBlocksMustNotBePrecededByBlankLine>True</SA1510ChainedStatementBlocksMustNotBePrecededByBlankLine><SA1511WhileDoFooterMustNotBePrecededByBlankLine>True</SA1511WhileDoFooterMustNotBePrecededByBlankLine><SA1512SingleLineCommentsMustNotBeFollowedByBlankLine>True</SA1512SingleLineCommentsMustNotBeFollowedByBlankLine><SA1513ClosingCurlyBracketMustBeFollowedByBlankLine>False</SA1513ClosingCurlyBracketMustBeFollowedByBlankLine><SA1514ElementDocumentationHeaderMustBePrecededByBlankLine>False</SA1514ElementDocumentationHeaderMustBePrecededByBlankLine><SA1515SingleLineCommentMustBeProceededByBlankLine>False</SA1515SingleLineCommentMustBeProceededByBlankLine></StyleCop.Layout><StyleCop.Ordering><AlphabeticalUsingDirectives>Ignore</AlphabeticalUsingDirectives><ExpandUsingDirectives>Ignore</ExpandUsingDirectives><SA1212PropertyAccessorsMustFollowOrder>True</SA1212PropertyAccessorsMustFollowOrder><SA1213EventAccessorsMustFollowOrder>True</SA1213EventAccessorsMustFollowOrder></StyleCop.Ordering><CSShortenReferences>True</CSShortenReferences><CSUseVar><BehavourStyle>CAN_CHANGE_TO_IMPLICIT</BehavourStyle><LocalVariableStyle>IMPLICIT_WHEN_INITIALIZER_HAS_TYPE</LocalVariableStyle><ForeachVariableStyle>ALWAYS_EXPLICIT</ForeachVariableStyle></CSUseVar></Profile> + <?xml version="1.0" encoding="utf-16"?><Profile name="Cleanup"><CSArrangeThisQualifier>True</CSArrangeThisQualifier><CSRemoveCodeRedundancies>True</CSRemoveCodeRedundancies><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSUseVar><BehavourStyle>CAN_CHANGE_TO_EXPLICIT</BehavourStyle><LocalVariableStyle>IMPLICIT_WHEN_INITIALIZER_HAS_TYPE</LocalVariableStyle><ForeachVariableStyle>ALWAYS_EXPLICIT</ForeachVariableStyle></CSUseVar><CSOptimizeUsings><OptimizeUsings>False</OptimizeUsings><EmbraceInRegion>False</EmbraceInRegion><RegionName></RegionName></CSOptimizeUsings><CSReformatCode>True</CSReformatCode><CSharpFormatDocComments>True</CSharpFormatDocComments><CSShortenReferences>True</CSShortenReferences><StyleCop.Documentation><SA1600ElementsMustBeDocumented>False</SA1600ElementsMustBeDocumented><SA1604ElementDocumentationMustHaveSummary>False</SA1604ElementDocumentationMustHaveSummary><SA1609PropertyDocumentationMustHaveValueDocumented>False</SA1609PropertyDocumentationMustHaveValueDocumented><SA1611ElementParametersMustBeDocumented>False</SA1611ElementParametersMustBeDocumented><SA1615ElementReturnValueMustBeDocumented>False</SA1615ElementReturnValueMustBeDocumented><SA1617VoidReturnValueMustNotBeDocumented>False</SA1617VoidReturnValueMustNotBeDocumented><SA1618GenericTypeParametersMustBeDocumented>False</SA1618GenericTypeParametersMustBeDocumented><SA1626SingleLineCommentsMustNotUseDocumentationStyleSlashes>False</SA1626SingleLineCommentsMustNotUseDocumentationStyleSlashes><SA1628DocumentationTextMustBeginWithACapitalLetter>False</SA1628DocumentationTextMustBeginWithACapitalLetter><SA1629DocumentationTextMustEndWithAPeriod>False</SA1629DocumentationTextMustEndWithAPeriod><SA1633SA1641UpdateFileHeader>Ignore</SA1633SA1641UpdateFileHeader><SA1639FileHeaderMustHaveSummary>False</SA1639FileHeaderMustHaveSummary><SA1642ConstructorSummaryDocumentationMustBeginWithStandardText>False</SA1642ConstructorSummaryDocumentationMustBeginWithStandardText><SA1643DestructorSummaryDocumentationMustBeginWithStandardText>False</SA1643DestructorSummaryDocumentationMustBeginWithStandardText><SA1644DocumentationHeadersMustNotContainBlankLines>False</SA1644DocumentationHeadersMustNotContainBlankLines></StyleCop.Documentation><StyleCop.Layout><SA1500CurlyBracketsForMultiLineStatementsMustNotShareLine>False</SA1500CurlyBracketsForMultiLineStatementsMustNotShareLine><SA1509OpeningCurlyBracketsMustNotBePrecededByBlankLine>True</SA1509OpeningCurlyBracketsMustNotBePrecededByBlankLine><SA1510ChainedStatementBlocksMustNotBePrecededByBlankLine>True</SA1510ChainedStatementBlocksMustNotBePrecededByBlankLine><SA1511WhileDoFooterMustNotBePrecededByBlankLine>True</SA1511WhileDoFooterMustNotBePrecededByBlankLine><SA1512SingleLineCommentsMustNotBeFollowedByBlankLine>True</SA1512SingleLineCommentsMustNotBeFollowedByBlankLine><SA1513ClosingCurlyBracketMustBeFollowedByBlankLine>False</SA1513ClosingCurlyBracketMustBeFollowedByBlankLine><SA1514ElementDocumentationHeaderMustBePrecededByBlankLine>False</SA1514ElementDocumentationHeaderMustBePrecededByBlankLine><SA1515SingleLineCommentMustBeProceededByBlankLine>False</SA1515SingleLineCommentMustBeProceededByBlankLine></StyleCop.Layout><StyleCop.Readability><SA1100DoNotPrefixCallsWithBaseUnlessLocalImplementationExists>True</SA1100DoNotPrefixCallsWithBaseUnlessLocalImplementationExists><SA1106CodeMustNotContainEmptyStatements>True</SA1106CodeMustNotContainEmptyStatements><SA1108BlockStatementsMustNotContainEmbeddedComments>True</SA1108BlockStatementsMustNotContainEmbeddedComments><SA1109BlockStatementsMustNotContainEmbeddedRegions>True</SA1109BlockStatementsMustNotContainEmbeddedRegions><SA1120CommentsMustContainText>False</SA1120CommentsMustContainText><SA1121UseBuiltInTypeAlias>False</SA1121UseBuiltInTypeAlias><SA1122UseStringEmptyForEmptyStrings>False</SA1122UseStringEmptyForEmptyStrings><SA1123DoNotPlaceRegionsWithinElements>False</SA1123DoNotPlaceRegionsWithinElements><SA1124CodeMustNotContainEmptyRegions>True</SA1124CodeMustNotContainEmptyRegions></StyleCop.Readability><StyleCop.Spacing><SA1001CommasMustBeSpacedCorrectly>False</SA1001CommasMustBeSpacedCorrectly><SA1005SingleLineCommentsMustBeginWithSingleSpace>False</SA1005SingleLineCommentsMustBeginWithSingleSpace><SA1006PreprocessorKeywordsMustNotBePrecededBySpace>True</SA1006PreprocessorKeywordsMustNotBePrecededBySpace><SA1021NegativeSignsMustBeSpacedCorrectly>True</SA1021NegativeSignsMustBeSpacedCorrectly><SA1022PositiveSignsMustBeSpacedCorrectly>True</SA1022PositiveSignsMustBeSpacedCorrectly><SA1025CodeMustNotContainMultipleWhitespaceInARow>True</SA1025CodeMustNotContainMultipleWhitespaceInARow></StyleCop.Spacing><StyleCop.Ordering><AlphabeticalUsingDirectives>Ignore</AlphabeticalUsingDirectives><ExpandUsingDirectives>Ignore</ExpandUsingDirectives><SA1212PropertyAccessorsMustFollowOrder>True</SA1212PropertyAccessorsMustFollowOrder><SA1213EventAccessorsMustFollowOrder>True</SA1213EventAccessorsMustFollowOrder></StyleCop.Ordering><CSUpdateFileHeader>True</CSUpdateFileHeader><CSUseAutoProperty>True</CSUseAutoProperty></Profile> + <?xml version="1.0" encoding="utf-16"?><Profile name="Simple Reformat"><CSOptimizeUsings><OptimizeUsings>False</OptimizeUsings><EmbraceInRegion>False</EmbraceInRegion><RegionName></RegionName></CSOptimizeUsings><CSReformatCode>True</CSReformatCode><StyleCop.Documentation><SA1600ElementsMustBeDocumented>False</SA1600ElementsMustBeDocumented><SA1604ElementDocumentationMustHaveSummary>False</SA1604ElementDocumentationMustHaveSummary><SA1609PropertyDocumentationMustHaveValueDocumented>False</SA1609PropertyDocumentationMustHaveValueDocumented><SA1611ElementParametersMustBeDocumented>False</SA1611ElementParametersMustBeDocumented><SA1615ElementReturnValueMustBeDocumented>False</SA1615ElementReturnValueMustBeDocumented><SA1617VoidReturnValueMustNotBeDocumented>False</SA1617VoidReturnValueMustNotBeDocumented><SA1618GenericTypeParametersMustBeDocumented>False</SA1618GenericTypeParametersMustBeDocumented><SA1626SingleLineCommentsMustNotUseDocumentationStyleSlashes>False</SA1626SingleLineCommentsMustNotUseDocumentationStyleSlashes><SA1628DocumentationTextMustBeginWithACapitalLetter>False</SA1628DocumentationTextMustBeginWithACapitalLetter><SA1629DocumentationTextMustEndWithAPeriod>False</SA1629DocumentationTextMustEndWithAPeriod><SA1633SA1641UpdateFileHeader>Ignore</SA1633SA1641UpdateFileHeader><SA1639FileHeaderMustHaveSummary>False</SA1639FileHeaderMustHaveSummary><SA1642ConstructorSummaryDocumentationMustBeginWithStandardText>False</SA1642ConstructorSummaryDocumentationMustBeginWithStandardText><SA1643DestructorSummaryDocumentationMustBeginWithStandardText>False</SA1643DestructorSummaryDocumentationMustBeginWithStandardText><SA1644DocumentationHeadersMustNotContainBlankLines>False</SA1644DocumentationHeadersMustNotContainBlankLines></StyleCop.Documentation><StyleCop.Spacing><SA1001CommasMustBeSpacedCorrectly>False</SA1001CommasMustBeSpacedCorrectly><SA1005SingleLineCommentsMustBeginWithSingleSpace>False</SA1005SingleLineCommentsMustBeginWithSingleSpace><SA1006PreprocessorKeywordsMustNotBePrecededBySpace>True</SA1006PreprocessorKeywordsMustNotBePrecededBySpace><SA1021NegativeSignsMustBeSpacedCorrectly>True</SA1021NegativeSignsMustBeSpacedCorrectly><SA1022PositiveSignsMustBeSpacedCorrectly>True</SA1022PositiveSignsMustBeSpacedCorrectly><SA1025CodeMustNotContainMultipleWhitespaceInARow>True</SA1025CodeMustNotContainMultipleWhitespaceInARow></StyleCop.Spacing><StyleCop.Readability><SA1100DoNotPrefixCallsWithBaseUnlessLocalImplementationExists>True</SA1100DoNotPrefixCallsWithBaseUnlessLocalImplementationExists><SA1106CodeMustNotContainEmptyStatements>True</SA1106CodeMustNotContainEmptyStatements><SA1108BlockStatementsMustNotContainEmbeddedComments>True</SA1108BlockStatementsMustNotContainEmbeddedComments><SA1109BlockStatementsMustNotContainEmbeddedRegions>True</SA1109BlockStatementsMustNotContainEmbeddedRegions><SA1120CommentsMustContainText>False</SA1120CommentsMustContainText><SA1121UseBuiltInTypeAlias>False</SA1121UseBuiltInTypeAlias><SA1122UseStringEmptyForEmptyStrings>False</SA1122UseStringEmptyForEmptyStrings><SA1123DoNotPlaceRegionsWithinElements>False</SA1123DoNotPlaceRegionsWithinElements><SA1124CodeMustNotContainEmptyRegions>True</SA1124CodeMustNotContainEmptyRegions></StyleCop.Readability><StyleCop.Layout><SA1500CurlyBracketsForMultiLineStatementsMustNotShareLine>False</SA1500CurlyBracketsForMultiLineStatementsMustNotShareLine><SA1509OpeningCurlyBracketsMustNotBePrecededByBlankLine>True</SA1509OpeningCurlyBracketsMustNotBePrecededByBlankLine><SA1510ChainedStatementBlocksMustNotBePrecededByBlankLine>True</SA1510ChainedStatementBlocksMustNotBePrecededByBlankLine><SA1511WhileDoFooterMustNotBePrecededByBlankLine>True</SA1511WhileDoFooterMustNotBePrecededByBlankLine><SA1512SingleLineCommentsMustNotBeFollowedByBlankLine>True</SA1512SingleLineCommentsMustNotBeFollowedByBlankLine><SA1513ClosingCurlyBracketMustBeFollowedByBlankLine>False</SA1513ClosingCurlyBracketMustBeFollowedByBlankLine><SA1514ElementDocumentationHeaderMustBePrecededByBlankLine>False</SA1514ElementDocumentationHeaderMustBePrecededByBlankLine><SA1515SingleLineCommentMustBeProceededByBlankLine>False</SA1515SingleLineCommentMustBeProceededByBlankLine></StyleCop.Layout><StyleCop.Ordering><AlphabeticalUsingDirectives>Ignore</AlphabeticalUsingDirectives><ExpandUsingDirectives>Ignore</ExpandUsingDirectives><SA1212PropertyAccessorsMustFollowOrder>True</SA1212PropertyAccessorsMustFollowOrder><SA1213EventAccessorsMustFollowOrder>True</SA1213EventAccessorsMustFollowOrder></StyleCop.Ordering><CSShortenReferences>True</CSShortenReferences><CSUseVar><BehavourStyle>CAN_CHANGE_TO_EXPLICIT</BehavourStyle><LocalVariableStyle>IMPLICIT_WHEN_INITIALIZER_HAS_TYPE</LocalVariableStyle><ForeachVariableStyle>ALWAYS_EXPLICIT</ForeachVariableStyle></CSUseVar></Profile> Cleanup Simple Reformat 0 diff --git a/Vocaluxe/Base/CBackgroundMusic.cs b/Vocaluxe/Base/CBackgroundMusic.cs index a47de520..4f315e97 100644 --- a/Vocaluxe/Base/CBackgroundMusic.cs +++ b/Vocaluxe/Base/CBackgroundMusic.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -92,11 +90,6 @@ namespace Vocaluxe.Base get { return _CurrentPlaylistElement.SongID; } } - public static bool Duet - { - get { return _CurrentPlaylistElement.Duet; } - } - public static bool SongHasVideo { get { return File.Exists(_CurrentPlaylistElement.VideoFilePath); } @@ -583,17 +576,6 @@ namespace Vocaluxe.Base } } - public bool Duet - { - get - { - if (_Song != null) - return _Song.IsDuet; - - return false; - } - } - public CPlaylistElement(CSong song) { MusicFilePath = string.Empty; diff --git a/Vocaluxe/Base/CConfig.cs b/Vocaluxe/Base/CConfig.cs index f3dbbdbf..f4074ad1 100644 --- a/Vocaluxe/Base/CConfig.cs +++ b/Vocaluxe/Base/CConfig.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -39,6 +37,7 @@ namespace Vocaluxe.Base // Debug public static EDebugLevel DebugLevel = EDebugLevel.TR_CONFIG_OFF; + public static EOffOn SaveModifiedSongs = EOffOn.TR_CONFIG_OFF; // Graphics #if WIN @@ -148,10 +147,17 @@ namespace Vocaluxe.Base SongFolder.Add(Path.Combine(Directory.GetCurrentDirectory(), CSettings.FolderSongs)); +#if INSTALLER + SongFolder.Add(Path.Combine(CSettings.DataPath, CSettings.FolderSongs)); +#endif + + foreach (string folder in SongFolder) + CSettings.CreateFolder(folder); + MicConfig = new SMicConfig[CSettings.MaxNumPlayer]; // Init config file - if (!File.Exists(CSettings.FileConfig)) + if (!File.Exists(Path.Combine(CSettings.DataPath, CSettings.FileConfig))) SaveConfig(); _LoadConfig(); @@ -159,11 +165,12 @@ namespace Vocaluxe.Base private static void _LoadConfig() { - CXMLReader xmlReader = CXMLReader.OpenFile(CSettings.FileConfig); + CXMLReader xmlReader = CXMLReader.OpenFile(Path.Combine(CSettings.DataPath, CSettings.FileConfig)); if (xmlReader == null) return; xmlReader.TryGetEnumValue("//root/Debug/DebugLevel", ref DebugLevel); + xmlReader.TryGetEnumValue("//root/Debug/SaveModifiedSongs", ref SaveModifiedSongs); #region Graphics xmlReader.TryGetEnumValue("//root/Graphics/Renderer", ref Renderer); @@ -297,7 +304,7 @@ namespace Vocaluxe.Base XmlWriter writer = null; try { - writer = XmlWriter.Create(CSettings.FileConfig, _Settings); + writer = XmlWriter.Create(Path.Combine(CSettings.DataPath, CSettings.FileConfig), _Settings); writer.WriteStartDocument(); writer.WriteStartElement("root"); @@ -323,6 +330,9 @@ namespace Vocaluxe.Base writer.WriteComment("DebugLevel: " + CHelper.ListStrings(Enum.GetNames(typeof(EDebugLevel)))); writer.WriteElementString("DebugLevel", Enum.GetName(typeof(EDebugLevel), DebugLevel)); + writer.WriteComment("SaveModifiedSongs: " + CHelper.ListStrings(Enum.GetNames(typeof(EOffOn)))); + writer.WriteElementString("SaveModifiedSongs", Enum.GetName(typeof(EOffOn), SaveModifiedSongs)); + writer.WriteEndElement(); #endregion Debug @@ -777,7 +787,8 @@ namespace Vocaluxe.Base case "profilefolder": CSettings.CreateFolder(value); - CSettings.FolderProfiles = value; + CSettings.FoldersProfiles.Clear(); + CSettings.FoldersProfiles.Add(value); break; } } diff --git a/Vocaluxe/Base/CController.cs b/Vocaluxe/Base/CController.cs index e28bb2ee..ce70f459 100644 --- a/Vocaluxe/Base/CController.cs +++ b/Vocaluxe/Base/CController.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Collections.Generic; @@ -77,11 +75,11 @@ namespace Vocaluxe.Base { controller.Update(); - SKeyEvent ke = new SKeyEvent(); + var ke = new SKeyEvent(); while (controller.PollKeyEvent(ref ke)) _KeysPool.Add(ke); - SMouseEvent me = new SMouseEvent(); + var me = new SMouseEvent(); while (controller.PollMouseEvent(ref me)) _MousePool.Add(me); } diff --git a/Vocaluxe/Base/CCover.cs b/Vocaluxe/Base/CCover.cs index 9c7a33ce..a156fa8b 100644 --- a/Vocaluxe/Base/CCover.cs +++ b/Vocaluxe/Base/CCover.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -62,7 +60,7 @@ namespace Vocaluxe.Base { get { - List coverThemes = new List(); + var coverThemes = new List(); for (int i = 0; i < _CoverThemes.Count; i++) coverThemes.Add(_CoverThemes[i].Name); @@ -154,7 +152,7 @@ namespace Vocaluxe.Base if (xmlReader != null) { - SCoverTheme coverTheme = new SCoverTheme(); + var coverTheme = new SCoverTheme(); xmlReader.GetValue("//root/Info/Name", out coverTheme.Name, String.Empty); xmlReader.GetValue("//root/Info/Folder", out coverTheme.Folder, String.Empty); @@ -179,7 +177,7 @@ namespace Vocaluxe.Base if (String.IsNullOrEmpty(coverTheme.Name)) return; - List ignoreList = new List(); + var ignoreList = new List(); CXMLReader xmlReader = CXMLReader.OpenFile(Path.Combine(CSettings.FolderCover, coverTheme.File)); if (xmlReader != null) { @@ -206,7 +204,7 @@ namespace Vocaluxe.Base } } - List files = new List(); + var files = new List(); string coverPath = Path.Combine(CSettings.FolderCover, coverTheme.Folder); files.AddRange(CHelper.ListFiles(coverPath, "*.png", true, true)); @@ -222,19 +220,17 @@ namespace Vocaluxe.Base } } - private static void _AddCover(string Name, string File) + private static void _AddCover(string name, string file) { - CTexture texture = CDraw.AddTexture(File); + CTexture texture = CDraw.AddTexture(file); - if (!_CoverExists(Name)) - { - _Cover.Add(Name, texture); - } + if (!_CoverExists(name)) + _Cover.Add(name, texture); else { - CTexture tex = _Cover[Name]; + CTexture tex = _Cover[name]; CDraw.RemoveTexture(ref tex); - _Cover[Name] = texture; + _Cover[name] = texture; } } } diff --git a/Vocaluxe/Base/CCursor.cs b/Vocaluxe/Base/CCursor.cs index 70f1c84b..1ac568cd 100644 --- a/Vocaluxe/Base/CCursor.cs +++ b/Vocaluxe/Base/CCursor.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/Vocaluxe/Base/CDataBase.cs b/Vocaluxe/Base/CDataBase.cs index 2e9c4b65..b755a95b 100644 --- a/Vocaluxe/Base/CDataBase.cs +++ b/Vocaluxe/Base/CDataBase.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -71,10 +69,71 @@ namespace Vocaluxe.Base } #region Highscores + public static bool GetDataBaseSongInfos(string artist, string title, out int numPlayed, out string dateAdded, out int highscoreID) + { + string sArtist; + string sTitle; + int songID; + using (var connection = new SQLiteConnection()) + { + connection.ConnectionString = "Data Source=" + _HighscoreFilePath; + + try + { + connection.Open(); + } + catch (Exception) {} + + using (var command = new SQLiteCommand(connection)) + { + songID = _GetDataBaseSongID(artist, title, 0, command); + highscoreID = songID; + } + } + return _GetDataBaseSongInfos(songID, out sArtist, out sTitle, out numPlayed, out dateAdded, _HighscoreFilePath); + } + + public static void IncreaseSongCounter(SPlayer player) + { + using (var connection = new SQLiteConnection()) + { + connection.ConnectionString = "Data Source=" + _HighscoreFilePath; + + try + { + connection.Open(); + } + catch (Exception) {} + + using (var command = new SQLiteCommand(connection)) + { + int dataBaseSongID = _GetDataBaseSongID(player, command); + _IncreaseSongCounter(dataBaseSongID, command); + } + } + } + + public static void IncreaseSongCounter(int dataBaseSongID) + { + using (var connection = new SQLiteConnection()) + { + connection.ConnectionString = "Data Source=" + _HighscoreFilePath; + + try + { + connection.Open(); + } + catch (Exception) {} + + using (var command = new SQLiteCommand(connection)) + _IncreaseSongCounter(dataBaseSongID, command); + } + } + public static int AddScore(string playerName, int score, int lineNr, long date, int medley, int duet, int shortSong, int difficulty, string artist, string title, int numPlayed, string filePath) { - using (SQLiteConnection connection = new SQLiteConnection()) + using (var connection = new SQLiteConnection()) { connection.ConnectionString = "Data Source=" + filePath; @@ -87,7 +146,7 @@ namespace Vocaluxe.Base return -1; } - using (SQLiteCommand command = new SQLiteCommand(connection)) + using (var command = new SQLiteCommand(connection)) { int dataBaseSongID = _GetDataBaseSongID(artist, title, numPlayed, command); int result = _AddScore(playerName, score, lineNr, date, medley, duet, shortSong, difficulty, dataBaseSongID, command); @@ -98,7 +157,7 @@ namespace Vocaluxe.Base public static int AddScore(SPlayer player) { - using (SQLiteConnection connection = new SQLiteConnection()) + using (var connection = new SQLiteConnection()) { connection.ConnectionString = "Data Source=" + _HighscoreFilePath; @@ -111,10 +170,10 @@ namespace Vocaluxe.Base return -1; } - using (SQLiteCommand command = new SQLiteCommand(connection)) + using (var command = new SQLiteCommand(connection)) { - int dataBaseSongID = _GetDataBaseSongID(player, command); - return _AddScore(CProfiles.GetPlayerName(player.ProfileID), (int)Math.Round(player.Points), player.LineNr, player.DateTicks, player.Medley ? 1 : 0, + int dataBaseSongID = CSongs.GetSong(player.SongID).DataBaseSongID; + return _AddScore(CProfiles.GetPlayerName(player.ProfileID), (int)Math.Round(player.Points), player.VoiceNr, player.DateTicks, player.Medley ? 1 : 0, player.Duet ? 1 : 0, player.ShortSong ? 1 : 0, (int)CProfiles.GetDifficulty(player.ProfileID), dataBaseSongID, command); } } @@ -186,7 +245,7 @@ namespace Vocaluxe.Base public static void LoadScore(out List scores, SPlayer player) { - using (SQLiteConnection connection = new SQLiteConnection()) + using (var connection = new SQLiteConnection()) { connection.ConnectionString = "Data Source=" + _HighscoreFilePath; @@ -201,7 +260,7 @@ namespace Vocaluxe.Base return; } - using (SQLiteCommand command = new SQLiteCommand(connection)) + using (var command = new SQLiteCommand(connection)) { int medley = 0; if (player.Medley) @@ -231,7 +290,7 @@ namespace Vocaluxe.Base { while (reader.Read()) { - SScores score = new SScores + var score = new SScores { Name = reader.GetString(0), Score = reader.GetInt32(1), @@ -250,6 +309,13 @@ namespace Vocaluxe.Base } } + private static void _IncreaseSongCounter(int dataBaseSongID, SQLiteCommand command) + { + command.CommandText = "UPDATE Songs SET NumPlayed = NumPlayed + 1 WHERE [id] = @id"; + command.Parameters.Add("@id", DbType.Int32, 0).Value = dataBaseSongID; + command.ExecuteNonQuery(); + } + private static int _GetDataBaseSongID(SPlayer player, SQLiteCommand command) { CSong song = CSongs.GetSong(player.SongID); @@ -275,14 +341,16 @@ namespace Vocaluxe.Base reader.Dispose(); return id; } + if (reader != null) reader.Close(); - command.CommandText = "INSERT INTO Songs (Title, Artist, NumPlayed) " + - "VALUES (@title, @artist, @numplayed)"; + command.CommandText = "INSERT INTO Songs (Title, Artist, NumPlayed, DateAdded) " + + "VALUES (@title, @artist, @numplayed, @dateadded)"; command.Parameters.Add("@title", DbType.String, 0).Value = title; command.Parameters.Add("@artist", DbType.String, 0).Value = artist; command.Parameters.Add("@numplayed", DbType.Int32, 0).Value = defNumPlayed; + command.Parameters.Add("@dateadded", DbType.Int64, 0).Value = DateTime.Now.Ticks; command.ExecuteNonQuery(); command.CommandText = "SELECT id FROM Songs WHERE [Title] = @title AND [Artist] = @artist"; @@ -302,13 +370,14 @@ namespace Vocaluxe.Base return -1; } - private static bool _GetDataBaseSongInfos(int songID, out string artist, out string title, out int numPlayed, string filePath) + private static bool _GetDataBaseSongInfos(int songID, out string artist, out string title, out int numPlayed, out string dateAdded, string filePath) { artist = String.Empty; title = String.Empty; numPlayed = 0; + dateAdded = String.Empty; - using (SQLiteConnection connection = new SQLiteConnection()) + using (var connection = new SQLiteConnection()) { connection.ConnectionString = "Data Source=" + filePath; @@ -321,9 +390,9 @@ namespace Vocaluxe.Base return false; } - using (SQLiteCommand command = new SQLiteCommand(connection)) + using (var command = new SQLiteCommand(connection)) { - command.CommandText = "SELECT Artist, Title, NumPlayed FROM Songs WHERE [id] = @id"; + command.CommandText = "SELECT Artist, Title, NumPlayed, DateAdded FROM Songs WHERE [id] = @id"; command.Parameters.Add("@id", DbType.String, 0).Value = songID; SQLiteDataReader reader; @@ -342,6 +411,7 @@ namespace Vocaluxe.Base artist = reader.GetString(0); title = reader.GetString(1); numPlayed = reader.GetInt32(2); + dateAdded = new DateTime(reader.GetInt64(3)).ToString("dd/MM/yyyy"); reader.Dispose(); return true; } @@ -379,7 +449,7 @@ namespace Vocaluxe.Base private static void _CreateHighscoreDB(string filePath) { - using (SQLiteConnection connection = new SQLiteConnection()) + using (var connection = new SQLiteConnection()) { connection.ConnectionString = "Data Source=" + filePath; @@ -392,7 +462,7 @@ namespace Vocaluxe.Base return; } - using (SQLiteCommand command = new SQLiteCommand(connection)) + using (var command = new SQLiteCommand(connection)) { command.CommandText = "CREATE TABLE IF NOT EXISTS Version ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, Value INTEGER NOT NULL);"; command.ExecuteNonQuery(); @@ -402,7 +472,7 @@ namespace Vocaluxe.Base command.ExecuteNonQuery(); command.CommandText = "CREATE TABLE IF NOT EXISTS Songs ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, " + - "Artist TEXT NOT NULL, Title TEXT NOT NULL, NumPlayed INTEGER);"; + "Artist TEXT NOT NULL, Title TEXT NOT NULL, NumPlayed INTEGER, DateAdded BIGING);"; command.ExecuteNonQuery(); command.CommandText = "CREATE TABLE IF NOT EXISTS Scores ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, " + @@ -415,7 +485,7 @@ namespace Vocaluxe.Base private static void _CreateHighscoreDBV1(string filePath) { - using (SQLiteConnection connection = new SQLiteConnection()) + using (var connection = new SQLiteConnection()) { connection.ConnectionString = "Data Source=" + filePath; @@ -428,7 +498,7 @@ namespace Vocaluxe.Base return; } - using (SQLiteCommand command = new SQLiteCommand(connection)) + using (var command = new SQLiteCommand(connection)) { command.CommandText = "CREATE TABLE IF NOT EXISTS Version ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, Value INTEGER NOT NULL);"; command.ExecuteNonQuery(); @@ -455,7 +525,7 @@ namespace Vocaluxe.Base /// private static bool _CreateOrConvert(string filePath) { - using (SQLiteConnection connection = new SQLiteConnection()) + using (var connection = new SQLiteConnection()) { connection.ConnectionString = "Data Source=" + filePath; @@ -468,7 +538,7 @@ namespace Vocaluxe.Base return false; } - using (SQLiteCommand command = new SQLiteCommand(connection)) + using (var command = new SQLiteCommand(connection)) { command.CommandText = "PRAGMA user_version"; SQLiteDataReader reader = command.ExecuteReader(); @@ -504,6 +574,7 @@ namespace Vocaluxe.Base _CreateHighscoreDBV1(filePath); _ConvertFrom110(filePath); _UpdateDatabase(1, connection); + _UpdateDatabase(2, connection); } else if (version == 0 && scoresTableExists) { @@ -511,6 +582,7 @@ namespace Vocaluxe.Base _CreateHighscoreDBV1(filePath); _ConvertFrom101(filePath); _UpdateDatabase(1, connection); + _UpdateDatabase(2, connection); } else _CreateHighscoreDB(filePath); @@ -524,6 +596,7 @@ namespace Vocaluxe.Base _CreateHighscoreDBV1(filePath); _ConvertFrom110(filePath); _UpdateDatabase(1, connection); + _UpdateDatabase(2, connection); } else if (version == 0 && scoresTableExists) { @@ -531,6 +604,7 @@ namespace Vocaluxe.Base _CreateHighscoreDBV1(filePath); _ConvertFrom101(filePath); _UpdateDatabase(1, connection); + _UpdateDatabase(2, connection); } else _CreateHighscoreDB(filePath); @@ -561,7 +635,7 @@ namespace Vocaluxe.Base /// True if succeeded private static bool _ConvertFrom110(string filePath) { - using (SQLiteConnection connection = new SQLiteConnection()) + using (var connection = new SQLiteConnection()) { connection.ConnectionString = "Data Source=" + filePath; @@ -574,7 +648,7 @@ namespace Vocaluxe.Base return false; } - using (SQLiteCommand command = new SQLiteCommand(connection)) + using (var command = new SQLiteCommand(connection)) { //The USDX database has no column for LineNr, Medley and Duet so just fill 0 in there command.CommandText = @@ -584,8 +658,8 @@ namespace Vocaluxe.Base command.CommandText = "INSERT INTO Songs SELECT ID, Artist, Title, TimesPlayed from US_Songs"; command.ExecuteNonQuery(); - List scores = new List(); - List songs = new List(); + var scores = new List(); + var songs = new List(); command.CommandText = "SELECT id, PlayerName, Date FROM Scores"; SQLiteDataReader reader = command.ExecuteReader(); @@ -594,7 +668,7 @@ namespace Vocaluxe.Base { while (reader.Read()) { - SData data = new SData {Id = reader.GetInt32(0), Str1 = reader.GetString(1)}; + var data = new SData {Id = reader.GetInt32(0), Str1 = reader.GetString(1)}; Int64 ticks = 0; try @@ -618,7 +692,7 @@ namespace Vocaluxe.Base { while (reader.Read()) { - SData data = new SData {Id = reader.GetInt32(0), Str1 = reader.GetString(1), Str2 = reader.GetString(2)}; + var data = new SData {Id = reader.GetInt32(0), Str1 = reader.GetString(1), Str2 = reader.GetString(2)}; songs.Add(data); } } @@ -674,7 +748,7 @@ namespace Vocaluxe.Base /// True if succeeded private static bool _ConvertFrom101(string filePath) { - using (SQLiteConnection connection = new SQLiteConnection()) + using (var connection = new SQLiteConnection()) { connection.ConnectionString = "Data Source=" + filePath; @@ -687,7 +761,7 @@ namespace Vocaluxe.Base return false; } - using (SQLiteCommand command = new SQLiteCommand(connection)) + using (var command = new SQLiteCommand(connection)) { command.CommandText = "PRAGMA table_info(US_Scores);"; bool dateExists = false; @@ -718,8 +792,8 @@ namespace Vocaluxe.Base command.ExecuteNonQuery(); // convert from CP1252 to UTF8 - List scores = new List(); - List songs = new List(); + var scores = new List(); + var songs = new List(); Sqlite3.sqlite3 oldDB; int res = Sqlite3.sqlite3_open(filePath, out oldDB); @@ -728,7 +802,7 @@ namespace Vocaluxe.Base CLog.LogError("Error opening Database: " + filePath + " (" + Sqlite3.sqlite3_errmsg(oldDB) + ")"); else { - Sqlite3.Vdbe stmt = new Sqlite3.Vdbe(); + var stmt = new Sqlite3.Vdbe(); res = Sqlite3.sqlite3_prepare_v2(oldDB, "SELECT id, Artist, Title FROM Songs", -1, ref stmt, 0); if (res != Sqlite3.SQLITE_OK) @@ -741,7 +815,7 @@ namespace Vocaluxe.Base while (Sqlite3.sqlite3_step(stmt) == Sqlite3.SQLITE_ROW) { - SData data = new SData {Id = Sqlite3.sqlite3_column_int(stmt, 0)}; + var data = new SData {Id = Sqlite3.sqlite3_column_int(stmt, 0)}; byte[] bytes = Sqlite3.sqlite3_column_rawbytes(stmt, 1); data.Str1 = bytes != null ? utf8.GetString(Encoding.Convert(cp1252, utf8, bytes)) : "Someone"; @@ -773,7 +847,7 @@ namespace Vocaluxe.Base while (Sqlite3.sqlite3_step(stmt) == Sqlite3.SQLITE_ROW) { - SData data = new SData {Id = Sqlite3.sqlite3_column_int(stmt, 0)}; + var data = new SData {Id = Sqlite3.sqlite3_column_int(stmt, 0)}; byte[] bytes = Sqlite3.sqlite3_column_rawbytes(stmt, 1); data.Str1 = bytes != null ? utf8.GetString(Encoding.Convert(cp1252, utf8, bytes)) : "Someone"; @@ -831,14 +905,18 @@ namespace Vocaluxe.Base private static bool _UpdateDatabase(int currentVersion, SQLiteConnection connection) { bool updated = true; + if (currentVersion < 2) updated &= _ConvertV1toV2(connection); + if (currentVersion < 3) + updated &= _ConvertV2toV3(connection); + return updated; } private static bool _ConvertV1toV2(SQLiteConnection connection) { - using (SQLiteCommand command = new SQLiteCommand(connection)) + using (var command = new SQLiteCommand(connection)) { command.CommandText = "ALTER TABLE Scores ADD ShortSong INTEGER"; command.ExecuteNonQuery(); @@ -853,10 +931,61 @@ namespace Vocaluxe.Base return true; } + private static bool _ConvertV2toV3(SQLiteConnection connection) + { + var command = new SQLiteCommand(connection) {CommandText = "ALTER TABLE Songs ADD DateAdded BIGINT"}; + + command.ExecuteNonQuery(); + command.CommandText = "UPDATE Songs SET [DateAdded] = @DateAdded"; + command.Parameters.Add("@DateAdded", DbType.Int64, 0).Value = DateTime.Now.Ticks; + command.ExecuteNonQuery(); + command.CommandText = "UPDATE Version SET [Value] = @version"; + command.Parameters.Add("@version", DbType.Int32, 0).Value = 3; + command.ExecuteNonQuery(); + + //Read NumPlayed from Scores and save to Songs + command.CommandText = "SELECT SongID, Date FROM Scores ORDER BY Date ASC"; + + SQLiteDataReader reader; + try + { + reader = command.ExecuteReader(); + } + catch (Exception) + { + return false; + } + + long lastDateAdded = -1; + int lastID = -1; + DateTime dt = new DateTime(1, 1, 1, 0, 0, 5); + long sec = dt.Ticks; + List ids = new List(); + while (reader.Read()) + { + int id = reader.GetInt32(0); + long dateAdded = reader.GetInt64(1); + if (id != lastID || dateAdded > lastDateAdded + sec) + { + ids.Add(id); + lastID = id; + lastDateAdded = dateAdded; + } + } + if (reader != null) + reader.Dispose(); + + foreach (int id in ids) + _IncreaseSongCounter(id, command); + command.Dispose(); + + return true; + } + private static bool _ImportData(string sourceDBPath) { #region open db - using (SQLiteConnection connSource = new SQLiteConnection()) + using (var connSource = new SQLiteConnection()) { connSource.ConnectionString = "Data Source=" + sourceDBPath; @@ -871,7 +1000,7 @@ namespace Vocaluxe.Base } #endregion open db - using (SQLiteCommand cmdSource = new SQLiteCommand(connSource)) + using (var cmdSource = new SQLiteCommand(connSource)) { #region import table scores cmdSource.CommandText = "SELECT SongID, PlayerName, Score, LineNr, Date, Medley, Duet, ShortSong, Difficulty FROM Scores"; @@ -897,9 +1026,9 @@ namespace Vocaluxe.Base int shortsong = source.GetInt32(7); int diff = source.GetInt32(8); - string artist, title; + string artist, title, dateadded; int numplayed; - if (_GetDataBaseSongInfos(songid, out artist, out title, out numplayed, sourceDBPath)) + if (_GetDataBaseSongInfos(songid, out artist, out title, out numplayed, out dateadded, sourceDBPath)) AddScore(player, score, linenr, date, medley, duet, shortsong, diff, artist, title, numplayed, _HighscoreFilePath); } #endregion import table scores @@ -927,7 +1056,7 @@ namespace Vocaluxe.Base _ConnectionCover.Open(); } - using (SQLiteCommand command = new SQLiteCommand(_ConnectionCover)) + using (var command = new SQLiteCommand(_ConnectionCover)) { command.CommandText = "SELECT id, width, height FROM Cover WHERE [Path] = @path"; command.Parameters.Add("@path", DbType.String, 0).Value = coverPath; @@ -985,7 +1114,7 @@ namespace Vocaluxe.Base else if (origin.Height > origin.Width && origin.Height > h) w = (int)Math.Round((float)h / origin.Height * origin.Width); - using (Bitmap bmp = new Bitmap(w, h)) + using (var bmp = new Bitmap(w, h)) { using (Graphics g = Graphics.FromImage(bmp)) g.DrawImage(origin, new Rectangle(0, 0, w, h)); @@ -1054,7 +1183,7 @@ namespace Vocaluxe.Base private static bool _InitCoverDB() { - using (SQLiteConnection connection = new SQLiteConnection()) + using (var connection = new SQLiteConnection()) { connection.ConnectionString = "Data Source=" + _CoverFilePath; @@ -1067,7 +1196,7 @@ namespace Vocaluxe.Base return false; } - using (SQLiteCommand command = new SQLiteCommand(connection)) + using (var command = new SQLiteCommand(connection)) { command.CommandText = "SELECT Value FROM Version"; @@ -1107,7 +1236,7 @@ namespace Vocaluxe.Base private static void _CreateCoverDB() { - using (SQLiteConnection connection = new SQLiteConnection()) + using (var connection = new SQLiteConnection()) { connection.ConnectionString = "Data Source=" + _CoverFilePath; @@ -1120,7 +1249,7 @@ namespace Vocaluxe.Base return; } - using (SQLiteCommand command = new SQLiteCommand(connection)) + using (var command = new SQLiteCommand(connection)) { command.CommandText = "CREATE TABLE IF NOT EXISTS Version ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, Value INTEGER NOT NULL);"; command.ExecuteNonQuery(); @@ -1146,7 +1275,7 @@ namespace Vocaluxe.Base { bool result = false; - using (SQLiteConnection connection = new SQLiteConnection()) + using (var connection = new SQLiteConnection()) { connection.ConnectionString = "Data Source=" + _CreditsRessourcesFilePath; try @@ -1157,7 +1286,7 @@ namespace Vocaluxe.Base { return false; } - using (SQLiteCommand command = new SQLiteCommand(connection)) + using (var command = new SQLiteCommand(connection)) { command.CommandText = "SELECT id, width, height FROM Images WHERE [Path] = @path"; command.Parameters.Add("@path", DbType.String, 0).Value = fileName; @@ -1279,7 +1408,7 @@ namespace Vocaluxe.Base private static bool _InitCreditsRessourcesDB() { - using (SQLiteConnection connection = new SQLiteConnection()) + using (var connection = new SQLiteConnection()) { connection.ConnectionString = "Data Source=" + _CreditsRessourcesFilePath; @@ -1292,7 +1421,7 @@ namespace Vocaluxe.Base return false; } - using (SQLiteCommand command = new SQLiteCommand(connection)) + using (var command = new SQLiteCommand(connection)) { command.CommandText = "SELECT Value FROM Version"; @@ -1372,14 +1501,14 @@ namespace Vocaluxe.Base private static byte[] _GetBytes(SQLiteDataReader reader) { const int chunkSize = 2 * 1024; - byte[] buffer = new byte[chunkSize]; + var buffer = new byte[chunkSize]; long fieldOffset = 0; - using (MemoryStream stream = new MemoryStream()) + using (var stream = new MemoryStream()) { long bytesRead; while ((bytesRead = reader.GetBytes(0, fieldOffset, buffer, 0, buffer.Length)) > 0) { - byte[] actualRead = new byte[bytesRead]; + var actualRead = new byte[bytesRead]; Buffer.BlockCopy(buffer, 0, actualRead, 0, (int)bytesRead); stream.Write(actualRead, 0, actualRead.Length); fieldOffset += bytesRead; @@ -1390,7 +1519,7 @@ namespace Vocaluxe.Base private static long _UnixTimeToTicks(int unixTime) { - DateTime t70 = new DateTime(1970, 1, 1, 0, 0, 0, 0); + var t70 = new DateTime(1970, 1, 1, 0, 0, 0, 0); t70 = t70.AddSeconds(unixTime); return t70.Ticks; } diff --git a/Vocaluxe/Base/CDraw.cs b/Vocaluxe/Base/CDraw.cs index 3969658a..e888cad3 100644 --- a/Vocaluxe/Base/CDraw.cs +++ b/Vocaluxe/Base/CDraw.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -206,7 +204,7 @@ namespace Vocaluxe.Base if (texture == null) return; - RectangleF bounds = new RectangleF(staticBounds.Rect.X, staticBounds.Rect.Y, staticBounds.Rect.W, staticBounds.Rect.H); + var bounds = new RectangleF(staticBounds.Rect.X, staticBounds.Rect.Y, staticBounds.Rect.W, staticBounds.Rect.H); RectangleF rect; CHelper.SetRect(bounds, out rect, texture.OrigAspect, aspect); diff --git a/Vocaluxe/Base/CGame.cs b/Vocaluxe/Base/CGame.cs index 40942314..6eb98838 100644 --- a/Vocaluxe/Base/CGame.cs +++ b/Vocaluxe/Base/CGame.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -31,7 +29,10 @@ namespace Vocaluxe.Base private static ISongQueue _SongQueue; private static int _NumPlayer = CConfig.NumPlayer; - private static int _OldBeatD; + /// + /// Last beat that has been evaluated + /// + private static int _LastEvalBeat; private static readonly Random _Rand = new Random(); public static Random Rand @@ -52,13 +53,31 @@ namespace Vocaluxe.Base return 0f; } - public static int CurrentBeat { get; private set; } + /// + /// Currently played beat in song. This is floor(CurrentBeatF) + /// + public static int CurrentBeat + { + get { return (int)Math.Floor(CurrentBeatF); } + } + /// + /// Currently played beat in song. A value of 1.5 indicates that the song is in the middle of 1st and 2nd beat + /// + public static float CurrentBeatF { get; private set; } - public static float Beat { get; private set; } - - public static float MidBeatD { get; private set; } - - public static int ActBeatD { get; private set; } + /// + /// Middle of the beat that got just recorded (CurrentBeat-MicDelayBeats-0.5) + /// A value of 2 indicates that beat 2 was recorded and is ready for evaluation. + /// A value of 2.5 indicates that beat 3 is half way there. + /// + public static float MidRecordedBeat { get; private set; } + /// + /// Beat that got just recorded and can be evaluated. This is floor(MidRecordedBeat) + /// + public static int RecordedBeat + { + get { return (int)Math.Floor(MidRecordedBeat); } + } public static SPlayer[] Players { get; private set; } @@ -172,9 +191,9 @@ namespace Vocaluxe.Base Players[i].Points = 0f; Players[i].PointsLineBonus = 0f; Players[i].PointsGoldenNotes = 0f; - Players[i].LineNr = 0; + Players[i].VoiceNr = 0; Players[i].NoteDiff = 0; - Players[i].SingLine = new List(); + Players[i].SungLines = new List(); Players[i].CurrentLine = -1; Players[i].CurrentNote = -1; Players[i].SongID = -1; @@ -184,10 +203,9 @@ namespace Vocaluxe.Base Players[i].DateTicks = DateTime.Now.Ticks; Players[i].SongFinished = false; } - _OldBeatD = -100; - Beat = -100; - CurrentBeat = -100; - ActBeatD = -100; + _LastEvalBeat = -100; + CurrentBeatF = -100; + MidRecordedBeat = -100; } public static void UpdatePoints(float time) @@ -198,150 +216,250 @@ namespace Vocaluxe.Base return; float b = GetBeatFromTime(time, song.BPM, song.Gap); - if (b <= Beat) + if (b <= CurrentBeatF) return; - Beat = b; - CurrentBeat = (int)Math.Floor(Beat); + CurrentBeatF = b; - MidBeatD = -0.5f + GetBeatFromTime(time, song.BPM, song.Gap + CConfig.MicDelay / 1000f); - ActBeatD = (int)Math.Floor(MidBeatD); + MidRecordedBeat = -0.5f + GetBeatFromTime(time, song.BPM, song.Gap + CConfig.MicDelay / 1000f); for (int p = 0; p < _NumPlayer; p++) CSound.AnalyzeBuffer(p); - if (_OldBeatD >= ActBeatD) + if (_LastEvalBeat >= RecordedBeat) return; for (int p = 0; p < _NumPlayer; p++) { - for (int beat = _OldBeatD + 1; beat <= ActBeatD; beat++) + for (int beat = _LastEvalBeat + 1; beat <= RecordedBeat; beat++) { if ((_SongQueue.GetCurrentGameMode() == EGameMode.TR_GAMEMODE_MEDLEY && song.Medley.EndBeat == beat) || - (_SongQueue.GetCurrentGameMode() == EGameMode.TR_GAMEMODE_SHORTSONG && song.ShortEnd == beat)) + (_SongQueue.GetCurrentGameMode() == EGameMode.TR_GAMEMODE_SHORTSONG && song.ShortEnd.EndBeat == beat)) Players[p].SongFinished = true; - CLine[] lines = song.Notes.GetVoice(Players[p].LineNr).Lines; - int line = -1; + CSongLine[] lines = song.Notes.GetVoice(Players[p].VoiceNr).Lines; + int line = song.Notes.GetVoice(Players[p].VoiceNr).FindPreviousLine(beat); + if (line < 0 || lines[line].EndBeat < beat) + continue; - for (int j = 0; j < lines.Length; j++) + //Check for already sung + if (line < Players[p].SungLines.Count - 1) + continue; // Already sung whole line + if (line == Players[p].SungLines.Count - 1) { - if (beat >= lines[j].StartBeat && beat <= lines[j].EndBeat) - { - line = j; - break; - } + //We are in the last line + if (beat <= Players[p].SungLines[line].LastNoteBeat) + continue; //We already have something that ends with/after that beat } - if (line < 0) - continue; if (line != Players[p].CurrentLine) Players[p].CurrentNote = -1; Players[p].CurrentLine = line; - while (Players[p].SingLine.Count <= line) - Players[p].SingLine.Add(new CLine()); + while (Players[p].SungLines.Count <= line) + Players[p].SungLines.Add(new CSungLine()); - CNote[] notes = lines[line].Notes; + CSongNote[] notes = lines[line].Notes; int note = lines[line].FindPreviousNote(beat); - if (note >= 0 && notes[note].EndBeat < beat) - note = -1; + if (note < 0 || notes[note].EndBeat < beat) + continue; - if (note >= 0) + Players[p].CurrentNote = note; + + if (line == lines.Length - 1 && beat == lines[line].LastNoteBeat) + Players[p].SongFinished = true; + + if (notes[note].PointsForBeat > 0 && CSound.RecordToneValid(p)) { - Players[p].CurrentNote = note; + int tone = notes[note].Tone; + int tonePlayer = CSound.RecordGetTone(p); - if (line == lines.Length - 1) + while (tonePlayer - tone > 6) + tonePlayer -= 12; + + while (tonePlayer - tone < -6) + tonePlayer += 12; + + Players[p].NoteDiff = Math.Abs(tone - tonePlayer); + bool hit = Players[p].NoteDiff <= (2 - (int)CProfiles.GetDifficulty(Players[p].ProfileID)); + + if (hit) { - if (note == lines[line].NoteCount - 1) + // valid + //CSound.RecordSetTone(p, Tone); + double points = (CSettings.MaxScore - CSettings.LinebonusScore) * (double)notes[note].PointsForBeat / + song.Notes.GetVoice(Players[p].VoiceNr).Points; + if (notes[note].Type == ENoteType.Golden) + Players[p].PointsGoldenNotes += points; + + Players[p].Points += points; + + // update player notes (sung notes) + if (Players[p].SungLines[line].NoteCount > 0) { - if (notes[note].EndBeat == beat) - Players[p].SongFinished = true; - } - } + CSungNote lastNote = Players[p].SungLines[line].LastNote; - if (notes[note].PointsForBeat > 0 && CSound.RecordToneValid(p)) - { - int tone = notes[note].Tone; - int tonePlayer = CSound.RecordGetTone(p); - - while (tonePlayer - tone > 6) - tonePlayer -= 12; - - while (tonePlayer - tone < -6) - tonePlayer += 12; - - Players[p].NoteDiff = Math.Abs(tone - tonePlayer); - bool hit = Players[p].NoteDiff <= (2 - (int)CProfiles.GetDifficulty(Players[p].ProfileID)); - if (hit) - { - // valid - //CSound.RecordSetTone(p, Tone); - double points = (CSettings.MaxScore - CSettings.LinebonusScore) * (double)notes[note].PointsForBeat / - song.Notes.GetVoice(Players[p].LineNr).Points; - if (notes[note].NoteType == ENoteType.Golden) - Players[p].PointsGoldenNotes += points; - - Players[p].Points += points; - - // update player notes (sung notes) - if (Players[p].SingLine[line].NoteCount > 0) - { - CNote lastNote = Players[p].SingLine[line].LastNote; - if (notes[note].StartBeat == beat || lastNote.EndBeat + 1 != beat || lastNote.Tone != tone || !lastNote.Hit) - Players[p].SingLine[line].AddNote(new CNote(beat, 1, tone, String.Empty, true, notes[note].NoteType)); - else - Players[p].SingLine[line].IncLastNoteLength(); - } + if (notes[note].StartBeat == beat || lastNote.EndBeat + 1 != beat || lastNote.Tone != tone || !lastNote.Hit) + Players[p].SungLines[line].AddNote(new CSungNote(beat, 1, tone, notes[note], points)); else - Players[p].SingLine[line].AddNote(new CNote(beat, 1, tone, String.Empty, true, notes[note].NoteType)); - - Players[p].SingLine[line].LastNote.IsPerfect(notes[note]); - Players[p].SingLine[line].IsPerfect(lines[line]); + { + Players[p].SungLines[line].IncLastNoteLength(); + Players[p].SungLines[line].LastNote.Points += points; + } } else - { - if (Players[p].SingLine[line].NoteCount > 0) - { - CNote lastNote = Players[p].SingLine[line].LastNote; - if (lastNote.Tone == tonePlayer && lastNote.EndBeat + 1 == beat && !lastNote.Hit) - Players[p].SingLine[line].IncLastNoteLength(); - else - Players[p].SingLine[line].AddNote(new CNote(beat, 1, tonePlayer, String.Empty, false, ENoteType.Freestyle)); - } - else - Players[p].SingLine[line].AddNote(new CNote(beat, 1, tonePlayer, String.Empty, false, ENoteType.Freestyle)); - } - } + Players[p].SungLines[line].AddNote(new CSungNote(beat, 1, tone, notes[note], points)); - // Line Bonus - int numLinesWithPoints = song.Notes.GetNumLinesWithPoints(Players[p].LineNr); - if (note == lines[line].NoteCount - 1 && numLinesWithPoints > 0) + Players[p].SungLines[line].LastNote.CheckPerfect(); + Players[p].SungLines[line].IsPerfect(lines[line]); + } + else { - if (notes[note].EndBeat == beat && lines[line].Points > 0f) + if (Players[p].SungLines[line].NoteCount > 0) { - double factor = Players[p].SingLine[line].Points / (double)lines[line].Points; - if (factor < 0.4) - factor = 0.0; - else if (factor > 0.9) - factor = 1.0; + CSungNote lastNote = Players[p].SungLines[line].LastNote; + if (lastNote.Tone != tonePlayer || lastNote.EndBeat + 1 != beat || lastNote.Hit) + Players[p].SungLines[line].AddNote(new CSungNote(beat, 1, tonePlayer)); else - { - factor -= 0.4; - factor *= 2; - factor *= factor; - } - - double points = CSettings.LinebonusScore * factor * 1f / numLinesWithPoints; - Players[p].Points += points; - Players[p].PointsLineBonus += points; + Players[p].SungLines[line].IncLastNoteLength(); } + else + Players[p].SungLines[line].AddNote(new CSungNote(beat, 1, tonePlayer)); } } + + // Line Bonus + int numLinesWithPoints = song.Notes.GetNumLinesWithPoints(Players[p].VoiceNr); + if (beat == lines[line].LastNoteBeat && lines[line].Points > 0 && numLinesWithPoints > 0) + { + double factor = Players[p].SungLines[line].Points / (double)lines[line].Points; + if (factor <= 0.4) + factor = 0.0; + else if (factor >= 0.9) + factor = 1.0; + else + { + factor -= 0.4; + factor *= 2; + factor *= factor; + } + + double points = CSettings.LinebonusScore * factor / numLinesWithPoints; + Players[p].Points += points; + Players[p].PointsLineBonus += points; + Players[p].SungLines[line].BonusPoints += points; + } } } - _OldBeatD = ActBeatD; + _LastEvalBeat = RecordedBeat; + } + + public static void ResetToLastLine(int soundStream, int vidStream) + { + float[] time = GetLastSungLineStart(); + ResetToTime(time[0], time[1], soundStream, vidStream); + } + + public static void ResetToTime(float time, float nextStart, int soundStream, int vidStream) + { + if (time < 0) + time = 0; + + CurrentBeatF = GetBeatFromTime(time, GetSong().BPM, GetSong().Gap); + + for (int p = 0; p < _NumPlayer; p++) + { + Players[p].Points = 0; + Players[p].PointsGoldenNotes = 0; + Players[p].PointsLineBonus = 0; + int l = 0; + int deleteLine = 0; + foreach (CSungLine line in Players[p].SungLines) + { + int n = -1; + int deleteNote = 0; + Players[p].PointsLineBonus += line.BonusPoints; + foreach (CSungNote note in line.Notes) + { + if (note.StartBeat < nextStart) + { + if (note.Hit && note.HitNote.Type == ENoteType.Golden) + Players[p].PointsGoldenNotes += note.Points; + Players[p].Points += note.Points; + } + else if (deleteNote != -1) + deleteNote = n; + n++; + } + while (line.NoteCount > n && n >= 0) + { + if (line.Notes[n].Hit && line.Notes[n].HitNote.Type == ENoteType.Golden) + Players[p].PointsGoldenNotes -= line.Notes[n].Points; + Players[p].Points -= line.Notes[n].Points; + line.DeleteNote(n); + } + + if (line.LastNoteBeat > CurrentBeat && deleteLine == 0) + deleteLine = l; + l++; + } + Players[p].SungLines.RemoveRange(deleteLine, Players[p].SungLines.Count - deleteLine); + } + //CSong song = GetSong(); + //for (int i = 0; i < GetSong().Notes.Voices[0].Lines.Length; i++) + // CLog.LogError((i + 1) + ". " + song.Notes.Voices[0].Lines[i].NoteCount + " - " + Players[0].SungLines[i].NoteCount); + + CSound.SetPosition(soundStream, time); + CVideo.Skip(vidStream, time, GetSong().VideoGap); + } + + private static float[] GetLastSungLineStart() + { + return GetNoteTimeBeforeBeat(CurrentBeat); + } + + private static float[] GetNoteTimeBeforeBeat(int beat) + { + CSong song = GetSong(); + int StartBeat = (int)Math.Floor(beat - GetBeatFromTime(CSettings.PauseResetTime, song.BPM, 0f)); + int lastStart = 0; + int nextStart = 0; + foreach (CVoice voice in song.Notes.Voices) + { + int lastEnd = 0; + int voiceStart = 0; + int nextStartNote = 0; + foreach (CSongLine line in voice.Lines) + { + foreach (CSongNote note in line.Notes) + { + if (note.StartBeat > StartBeat) + { + nextStartNote = note.StartBeat; + break; + } + else + { + voiceStart = note.StartBeat; + lastEnd = note.EndBeat; + } + } + if (nextStartNote > 0) + break; + } + if (nextStartNote - beat > CSettings.PauseResetTime) + lastStart = beat; + else if (nextStartNote - lastEnd > CSettings.PauseResetTime) + lastStart = nextStartNote - (int)Math.Floor(GetBeatFromTime(CSettings.PauseResetTime, song.BPM, 0f)); + if (voiceStart > lastStart) + { + lastStart = voiceStart; + nextStart = nextStartNote; + } + } + + return new float[] {GetTimeFromBeats(lastStart, GetSong().BPM), nextStart}; } } } \ No newline at end of file diff --git a/Vocaluxe/Base/CGraphics.cs b/Vocaluxe/Base/CGraphics.cs index f531a3c7..5a7fdd54 100644 --- a/Vocaluxe/Base/CGraphics.cs +++ b/Vocaluxe/Base/CGraphics.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/Vocaluxe/Base/CLanguage.cs b/Vocaluxe/Base/CLanguage.cs index ede9e021..2cf54d9d 100644 --- a/Vocaluxe/Base/CLanguage.cs +++ b/Vocaluxe/Base/CLanguage.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -66,7 +64,7 @@ namespace Vocaluxe.Base public static IEnumerable GetLanguageNames() { - string[] languages = new string[_Languages.Count]; + var languages = new string[_Languages.Count]; for (int i = 0; i < _Languages.Count; i++) languages[i] = _Languages[i].Name; @@ -81,7 +79,7 @@ namespace Vocaluxe.Base _Settings.Encoding = Encoding.UTF8; _Settings.ConformanceLevel = ConformanceLevel.Document; - List files = new List(); + var files = new List(); files.AddRange(CHelper.ListFiles(CSettings.FolderLanguages, "*.xml", true, true)); foreach (string file in files) @@ -166,7 +164,7 @@ namespace Vocaluxe.Base public static bool LoadPartyLanguageFiles(int partyModeID, string path) { - List files = new List(); + var files = new List(); files.AddRange(CHelper.ListFiles(path, "*.xml", true, true)); return files.All(file => _LoadPartyLanguageFile(partyModeID, file)); @@ -208,7 +206,7 @@ namespace Vocaluxe.Base if (nr == -1) return true; - SPartyLanguage lang = new SPartyLanguage {PartyModeID = partyModeID}; + var lang = new SPartyLanguage {PartyModeID = partyModeID}; if (!_LoadLanguageEntries(xmlReader, out lang.Texts)) return false; @@ -221,7 +219,7 @@ namespace Vocaluxe.Base private static void _LoadLanguageFile(string fileName) { - SLanguage lang = new SLanguage {LanguageFilePath = Path.Combine(CSettings.FolderLanguages, fileName)}; + var lang = new SLanguage {LanguageFilePath = Path.Combine(CSettings.FolderLanguages, fileName)}; CXMLReader xmlReader = CXMLReader.OpenFile(lang.LanguageFilePath); if (xmlReader == null) diff --git a/Vocaluxe/Base/CLog.cs b/Vocaluxe/Base/CLog.cs index df186697..6f87a74c 100644 --- a/Vocaluxe/Base/CLog.cs +++ b/Vocaluxe/Base/CLog.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -39,7 +37,7 @@ namespace Vocaluxe.Base private void _Open() { - _LogFile = new StreamWriter(Path.Combine(Environment.CurrentDirectory, _LogFileName), false, Encoding.UTF8); + _LogFile = new StreamWriter(Path.Combine(CSettings.DataPath, _LogFileName), false, Encoding.UTF8); _LogFile.WriteLine(_LogName + " " + CSettings.GetFullVersionText() + " " + DateTime.Now); _LogFile.WriteLine("----------------------------------------"); @@ -119,8 +117,7 @@ namespace Vocaluxe.Base MessageBox.Show(errorText, CSettings.ProgramName, MessageBoxButtons.OK, MessageBoxIcon.Error); if (e != null) errorText += ": " + e; - _ErrorLog.Add(_NumErrors + ") " + errorText + "\r\n"); - _ErrorLog.Add(String.Empty); + _ErrorLog.Add(_NumErrors + ") " + errorText); if (exit) Environment.Exit(Environment.ExitCode); } diff --git a/Vocaluxe/Base/CMain.cs b/Vocaluxe/Base/CMain.cs index 61a997ea..6ff4068a 100644 --- a/Vocaluxe/Base/CMain.cs +++ b/Vocaluxe/Base/CMain.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -62,6 +60,11 @@ namespace Vocaluxe.Base class CBconfig : IConfig { + public EOffOn GetSaveModifiedSongs() + { + return CConfig.SaveModifiedSongs; + } + public void SetBackgroundMusicVolume(int newVolume) { CConfig.BackgroundMusicVolume = newVolume; @@ -112,7 +115,7 @@ namespace Vocaluxe.Base return CConfig.CoverSize; } - public IEnumerable GetSongFolder() + public IEnumerable GetSongFolders() { return CConfig.SongFolder; } @@ -219,6 +222,11 @@ namespace Vocaluxe.Base { return CSettings.FolderProfiles; } + + public string GetDataPath() + { + return CSettings.DataPath; + } } class CBtheme : ITheme @@ -499,14 +507,14 @@ namespace Vocaluxe.Base return CGame.GetPoints(); } - public float GetMidBeatD() + public float GetMidRecordedBeat() { - return CGame.MidBeatD; + return CGame.MidRecordedBeat; } - public int GetCurrentBeatD() + public int GetRecordedBeat() { - return CGame.ActBeatD; + return CGame.RecordedBeat; } public int GetRandom(int max) @@ -524,6 +532,11 @@ namespace Vocaluxe.Base return CGame.GetTimeFromBeats(beat, bpm); } + public float GetBeatFromTime(float time, float bpm, float gap) + { + return CGame.GetBeatFromTime(time, bpm, gap); + } + public void AddSong(int songID, EGameMode gameMode) { CGame.AddSong(songID, gameMode); @@ -782,6 +795,11 @@ namespace Vocaluxe.Base { return CDataBase.GetCover(fileName, ref texture, coverSize); } + + public bool GetDataBaseSongInfos(string artist, string title, out int numPlayed, out string dateAdded, out int highscoreID) + { + return CDataBase.GetDataBaseSongInfos(artist, title, out numPlayed, out dateAdded, out highscoreID); + } } class CBcontrollers : IControllers diff --git a/Vocaluxe/Base/CObservable.cs b/Vocaluxe/Base/CObservable.cs index 239e15dc..00cd5122 100644 --- a/Vocaluxe/Base/CObservable.cs +++ b/Vocaluxe/Base/CObservable.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/Vocaluxe/Base/CParty.cs b/Vocaluxe/Base/CParty.cs index 32b283c8..5735786f 100644 --- a/Vocaluxe/Base/CParty.cs +++ b/Vocaluxe/Base/CParty.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -304,7 +302,7 @@ namespace Vocaluxe.Base pm.PartyMode.Initialize(); pm.PartyMode.SetFolder(Path.Combine(Directory.GetCurrentDirectory(), Path.Combine(CSettings.FolderPartyModes, pm.Folder))); - if (!CTheme.AddTheme(Path.Combine(pm.PartyMode.GetFolder(), "Theme.xml"),pm.PartyModeID)) + if (!CTheme.AddTheme(Path.Combine(pm.PartyMode.GetFolder(), "Theme.xml"), pm.PartyModeID)) return pm; int themeIndex = CTheme.GetThemeIndex(pm.PartyModeID); diff --git a/Vocaluxe/Base/CPlaylists.cs b/Vocaluxe/Base/CPlaylists.cs index 1dc0493b..2c9e2d6a 100644 --- a/Vocaluxe/Base/CPlaylists.cs +++ b/Vocaluxe/Base/CPlaylists.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -52,15 +50,15 @@ namespace Vocaluxe.Base public static void Init() { LoadPlaylists(); - ConvertUSDXPlaylists(); + _ConvertUSDXPlaylists(); _SortPlaylistsByName(); } - public static void ConvertUSDXPlaylists() + private static void _ConvertUSDXPlaylists() { - List files = new List(); - files.AddRange(CHelper.ListFiles(CSettings.FolderPlaylists, "*.upl", true, true)); + var files = new List(); + files.AddRange(CHelper.ListFiles(Path.Combine(CSettings.DataPath, CSettings.FolderPlaylists), "*.upl", true, true)); foreach (string file in files) { @@ -73,12 +71,13 @@ namespace Vocaluxe.Base public static void LoadPlaylists() { _Playlists = new List(); - List files = new List(); - files.AddRange(CHelper.ListFiles(CSettings.FolderPlaylists, "*.xml", true, true)); + + var files = new List(); + files.AddRange(CHelper.ListFiles(Path.Combine(CSettings.DataPath, CSettings.FolderPlaylists), "*.xml", true, true)); foreach (string file in files) { - CPlaylistFile playlist = new CPlaylistFile(file); + var playlist = new CPlaylistFile(file); _Playlists.Add(playlist); } } @@ -126,7 +125,7 @@ namespace Vocaluxe.Base public static int NewPlaylist() { - CPlaylistFile pl = new CPlaylistFile {PlaylistName = "New Playlist"}; + var pl = new CPlaylistFile {PlaylistName = "New Playlist"}; _Playlists.Add(pl); return _Playlists.Count - 1; } @@ -219,7 +218,7 @@ namespace Vocaluxe.Base private static CPlaylistFile _ConvertUSDXPlaylist(string file) { - CPlaylistFile pl = new CPlaylistFile(); + var pl = new CPlaylistFile(); ReadOnlyCollection allSongs = CSongs.AllSongs; if (!File.Exists(file)) diff --git a/Vocaluxe/Base/CProfiles.cs b/Vocaluxe/Base/CProfiles.cs index 005eefe3..d8c61652 100644 --- a/Vocaluxe/Base/CProfiles.cs +++ b/Vocaluxe/Base/CProfiles.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -179,7 +177,7 @@ namespace Vocaluxe.Base if (_ProfileChangedCallbacks.Count == 0) return; - EProfileChangedFlags flags = EProfileChangedFlags.None; + var flags = EProfileChangedFlags.None; if (_AvatarsChanged) flags = EProfileChangedFlags.Avatar; @@ -214,7 +212,7 @@ namespace Vocaluxe.Base public static void LoadProfiles() { - SChange change = new SChange {Action = EAction.LoadProfiles}; + var change = new SChange {Action = EAction.LoadProfiles}; lock (_QueueMutex) { @@ -224,7 +222,7 @@ namespace Vocaluxe.Base public static void LoadAvatars() { - SChange change = new SChange {Action = EAction.LoadAvatars}; + var change = new SChange {Action = EAction.LoadAvatars}; lock (_QueueMutex) { @@ -237,7 +235,7 @@ namespace Vocaluxe.Base if (newProfile == null) return; - SChange change = new SChange {Action = EAction.AddProfile, Profile = newProfile}; + var change = new SChange {Action = EAction.AddProfile, Profile = newProfile}; lock (_QueueMutex) { @@ -250,7 +248,7 @@ namespace Vocaluxe.Base if (editProfile == null) return; - SChange change = new SChange {Action = EAction.EditProfile, Profile = editProfile}; + var change = new SChange {Action = EAction.EditProfile, Profile = editProfile}; lock (_QueueMutex) { @@ -263,7 +261,7 @@ namespace Vocaluxe.Base if (!IsProfileIDValid(profileID)) return; - SChange change = new SChange {Action = EAction.DeleteProfile, ProfileID = profileID}; + var change = new SChange {Action = EAction.DeleteProfile, ProfileID = profileID}; lock (_QueueMutex) { @@ -276,7 +274,7 @@ namespace Vocaluxe.Base if (newAvatar == null) return; - SChange change = new SChange {Action = EAction.AddAvatar, Avatar = newAvatar}; + var change = new SChange {Action = EAction.AddAvatar, Avatar = newAvatar}; lock (_QueueMutex) { @@ -289,7 +287,7 @@ namespace Vocaluxe.Base if (editAvatar == null) return; - SChange change = new SChange {Action = EAction.EditAvatar, Avatar = editAvatar}; + var change = new SChange {Action = EAction.EditAvatar, Avatar = editAvatar}; lock (_QueueMutex) { @@ -302,7 +300,7 @@ namespace Vocaluxe.Base if (_Profiles.Count == 0) return null; - List list = new List(_Profiles.Values); + var list = new List(_Profiles.Values); list.Sort(_CompareByPlayerName); return list.ToArray(); } @@ -312,7 +310,7 @@ namespace Vocaluxe.Base if (_Avatars.Count == 0) return null; - CAvatar[] result = new CAvatar[_Avatars.Count]; + var result = new CAvatar[_Avatars.Count]; _Avatars.Values.CopyTo(result, 0); return result; @@ -320,9 +318,9 @@ namespace Vocaluxe.Base public static int NewProfile(string fileName = "") { - CProfile profile = new CProfile + var profile = new CProfile { - FileName = fileName != "" ? Path.Combine(CSettings.FolderProfiles, fileName) : String.Empty + FileName = fileName != "" ? Path.Combine(CSettings.DataPath, CSettings.FolderProfiles, fileName) : String.Empty }; if (File.Exists(profile.FileName)) @@ -336,7 +334,7 @@ namespace Vocaluxe.Base public static int NewAvatar(string fileName) { - CAvatar avatar = new CAvatar(-1); + var avatar = new CAvatar(-1); if (!avatar.LoadFromFile(fileName)) return -1; @@ -511,10 +509,10 @@ namespace Vocaluxe.Base { _LoadAvatars(); - List knownFiles = new List(); + var knownFiles = new List(); if (_Profiles.Count > 0) { - int[] ids = new int[_Profiles.Keys.Count]; + var ids = new int[_Profiles.Keys.Count]; _Profiles.Keys.CopyTo(ids, 0); foreach (int id in ids) { @@ -528,17 +526,20 @@ namespace Vocaluxe.Base } } - List files = new List(); - files.AddRange(CHelper.ListFiles(CSettings.FolderProfiles, "*.xml", true, true)); + + var files = new List(); + foreach (string path in CSettings.FoldersProfiles) + files.AddRange(CHelper.ListFiles(path, "*.xml", true, true)); foreach (string file in files) { if (knownFiles.Contains(Path.GetFileName(file))) continue; - CProfile profile = new CProfile + var profile = new CProfile { - FileName = Path.Combine(CSettings.FolderProfiles, file) + FileName = Path.GetFileName(file), + FilePath = Path.GetDirectoryName(file) }; if (profile.LoadProfile()) @@ -553,10 +554,10 @@ namespace Vocaluxe.Base private static void _LoadAvatars() { - List knownFiles = new List(); + var knownFiles = new List(); if (_Avatars.Count > 0) { - int[] ids = new int[_Avatars.Keys.Count]; + var ids = new int[_Avatars.Keys.Count]; _Avatars.Keys.CopyTo(ids, 0); foreach (int id in ids) { @@ -567,18 +568,21 @@ namespace Vocaluxe.Base } } - List files = new List(); - files.AddRange(CHelper.ListFiles(CSettings.FolderProfiles, "*.png", true, true)); - files.AddRange(CHelper.ListFiles(CSettings.FolderProfiles, "*.jpg", true, true)); - files.AddRange(CHelper.ListFiles(CSettings.FolderProfiles, "*.jpeg", true, true)); - files.AddRange(CHelper.ListFiles(CSettings.FolderProfiles, "*.bmp", true, true)); + var files = new List(); + foreach (string path in CSettings.FoldersProfiles) + { + files.AddRange(CHelper.ListFiles(path, "*.png", true, true)); + files.AddRange(CHelper.ListFiles(path, "*.jpg", true, true)); + files.AddRange(CHelper.ListFiles(path, "*.jpeg", true, true)); + files.AddRange(CHelper.ListFiles(path, "*.bmp", true, true)); + } foreach (string file in files) { if (knownFiles.Contains(Path.GetFileName(file))) continue; - CAvatar avatar = new CAvatar(-1); + var avatar = new CAvatar(-1); if (avatar.LoadFromFile(file)) { avatar.ID = _AvatarIDs.Dequeue(); @@ -610,7 +614,7 @@ namespace Vocaluxe.Base CConfig.SaveConfig(); } } - File.Delete(_Profiles[profileID].FileName); + File.Delete(Path.Combine(_Profiles[profileID].FilePath, _Profiles[profileID].FileName)); _RemoveProfile(profileID); //Check if profile is selected in game diff --git a/Vocaluxe/Base/CSettings.cs b/Vocaluxe/Base/CSettings.cs index eeaffaef..9fe7b69f 100644 --- a/Vocaluxe/Base/CSettings.cs +++ b/Vocaluxe/Base/CSettings.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -55,7 +53,7 @@ namespace Vocaluxe.Base public const ERevision VersionRevision = ERevision.Beta; - public const int DatabaseHighscoreVersion = 2; + public const int DatabaseHighscoreVersion = 3; public const int DatabaseCoverVersion = 1; public const int DatabaseCreditsRessourcesVersion = 1; @@ -68,6 +66,12 @@ namespace Vocaluxe.Base public static bool IsFullScreen; public const int VertexBufferElements = 10000; +#if INSTALLER + public static string DataPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Vocaluxe"); +#else + public static string DataPath = Environment.CurrentDirectory; +#endif + public const string Icon = "Vocaluxe.ico"; public const string Logo = "Logo.png"; public const string FallbackLanguage = "English"; @@ -90,7 +94,14 @@ namespace Vocaluxe.Base public const string FolderThemes = "Themes"; public const string FolderThemeFonts = "Fonts"; public const string FolderScreens = "Screens"; - public static string FolderProfiles = "Profiles"; + public const string FolderProfiles = "Profiles"; + public static List FoldersProfiles = new List + { +#if INSTALLER + Path.Combine(Environment.CurrentDirectory, FolderProfiles), +#endif + Path.Combine(DataPath, FolderProfiles) + }; public const string FolderSongs = "Songs"; public const string FolderSounds = "Sounds"; public const string FolderLanguages = "Languages"; @@ -129,6 +140,7 @@ namespace Vocaluxe.Base public const bool TabNavigation = false; public const float BackgroundMusicFadeTime = 0.5f; + public const float PauseResetTime = 1f; public static readonly List MusicFileTypes = new List { @@ -209,7 +221,16 @@ namespace Vocaluxe.Base public static void CreateFolders() { - List folders = new List {FolderCover, FolderFonts, FolderProfiles, FolderSongs, FolderScreenshots, FolderBackgroundMusic, FolderSounds, FolderPlaylists}; + var folders = new List + { + FolderCover, + FolderFonts, + Path.Combine(DataPath, FolderScreenshots), + FolderBackgroundMusic, + FolderSounds, + Path.Combine(DataPath, FolderPlaylists) + }; + folders.AddRange(FoldersProfiles); foreach (string folder in folders) { diff --git a/Vocaluxe/Base/CSongCategorizer.cs b/Vocaluxe/Base/CSongCategorizer.cs index 70733d88..74784cc2 100644 --- a/Vocaluxe/Base/CSongCategorizer.cs +++ b/Vocaluxe/Base/CSongCategorizer.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/Vocaluxe/Base/CSongFilter.cs b/Vocaluxe/Base/CSongFilter.cs index 43777269..4c4f014e 100644 --- a/Vocaluxe/Base/CSongFilter.cs +++ b/Vocaluxe/Base/CSongFilter.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/Vocaluxe/Base/CSongSorter.cs b/Vocaluxe/Base/CSongSorter.cs index 1c427fcf..eefb796f 100644 --- a/Vocaluxe/Base/CSongSorter.cs +++ b/Vocaluxe/Base/CSongSorter.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -114,7 +112,7 @@ namespace Vocaluxe.Base private List _CreateSortList(string fieldName) { - List sortList = new List(); + var sortList = new List(); if (fieldName == "") CSongs.Filter.FilteredSongs.ForEach(song => sortList.Add(new CSongPointer(song.ID, ""))); else @@ -135,7 +133,7 @@ namespace Vocaluxe.Base sortList.Add(new CSongPointer(song.ID, (String)value)); else { - List values = (List)value; + var values = (List)value; if (values.Count == 0) sortList.Add(new CSongPointer(song.ID, "")); else @@ -159,10 +157,10 @@ namespace Vocaluxe.Base switch (_SongSorting) { case ESongSorting.TR_CONFIG_EDITION: - fieldName = "Edition"; + fieldName = "Editions"; break; case ESongSorting.TR_CONFIG_GENRE: - fieldName = "Genre"; + fieldName = "Genres"; break; case ESongSorting.TR_CONFIG_FOLDER: fieldName = "FolderName"; @@ -179,7 +177,10 @@ namespace Vocaluxe.Base fieldName = "Year"; break; case ESongSorting.TR_CONFIG_LANGUAGE: - fieldName = "Language"; + fieldName = "Languages"; + break; + case ESongSorting.TR_CONFIG_DATEADDED: + fieldName = "DateAdded"; break; default: fieldName = ""; diff --git a/Vocaluxe/Base/CSongs.cs b/Vocaluxe/Base/CSongs.cs index 05f7ac31..c45fc8a7 100644 --- a/Vocaluxe/Base/CSongs.cs +++ b/Vocaluxe/Base/CSongs.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -251,7 +249,7 @@ namespace Vocaluxe.Base { get { - List songs = new List(); + var songs = new List(); if (_IsCatIndexValid(_CatIndex)) { // ReSharper disable LoopCanBeConvertedToQuery @@ -298,7 +296,7 @@ namespace Vocaluxe.Base _Songs.Clear(); CLog.StartBenchmark(2, "List Songs"); - List files = new List(); + var files = new List(); foreach (string p in CConfig.SongFolder) { string path = p; @@ -314,7 +312,7 @@ namespace Vocaluxe.Base if (song == null) continue; song.ID = _Songs.Count; - if (song.ReadNotes()) + if (song.LoadNotes()) _Songs.Add(song); } CLog.StopBenchmark(2, "Read TXTs"); diff --git a/Vocaluxe/Base/CSound.cs b/Vocaluxe/Base/CSound.cs index a4dc3e5b..88caed71 100644 --- a/Vocaluxe/Base/CSound.cs +++ b/Vocaluxe/Base/CSound.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -450,11 +448,11 @@ namespace Vocaluxe.Base int len = _AnalysisBuffer.Length * 2; if (_Stream.Length >= len) { - byte[] buf = new byte[len]; + var buf = new byte[len]; _Stream.Position -= len; _Stream.Read(buf, 0, len); - byte[] b = new byte[2]; + var b = new byte[2]; for (int i = 0; i < _AnalysisBuffer.Length; i++) { b[0] = buf[i * 2]; @@ -496,7 +494,7 @@ namespace Vocaluxe.Base double maxWeight = -1.0; double minWeight = 1.0; int maxTone = -1; - float[] weigth = new float[_NumHalfTones]; + var weigth = new float[_NumHalfTones]; // analyze halftones // Note: at the lowest tone (~65Hz) and a buffer-size of 4096 @@ -535,7 +533,7 @@ namespace Vocaluxe.Base private double _AnalyzeAutocorrelationFreq(double freq) { int sampleIndex = 0; // index of sample to analyze - int samplesPerPeriod = (int)Math.Round(44100.0 / freq); // samples in one period + var samplesPerPeriod = (int)Math.Round(44100.0 / freq); // samples in one period int correlatingSampleIndex = sampleIndex + samplesPerPeriod; // index of sample one period ahead double accumDist = 0.0; // accumulated distances diff --git a/Vocaluxe/Base/CTheme.cs b/Vocaluxe/Base/CTheme.cs index 7f08c8e9..ce48eda2 100644 --- a/Vocaluxe/Base/CTheme.cs +++ b/Vocaluxe/Base/CTheme.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -115,7 +113,7 @@ namespace Vocaluxe.Base { var names = new List(); // ReSharper disable LoopCanBeConvertedToQuery - foreach (var th in _Themes) + foreach (STheme th in _Themes) // ReSharper restore LoopCanBeConvertedToQuery { if (th.PartyModeID == -1) @@ -132,7 +130,7 @@ namespace Vocaluxe.Base { var names = new List(); // ReSharper disable LoopCanBeConvertedToQuery - foreach (var sk in _Skins) + foreach (SSkin sk in _Skins) // ReSharper restore LoopCanBeConvertedToQuery { if (sk.PartyModeID == -1) @@ -175,7 +173,7 @@ namespace Vocaluxe.Base return false; // load skins/textures - foreach (var valuePair in _Skins[skinIndex].SkinList) + foreach (KeyValuePair valuePair in _Skins[skinIndex].SkinList) { CSkinElement sk = valuePair.Value; try @@ -192,7 +190,7 @@ namespace Vocaluxe.Base // load videos - foreach (var valuePair in _Skins[skinIndex].VideoList) + foreach (KeyValuePair valuePair in _Skins[skinIndex].VideoList) { try { @@ -214,10 +212,10 @@ namespace Vocaluxe.Base { for (int i = 0; i < _Skins.Count; i++) { - foreach (var sk in _Skins[i].SkinList.Values) + foreach (CSkinElement sk in _Skins[i].SkinList.Values) CDraw.RemoveTexture(ref sk.Texture); - foreach (var vsk in _Skins[i].VideoList.Values) + foreach (CVideoSkinElement vsk in _Skins[i].VideoList.Values) { CVideo.Close(vsk.VideoIndex); CDraw.RemoveTexture(ref vsk.Texture); @@ -358,7 +356,7 @@ namespace Vocaluxe.Base #region Skins writer.WriteStartElement("Skins"); - foreach (var element in _Skins[skinIndex].SkinList) + foreach (KeyValuePair element in _Skins[skinIndex].SkinList) writer.WriteElementString(element.Key, element.Value.Value); writer.WriteEndElement(); #endregion Skins @@ -366,7 +364,7 @@ namespace Vocaluxe.Base #region Videos writer.WriteStartElement("Videos"); - foreach (var element in _Skins[skinIndex].VideoList) + foreach (KeyValuePair element in _Skins[skinIndex].VideoList) writer.WriteElementString(element.Key, element.Value.Value); writer.WriteEndElement(); #endregion Videos @@ -730,7 +728,7 @@ namespace Vocaluxe.Base } writer.WriteStartElement("ColorSchemes"); - foreach (var scheme in _Skins[skinIndex].ThemeColors.ColorSchemes) + foreach (SColorScheme scheme in _Skins[skinIndex].ThemeColors.ColorSchemes) { writer.WriteStartElement(scheme.Name); @@ -780,7 +778,7 @@ namespace Vocaluxe.Base public static bool GetColor(string colorName, int skinIndex, out SColorF color) { - foreach (var scheme in _Skins[skinIndex].ThemeColors.ColorSchemes) + foreach (SColorScheme scheme in _Skins[skinIndex].ThemeColors.ColorSchemes) { if (scheme.Name == colorName) { diff --git a/Vocaluxe/Base/CUtility.cs b/Vocaluxe/Base/CUtility.cs index 27ad1db3..ee766dc5 100644 --- a/Vocaluxe/Base/CUtility.cs +++ b/Vocaluxe/Base/CUtility.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -31,12 +29,16 @@ namespace Vocaluxe.Base private static float _Fps; private static readonly double _NanosecPerTick = (1000.0 * 1000.0 * 1000.0) / Stopwatch.Frequency; + // ReSharper disable MemberCanBePrivate.Global public static void Reset() + // ReSharper restore MemberCanBePrivate.Global { _Stopwatch.Reset(); } + // ReSharper disable MemberCanBePrivate.Global public static void Start() + // ReSharper restore MemberCanBePrivate.Global { _Stopwatch.Start(); } @@ -117,7 +119,7 @@ namespace Vocaluxe.Base if (!_Timer.IsRunning || (_Timer.ElapsedMilliseconds > 75) || !keyRepeat) { - SKeyEvent pool = new SKeyEvent(ESender.Keyboard, alt, shift, ctrl, pressed && (unicode != Char.MinValue), unicode, key); + var pool = new SKeyEvent(ESender.Keyboard, alt, shift, ctrl, pressed && (unicode != Char.MinValue), unicode, key); lock (_CopyLock) { @@ -226,7 +228,7 @@ namespace Vocaluxe.Base x = (int)(x * (float)CSettings.RenderW / CDraw.GetScreenWidth()); y = (int)(y * (float)CSettings.RenderH / CDraw.GetScreenHeight()); - SMouseEvent pool = new SMouseEvent(ESender.Mouse, _Mod, x, y, lb, ld, rb, -wheel / 120, lbh, rbh, mb, mbh); + var pool = new SMouseEvent(ESender.Mouse, _Mod, x, y, lb, ld, rb, -wheel / 120, lbh, rbh, mb, mbh); lock (_CopyLock) { diff --git a/Vocaluxe/Base/CVideo.cs b/Vocaluxe/Base/CVideo.cs index 031bc6b6..5358b7e6 100644 --- a/Vocaluxe/Base/CVideo.cs +++ b/Vocaluxe/Base/CVideo.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Diagnostics; @@ -168,7 +166,7 @@ namespace Vocaluxe.Base } if (_VideoTexture == null) return; - RectangleF bounds = new RectangleF(0f, 0f, CSettings.RenderW, CSettings.RenderH); + var bounds = new RectangleF(0f, 0f, CSettings.RenderW, CSettings.RenderH); RectangleF rect; CHelper.SetRect(bounds, out rect, _VideoTexture.OrigAspect, EAspect.Crop); diff --git a/Vocaluxe/Base/CWebcam.cs b/Vocaluxe/Base/CWebcam.cs index a42b6459..dac871aa 100644 --- a/Vocaluxe/Base/CWebcam.cs +++ b/Vocaluxe/Base/CWebcam.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Drawing; diff --git a/Vocaluxe/Base/Fonts/CFont.cs b/Vocaluxe/Base/Fonts/CFont.cs index e01c3b2b..e1408b72 100644 --- a/Vocaluxe/Base/Fonts/CFont.cs +++ b/Vocaluxe/Base/Fonts/CFont.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/Vocaluxe/Base/Fonts/CFonts.cs b/Vocaluxe/Base/Fonts/CFonts.cs index 1de2f929..8b561072 100644 --- a/Vocaluxe/Base/Fonts/CFonts.cs +++ b/Vocaluxe/Base/Fonts/CFonts.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Collections.Generic; @@ -258,8 +256,8 @@ namespace Vocaluxe.Base.Fonts Height = height; SetFont(text.Font); Style = text.Style; - RectangleF result = new RectangleF(text.X, text.Y, GetTextWidth(CLanguage.Translate(text.Text, text.TranslationID)), - GetTextHeight(CLanguage.Translate(text.Text, text.TranslationID))); + var result = new RectangleF(text.X, text.Y, GetTextWidth(CLanguage.Translate(text.Text, text.TranslationID)), + GetTextHeight(CLanguage.Translate(text.Text, text.TranslationID))); //restore old values Height = oldHeight; _CurrentFont = oldFont; @@ -286,7 +284,7 @@ namespace Vocaluxe.Base.Fonts int i = 1; while (xmlReader.GetValue("//root/Fonts/Font" + i + "/Folder", out value, value)) { - SFont sf = new SFont {Folder = value, IsThemeFont = themeName != "", ThemeName = themeName, PartyModeID = partyModeId}; + var sf = new SFont {Folder = value, IsThemeFont = themeName != "", ThemeName = themeName, PartyModeID = partyModeId}; bool ok = true; @@ -297,7 +295,7 @@ namespace Vocaluxe.Base.Fonts ok &= xmlReader.GetValue("//root/Fonts/Font" + i + "/FileNormal", out value, value); sf.FileNormal = value; value = Path.Combine(fontFolder, Path.Combine(sf.Folder, value)); - CFont f = new CFont(value); + var f = new CFont(value); sf.Normal = f; ok &= xmlReader.GetValue("//root/Fonts/Font" + i + "/FileItalic", out value, value); diff --git a/Vocaluxe/Base/Fonts/CGlyph.cs b/Vocaluxe/Base/Fonts/CGlyph.cs index ba136617..cab5d9b6 100644 --- a/Vocaluxe/Base/Fonts/CGlyph.cs +++ b/Vocaluxe/Base/Fonts/CGlyph.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -80,7 +78,7 @@ namespace Vocaluxe.Base.Fonts bmpSize = new Size(1, 1); } } - using (Bitmap bmp = new Bitmap(bmpSize.Width, bmpSize.Height, PixelFormat.Format32bppArgb)) + using (var bmp = new Bitmap(bmpSize.Width, bmpSize.Height, PixelFormat.Format32bppArgb)) using (Graphics g = Graphics.FromImage(bmp)) { g.Clear(Color.Transparent); @@ -96,15 +94,15 @@ namespace Vocaluxe.Base.Fonts g.InterpolationMode = InterpolationMode.HighQualityBicubic; g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; - PointF point = new PointF(outlineSize / 2, outlineSize / 4); + var point = new PointF(outlineSize / 2, outlineSize / 4); - using (GraphicsPath path = new GraphicsPath()) + using (var path = new GraphicsPath()) { //Have to use size in em not pixels! float emSize = fo.Size * fo.FontFamily.GetCellAscent(fo.Style) / fo.FontFamily.GetEmHeight(fo.Style); path.AddString(chrString, fo.FontFamily, (int)fo.Style, emSize, point, new StringFormat()); - using (Pen pen = new Pen(CFonts.OutlineColor.AsColor(), outlineSize)) + using (var pen = new Pen(CFonts.OutlineColor.AsColor(), outlineSize)) { pen.LineJoin = LineJoin.Round; g.DrawPath(pen, path); @@ -123,6 +121,7 @@ namespace Vocaluxe.Base.Fonts _DrawBounding.Height = _Texture.Height;*/ #pragma warning disable 162 // ReSharper disable HeuristicUnreachableCode + // ReSharper disable ConditionIsAlwaysTrueOrFalse if (false && Char.IsLetterOrDigit(chr)) { if (outline > 0) @@ -130,6 +129,7 @@ namespace Vocaluxe.Base.Fonts else bmpCropped.Save("font_" + chr + CFonts.Style + "2.png", ImageFormat.Png); } + // ReSharper restore ConditionIsAlwaysTrueOrFalse // ReSharper restore HeuristicUnreachableCode #pragma warning restore 162 } @@ -164,7 +164,7 @@ namespace Vocaluxe.Base.Fonts int minX = 0, maxX = bmp.Width - 1, minY = 0; BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb); int values = bmpData.Width * bmp.Height; - Int32[] rgbValues = new Int32[values]; + var rgbValues = new Int32[values]; Marshal.Copy(bmpData.Scan0, rgbValues, 0, values); int index = 0; bool found = false; diff --git a/Vocaluxe/Base/Server/CClientHandler.cs b/Vocaluxe/Base/Server/CClientHandler.cs index a63939f9..7f1bf734 100644 --- a/Vocaluxe/Base/Server/CClientHandler.cs +++ b/Vocaluxe/Base/Server/CClientHandler.cs @@ -1,32 +1,30 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion namespace Vocaluxe.Base.Server { class CClientHandler { - public int ConnectionID; + private int _ConnectionID; public bool LoggedIn; public CClientHandler(int connectionID) { - ConnectionID = connectionID; + _ConnectionID = connectionID; LoggedIn = false; } } diff --git a/Vocaluxe/Base/Server/CCommands.cs b/Vocaluxe/Base/Server/CCommands.cs index ecfa087e..544f443e 100644 --- a/Vocaluxe/Base/Server/CCommands.cs +++ b/Vocaluxe/Base/Server/CCommands.cs @@ -1,22 +1,37 @@ -using System; -using System.Collections.Generic; -using System.Linq; +#region license +// This file is part of Vocaluxe. +// +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. +// +// Vocaluxe 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 Vocaluxe. If not, see . +#endregion + +using System; using System.IO; using System.Text; using System.Security.Cryptography; - using Newtonsoft.Json; namespace Vocaluxe.Base.Server { public static class CCommands { - private static UTF8Encoding encoder = new UTF8Encoding(); - public static SHA256Managed SHA256 = new SHA256Managed(); + private static readonly UTF8Encoding _Encoder = new UTF8Encoding(); + private static readonly SHA256Managed _Sha256 = new SHA256Managed(); public const string BroadcastKeyword = "I am a Vocaluxe Server"; #region Commands + // ReSharper disable UnusedMember.Global public const int ResponseOK = 1; public const int ResponseNOK = 2; @@ -25,7 +40,6 @@ namespace Vocaluxe.Base.Server public const int ResponseLoginFailed = 22; public const int ResponseLoginOK = 23; - public const int CommandSendKeyStroke = 100; public const int CommandSendKeyUp = 110; public const int CommandSendKeyDown = 111; @@ -45,105 +59,92 @@ namespace Vocaluxe.Base.Server public const int CommandSendAvatarPictureJpg = 501; public const int CommandSendProfile = 510; - + // ReSharper restore UnusedMember.Global #endregion Commands #region General - public static byte[] CreateCommandWithoutParams(int Command) + public static byte[] CreateCommandWithoutParams(int command) { - return BitConverter.GetBytes(Command); + return BitConverter.GetBytes(command); } #endregion General #region Login - public static byte[] CreateCommandLogin(string Password) + public static byte[] CreateCommandLogin(string password) { - SLoginData data = new SLoginData(); - data.SHA256 = SHA256.ComputeHash(Encoding.UTF8.GetBytes(Password)); + var data = new SLoginData {Sha256 = _Sha256.ComputeHash(Encoding.UTF8.GetBytes(password))}; - return Serialize(CommandLogin, data); + return _Serialize(CommandLogin, data); } - public static bool DecodeCommandLogin(byte[] Message, out SLoginData LoginData) + public static bool DecodeCommandLogin(byte[] message, out SLoginData loginData) { - return TryDeserialize(Message, out LoginData); + return _TryDeserialize(message, out loginData); } #endregion Login #region Keyboard - #endregion Keyboard #region Profiles - public static byte[] CreateCommandSendAvatarPicture(int Width, int Height, byte[] data) + public static byte[] CreateCommandSendAvatarPicture(int width, int height, byte[] data) { - SAvatarPicture ap = new SAvatarPicture(); - ap.Height = Height; - ap.Width = Width; - ap.data = new byte[data.Length]; - Array.Copy(data, ap.data, data.Length); + var ap = new SAvatarPicture {Height = height, Width = width, Data = new byte[data.Length]}; + Array.Copy(data, ap.Data, data.Length); - return Serialize(CommandSendAvatarPicture, ap); + return _Serialize(CommandSendAvatarPicture, ap); } - public static bool DecodeCommandSendAvatarPicture(byte[] Message, out SAvatarPicture AvatarPicture) + public static bool DecodeCommandSendAvatarPicture(byte[] message, out SAvatarPicture avatarPicture) { - return TryDeserialize(Message, out AvatarPicture); + return _TryDeserialize(message, out avatarPicture); } - public static byte[] CreateCommandSendAvatarPictureJpg(byte[] AvatarJpgData) + public static byte[] CreateCommandSendAvatarPictureJpg(byte[] avatarJpgData) { - SAvatarPicture ap = new SAvatarPicture(); - ap.Height = 0; - ap.Width = 0; - ap.data = new byte[AvatarJpgData.Length]; - Array.Copy(AvatarJpgData, ap.data, AvatarJpgData.Length); + var ap = new SAvatarPicture {Height = 0, Width = 0, Data = new byte[avatarJpgData.Length]}; + Array.Copy(avatarJpgData, ap.Data, avatarJpgData.Length); - return Serialize(CommandSendAvatarPictureJpg, ap); + return _Serialize(CommandSendAvatarPictureJpg, ap); } - public static byte[] CreateCommandSendProfile(byte[] AvatarJpgData, string PlayerName, int Difficulty) + public static byte[] CreateCommandSendProfile(byte[] avatarJpgData, string playerName, int difficulty) { - SAvatarPicture ap = new SAvatarPicture(); - ap.Height = 0; - ap.Width = 0; - ap.data = new byte[AvatarJpgData.Length]; - Array.Copy(AvatarJpgData, ap.data, AvatarJpgData.Length); + var ap = new SAvatarPicture {Height = 0, Width = 0, Data = new byte[avatarJpgData.Length]}; + Array.Copy(avatarJpgData, ap.Data, avatarJpgData.Length); - SProfile profile = new SProfile(); - profile.Avatar = ap; - profile.PlayerName = PlayerName; - profile.Difficulty = Difficulty; + var profile = new SProfile {Avatar = ap, PlayerName = playerName, Difficulty = difficulty}; - return Serialize(CommandSendProfile, profile); + return _Serialize(CommandSendProfile, profile); } - public static bool DecodeCommandSendProfile(byte[] Message, out SProfile Profile) + public static bool DecodeCommandSendProfile(byte[] message, out SProfile profile) { - return TryDeserialize(Message, out Profile); + return _TryDeserialize(message, out profile); } - #endregion Profiles #region Serializing - private static byte[] Serialize(int Command, T obj) + private static byte[] _Serialize(T obj) { - byte[] command = BitConverter.GetBytes(Command); + return _Serialize(0, obj); + } - MemoryStream stream = new MemoryStream(); - stream.Write(command, 0, command.Length); + private static byte[] _Serialize(int command, T obj) + { + byte[] cmd = BitConverter.GetBytes(command); + + var stream = new MemoryStream(); + stream.Write(cmd, 0, cmd.Length); byte[] data; - using (MemoryStream ms = new MemoryStream()) - { - string json = JsonConvert.SerializeObject(obj); - data = encoder.GetBytes(json); - } + string json = JsonConvert.SerializeObject(obj); + data = _Encoder.GetBytes(json); stream.Write(data, 0, data.Length); return stream.ToArray(); } - private static bool TryDeserialize(byte[] message, out T obj) + private static bool _TryDeserialize(byte[] message, out T obj) { obj = default(T); @@ -153,21 +154,18 @@ namespace Vocaluxe.Base.Server if (message.Length < 5) return false; - byte[] data = new byte[message.Length - 4]; + var data = new byte[message.Length - 4]; Array.Copy(message, 4, data, 0, data.Length); - using (MemoryStream ms = new MemoryStream(data)) + try { - try - { - obj = JsonConvert.DeserializeObject(encoder.GetString(data)); - return true; - } - catch - { - return false; - } + obj = JsonConvert.DeserializeObject(_Encoder.GetString(data)); + return true; + } + catch + { + return false; } } #endregion Serializing } -} +} \ No newline at end of file diff --git a/Vocaluxe/Base/Server/CVocaluxeServer.cs b/Vocaluxe/Base/Server/CVocaluxeServer.cs index fb8e1f83..b6c35a2c 100644 --- a/Vocaluxe/Base/Server/CVocaluxeServer.cs +++ b/Vocaluxe/Base/Server/CVocaluxeServer.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -22,9 +20,7 @@ using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.Runtime.InteropServices; -using System.Linq; using System.IO; -using System.Text; using System.Windows.Forms; using ClientServerLib; using Vocaluxe.Lib.Input; @@ -44,10 +40,8 @@ namespace Vocaluxe.Base.Server public static void Init() { _Clients = new Dictionary(); - if (CConfig.ServerEncryption == EOffOn.TR_CONFIG_ON) - _Server = new CServer(RequestHandler, CConfig.ServerPort, CConfig.ServerPassword); - else - _Server = new CServer(RequestHandler, CConfig.ServerPort, String.Empty); + String pw = (CConfig.ServerEncryption == EOffOn.TR_CONFIG_ON) ? CConfig.ServerPassword : String.Empty; + _Server = new CServer(RequestHandler, CConfig.ServerPort, pw); _Discover = new CDiscover(CConfig.ServerPort, CCommands.BroadcastKeyword); Controller.Init(); @@ -84,13 +78,16 @@ namespace Vocaluxe.Base.Server { if (!_Clients.ContainsKey(connectionID)) { - CClientHandler client = new CClientHandler(connectionID); + var client = new CClientHandler(connectionID); _Clients.Add(connectionID, client); } loggedIn = _Clients[connectionID].LoggedIn; } + if (!loggedIn) + return CCommands.CreateCommandWithoutParams(CCommands.ResponseNOK); + int command = BitConverter.ToInt32(message, 0); switch (command) @@ -120,17 +117,17 @@ namespace Vocaluxe.Base.Server SAvatarPicture avatarPicture; if (CCommands.DecodeCommandSendAvatarPicture(message, out avatarPicture)) { - using (Bitmap bmp = new Bitmap(avatarPicture.Width, avatarPicture.Height)) + using (var bmp = new Bitmap(avatarPicture.Width, avatarPicture.Height)) { BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb); - Marshal.Copy(avatarPicture.data, 0, bmpData.Scan0, avatarPicture.data.Length); + Marshal.Copy(avatarPicture.Data, 0, bmpData.Scan0, avatarPicture.Data.Length); bmp.UnlockBits(bmpData); const string filename = "snapshot"; int i = 0; - while (File.Exists(Path.Combine(CSettings.FolderProfiles, filename + i + ".png"))) + while (File.Exists(Path.Combine(CSettings.DataPath, CSettings.FolderProfiles, filename + i + ".png"))) i++; - bmp.Save(Path.Combine(CSettings.FolderProfiles, filename + i + ".png"), ImageFormat.Png); + bmp.Save(Path.Combine(CSettings.DataPath, CSettings.FolderProfiles, filename + i + ".png"), ImageFormat.Png); } answer = CCommands.CreateCommandWithoutParams(CCommands.ResponseOK); @@ -142,7 +139,7 @@ namespace Vocaluxe.Base.Server SAvatarPicture avatarPictureJpg; if (CCommands.DecodeCommandSendAvatarPicture(message, out avatarPictureJpg)) { - if (_AddAvatar(avatarPictureJpg.data) != String.Empty) + if (_AddAvatar(avatarPictureJpg.Data) != String.Empty) answer = CCommands.CreateCommandWithoutParams(CCommands.ResponseOK); } break; @@ -153,10 +150,10 @@ namespace Vocaluxe.Base.Server { try { - string avatarFilename = _AddAvatar(profile.Avatar.data); + string avatarFilename = _AddAvatar(profile.Avatar.Data); if (avatarFilename != String.Empty) { - CProfile p = new CProfile + var p = new CProfile { Active = EOffOn.TR_CONFIG_ON, AvatarFileName = avatarFilename, @@ -182,7 +179,7 @@ namespace Vocaluxe.Base.Server string result = String.Empty; try { - string filename = Path.Combine(CSettings.FolderProfiles, "snapshot"); + string filename = Path.Combine(CSettings.DataPath, CSettings.FolderProfiles, "snapshot"); int i = 0; while (File.Exists(filename + i + ".jpg")) i++; @@ -193,7 +190,7 @@ namespace Vocaluxe.Base.Server fs.Flush(); fs.Close(); - CAvatar avatar = new CAvatar(-1); + var avatar = new CAvatar(-1); if (avatar.LoadFromFile(filename)) { CProfiles.AddAvatar(avatar); diff --git a/Vocaluxe/Base/Server/VocaluxeStructs.cs b/Vocaluxe/Base/Server/VocaluxeStructs.cs index 99b917d2..21aa8f48 100644 --- a/Vocaluxe/Base/Server/VocaluxeStructs.cs +++ b/Vocaluxe/Base/Server/VocaluxeStructs.cs @@ -1,17 +1,32 @@ -using System; +#region license +// This file is part of Vocaluxe. +// +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. +// +// Vocaluxe 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 Vocaluxe. If not, see . +#endregion namespace Vocaluxe.Base.Server { public struct SLoginData { - public byte[] SHA256; + public byte[] Sha256; } public struct SAvatarPicture { public int Width; public int Height; - public byte[] data; + public byte[] Data; } public struct SProfile diff --git a/Vocaluxe/CProgrammHelper.cs b/Vocaluxe/CProgrammHelper.cs new file mode 100644 index 00000000..de0a61a9 --- /dev/null +++ b/Vocaluxe/CProgrammHelper.cs @@ -0,0 +1,99 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.Serialization; +using System.Security; +using System.Text; +using Microsoft.Win32; +using Vocaluxe.Base; + +namespace Vocaluxe +{ + /// + /// Some helper functions for the programm + /// + static class CProgrammHelper + { + private static bool _CheckUninstallKey(string name, string key) + { + using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(key)) + { + if (rk == null) + throw new SecurityException(); + foreach (string skName in rk.GetSubKeyNames()) + { + using (RegistryKey sk = rk.OpenSubKey(skName)) + { + if (sk == null || sk.GetValue("DisplayName") == null) + continue; + string displayName = sk.GetValue("DisplayName").ToString().ToLower(); + if (displayName.Equals(name) || displayName.StartsWith(name) || name.StartsWith(displayName)) + return true; + } + } + } + return false; + } + + /// + /// Checks if a given program is installed by checking the Uninstall registry key. + /// + /// Name of the programm. Got to equal the displayname in the key or one needs to be the start of the other one. NOT case sensitive. + /// + private static bool _IsProgramInstalled(string name) + { + const string uninstallKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"; + const string uninstallKeyx64 = @"SOFTWARE\WoW6432Node\Microsoft\Windows\CurrentVersion\Uninstall"; + name = name.ToLower(); + return _CheckUninstallKey(name, uninstallKey) || _CheckUninstallKey(name, uninstallKeyx64); + } + + private static bool _SystemDllExists(string dllName) + { + const string sysDir = "%windir%\\system32\\"; + return File.Exists(Environment.ExpandEnvironmentVariables(sysDir + dllName + ".dll")); + } + + private static bool _IsVC2012Installed() + { + return _SystemDllExists("msvcr110") && _SystemDllExists("msvcp110"); + } + + private static bool _IsVC2008Installed() + { + return _IsProgramInstalled("Microsoft Visual C++ 2008 Redistributable"); + } + + private static bool _IsVC2010Installed() + { + //Note: Maybe check for x64 or x86 + return _IsProgramInstalled("Microsoft Visual C++ 2010"); + } + + public static bool CheckRequirements() + { + if (!_IsVC2012Installed()) + { + CLog.LogError( + "VC++ 2012 Redistributables are missing. Please install them first.\r\nDownload: http://www.microsoft.com/de-de/download/details.aspx?id=30679", + true, true); + return false; + } + bool vc2008Installed = _IsVC2008Installed(); + if (!vc2008Installed) + { + CLog.LogError( + "VC++ 2008 Redistributables are missing. Portaudio might not be working.\r\nDownload: http://www.microsoft.com/de-de/download/details.aspx?id=29"); + } + if (!vc2008Installed && !_IsVC2010Installed()) + { + CLog.LogError( + "VC++ 2010 and 2008 Redistributables are missing. Please install them first. VC++ 2008 is preferred as Portaudio doesn't work with VC++ 2010.\r\nDownload(2008): http://www.microsoft.com/de-de/download/details.aspx?id=29 \r\nDownload(2010): http://www.microsoft.com/de-de/download/details.aspx?id=5555", + true, true); + return false; + } + return true; + } + } +} \ No newline at end of file diff --git a/Vocaluxe/CSplashScreen.cs b/Vocaluxe/CSplashScreen.cs index 938588e4..cf31ae7b 100644 --- a/Vocaluxe/CSplashScreen.cs +++ b/Vocaluxe/CSplashScreen.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/Vocaluxe/GameModes/CGameMode.cs b/Vocaluxe/GameModes/CGameMode.cs index d945ca73..73f61fdf 100644 --- a/Vocaluxe/GameModes/CGameMode.cs +++ b/Vocaluxe/GameModes/CGameMode.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using Vocaluxe.Base; diff --git a/Vocaluxe/GameModes/CGameModes.cs b/Vocaluxe/GameModes/CGameModes.cs index 5090ff44..a7e7d4b2 100644 --- a/Vocaluxe/GameModes/CGameModes.cs +++ b/Vocaluxe/GameModes/CGameModes.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Collections.Generic; @@ -54,7 +52,7 @@ namespace Vocaluxe.GameModes { protected override CSong _PrepareSong(CSong song) { - return song; + return (song.IsGameModeAvailable(EGameMode.TR_GAMEMODE_NORMAL)) ? song : null; } } @@ -62,7 +60,7 @@ namespace Vocaluxe.GameModes { protected override CSong _PrepareSong(CSong song) { - return (song.IsDuet) ? song : null; + return (song.IsGameModeAvailable(EGameMode.TR_GAMEMODE_DUET)) ? song : null; } } @@ -70,9 +68,11 @@ namespace Vocaluxe.GameModes { protected override CSong _PrepareSong(CSong song) { - CSong newSong = new CSong(song) {Finish = CGame.GetTimeFromBeats(song.ShortEnd, song.BPM) + CSettings.DefaultMedleyFadeOutTime + song.Gap}; + if (!song.IsGameModeAvailable(EGameMode.TR_GAMEMODE_SHORTSONG)) + return null; + var newSong = new CSong(song) {Finish = CGame.GetTimeFromBeats(song.ShortEnd.EndBeat, song.BPM) + CSettings.DefaultMedleyFadeOutTime + song.Gap}; // set lines to short mode - newSong.Notes.SetMedley(song.Notes.GetVoice(0).Lines[0].FirstNoteBeat, song.ShortEnd); + newSong.Notes.SetMedley(0, song.ShortEnd.EndBeat); return newSong; } @@ -82,7 +82,9 @@ namespace Vocaluxe.GameModes { protected override CSong _PrepareSong(CSong song) { - CSong newSong = new CSong(song) {Start = CGame.GetTimeFromBeats(song.Medley.StartBeat, song.BPM) - song.Medley.FadeInTime + song.Gap}; + if (!song.IsGameModeAvailable(EGameMode.TR_GAMEMODE_MEDLEY)) + return null; + var newSong = new CSong(song) {Start = CGame.GetTimeFromBeats(song.Medley.StartBeat, song.BPM) - song.Medley.FadeInTime + song.Gap}; if (newSong.Start < 0f) newSong.Start = 0f; diff --git a/Vocaluxe/GameModes/IGameMode.cs b/Vocaluxe/GameModes/IGameMode.cs index 91504898..a6ed88f6 100644 --- a/Vocaluxe/GameModes/IGameMode.cs +++ b/Vocaluxe/GameModes/IGameMode.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using VocaluxeLib.Songs; diff --git a/Vocaluxe/GlobalSuppressions.cs b/Vocaluxe/GlobalSuppressions.cs index ed290a90..da284174 100644 --- a/Vocaluxe/GlobalSuppressions.cs +++ b/Vocaluxe/GlobalSuppressions.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Diagnostics.CodeAnalysis; diff --git a/Vocaluxe/Lib/Draw/CDirect3D.cs b/Vocaluxe/Lib/Draw/CDirect3D.cs index 0e104ee1..d69d842e 100644 --- a/Vocaluxe/Lib/Draw/CDirect3D.cs +++ b/Vocaluxe/Lib/Draw/CDirect3D.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Drawing.Drawing2D; @@ -448,7 +446,7 @@ namespace Vocaluxe.Lib.Draw if (_Device.SetTextureStageState(0, TextureStage.AlphaOperation, TextureOperation.Modulate).IsFailure) CLog.LogError("Failed to set alpha operation"); - Int16[] indices = new Int16[6]; + var indices = new Int16[6]; indices[0] = 0; indices[1] = 1; indices[2] = 2; @@ -465,7 +463,7 @@ namespace Vocaluxe.Lib.Draw //This creates a new white texture and adds it to the texture pool //This texture is used for the DrawRect method - using (Bitmap blankMap = new Bitmap(1, 1)) + using (var blankMap = new Bitmap(1, 1)) { Graphics g = Graphics.FromImage(blankMap); g.Clear(Color.White); @@ -674,7 +672,7 @@ namespace Vocaluxe.Lib.Draw CTexture texture = _GetNewTexture(_W, _H); Surface backbufferSurface = _Device.GetBackBuffer(0, 0); - Texture tex = new Texture(_Device, texture.W2, texture.H2, 0, Usage.AutoGenerateMipMap, Format.A8R8G8B8, Pool.Managed); + var tex = new Texture(_Device, texture.W2, texture.H2, 0, Usage.AutoGenerateMipMap, Format.A8R8G8B8, Pool.Managed); Surface textureSurface = tex.GetSurfaceLevel(0); Surface.FromSurface(textureSurface, backbufferSurface, Filter.Default, 0, new Rectangle(0, 0, _W, _H), new Rectangle(0, 0, _W, _H)); backbufferSurface.Dispose(); @@ -713,7 +711,7 @@ namespace Vocaluxe.Lib.Draw public void MakeScreenShot() { const string file = "Screenshot_"; - string path = Path.Combine(Environment.CurrentDirectory, CSettings.FolderScreenshots); + string path = Path.Combine(CSettings.DataPath, CSettings.FolderScreenshots); int i = 0; while (File.Exists(Path.Combine(path, file + i.ToString("00000") + ".bmp"))) @@ -722,7 +720,7 @@ namespace Vocaluxe.Lib.Draw //create a surface of the frame using (Surface surface = _Device.GetBackBuffer(0, 0)) { - Bitmap screen = new Bitmap(Surface.ToStream(surface, ImageFileFormat.Bmp)); + var screen = new Bitmap(Surface.ToStream(surface, ImageFileFormat.Bmp)); screen.Save(Path.Combine(path, file + i.ToString("00000") + ".bmp"), ImageFormat.Bmp); screen.Dispose(); } @@ -742,8 +740,8 @@ namespace Vocaluxe.Lib.Draw /// The end y-value public void DrawLine(int a, int r, int g, int b, int w, int x1, int y1, int x2, int y2) { - Vector2[] lineVector = new Vector2[] {new Vector2(x1, y1), new Vector2(x2, y2)}; - using (Line line = new Line(_Device)) + var lineVector = new Vector2[] {new Vector2(x1, y1), new Vector2(x2, y2)}; + using (var line = new Line(_Device)) { line.Antialias = true; line.Begin(); @@ -850,7 +848,7 @@ namespace Vocaluxe.Lib.Draw w = _CheckForNextPowerOf2(w); h = _CheckForNextPowerOf2(h); - CTexture texture = new CTexture(bmp.Width, bmp.Height, w, h, true); + var texture = new CTexture(bmp.Width, bmp.Height, w, h, true); Bitmap bmp2 = null; byte[] data; @@ -907,7 +905,7 @@ namespace Vocaluxe.Lib.Draw { //Create a new texture in the managed pool, which does not need to be recreated on a lost device //because a copy of the texture is hold in the Ram - Texture t = new Texture(_Device, textureW, textureH, 0, Usage.AutoGenerateMipMap, Format.A8R8G8B8, Pool.Managed); + var t = new Texture(_Device, textureW, textureH, 0, Usage.AutoGenerateMipMap, Format.A8R8G8B8, Pool.Managed); _WriteDataToTexture(t, w, data); return t; } @@ -939,7 +937,7 @@ namespace Vocaluxe.Lib.Draw { texture.ID = _IDs.Dequeue(); _D3DTextures.Add(texture.ID, null); - STextureQueue queue = new STextureQueue(texture.ID, texture.W2, texture.H2, w, h, data); + var queue = new STextureQueue(texture.ID, texture.W2, texture.H2, w, h, data); _TexturesToLoad.Enqueue(queue); } return texture; @@ -1122,7 +1120,7 @@ namespace Vocaluxe.Lib.Draw if (!mirrored) { - STexturedColoredVertex[] vert = new STexturedColoredVertex[4]; + var vert = new STexturedColoredVertex[4]; vert[0] = new STexturedColoredVertex(new Vector3(rx1, -ry1, rect.Z + CGraphics.ZOffset), new Vector2(x1, y1), c.ToArgb()); vert[1] = new STexturedColoredVertex(new Vector3(rx1, -ry2, rect.Z + CGraphics.ZOffset), new Vector2(x1, y2), c.ToArgb()); vert[2] = new STexturedColoredVertex(new Vector3(rx2, -ry2, rect.Z + CGraphics.ZOffset), new Vector2(x2, y2), c.ToArgb()); @@ -1131,7 +1129,7 @@ namespace Vocaluxe.Lib.Draw } else { - STexturedColoredVertex[] vert = new STexturedColoredVertex[4]; + var vert = new STexturedColoredVertex[4]; vert[0] = new STexturedColoredVertex(new Vector3(rx1, -ry1, rect.Z + CGraphics.ZOffset), new Vector2(x1, -y1), c.ToArgb()); vert[1] = new STexturedColoredVertex(new Vector3(rx1, -ry2, rect.Z + CGraphics.ZOffset), new Vector2(x1, -y2), c.ToArgb()); vert[2] = new STexturedColoredVertex(new Vector3(rx2, -ry2, rect.Z + CGraphics.ZOffset), new Vector2(x2, -y2), c.ToArgb()); @@ -1175,7 +1173,7 @@ namespace Vocaluxe.Lib.Draw Color c = color.AsColor(); - STexturedColoredVertex[] vert = new STexturedColoredVertex[4]; + var vert = new STexturedColoredVertex[4]; vert[0] = new STexturedColoredVertex(new Vector3(rx1, -ry1, rect.Z + CGraphics.ZOffset), new Vector2(x1, y1), c.ToArgb()); vert[1] = new STexturedColoredVertex(new Vector3(rx1, -ry2, rect.Z + CGraphics.ZOffset), new Vector2(x1, y2), c.ToArgb()); vert[2] = new STexturedColoredVertex(new Vector3(rx2, -ry2, rect.Z + CGraphics.ZOffset), new Vector2(x2, y2), c.ToArgb()); @@ -1258,7 +1256,7 @@ namespace Vocaluxe.Lib.Draw color.A = 0; Color transparent = color.AsColor(); - STexturedColoredVertex[] vert = new STexturedColoredVertex[4]; + var vert = new STexturedColoredVertex[4]; vert[0] = new STexturedColoredVertex(new Vector3(rx1, -ry1, rect.Z + CGraphics.ZOffset), new Vector2(x1, y2), c.ToArgb()); vert[1] = new STexturedColoredVertex(new Vector3(rx1, -ry2, rect.Z + CGraphics.ZOffset), new Vector2(x1, y1), transparent.ToArgb()); vert[2] = new STexturedColoredVertex(new Vector3(rx2, -ry2, rect.Z + CGraphics.ZOffset), new Vector2(x2, y1), transparent.ToArgb()); diff --git a/Vocaluxe/Lib/Draw/CDrawWinForm.cs b/Vocaluxe/Lib/Draw/CDrawWinForm.cs index 0c0c9ac1..e6bfb1ed 100644 --- a/Vocaluxe/Lib/Draw/CDrawWinForm.cs +++ b/Vocaluxe/Lib/Draw/CDrawWinForm.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -289,7 +287,7 @@ namespace Vocaluxe.Lib.Draw public CTexture CopyScreen() { - Bitmap bmp = new Bitmap(_Backbuffer); + var bmp = new Bitmap(_Backbuffer); _Bitmaps.Add(bmp); CTexture texture = _GetNewTexture(bmp.Width, bmp.Height); @@ -313,7 +311,7 @@ namespace Vocaluxe.Lib.Draw public void MakeScreenShot() { const string file = "Screenshot_"; - string path = Path.Combine(Environment.CurrentDirectory, CSettings.FolderScreenshots); + string path = Path.Combine(CSettings.DataPath, CSettings.FolderScreenshots); int i = 0; while (File.Exists(Path.Combine(path, file + i.ToString("00000") + ".png"))) @@ -333,7 +331,7 @@ namespace Vocaluxe.Lib.Draw public CTexture AddTexture(Bitmap bmp) { - Bitmap bmp2 = new Bitmap(bmp); + var bmp2 = new Bitmap(bmp); _Bitmaps.Add(bmp2); CTexture texture = _GetNewTexture(bmp.Width, bmp.Height); @@ -357,7 +355,7 @@ namespace Vocaluxe.Lib.Draw if (tex.TexturePath == texturePath) return tex; } - using (Bitmap bmp = new Bitmap(texturePath)) + using (var bmp = new Bitmap(texturePath)) { CTexture texture = AddTexture(bmp); texture.TexturePath = texturePath; @@ -389,7 +387,7 @@ namespace Vocaluxe.Lib.Draw public CTexture AddTexture(int w, int h, byte[] data) { - using (Bitmap bmp = new Bitmap(w, h)) + using (var bmp = new Bitmap(w, h)) { BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); Marshal.Copy(data, 0, bmpData.Scan0, data.Length); @@ -459,13 +457,13 @@ namespace Vocaluxe.Lib.Draw private static Bitmap _ColorizeBitmap(Bitmap original, SColorF color) { - Bitmap newBitmap = new Bitmap(original.Width, original.Height); + var newBitmap = new Bitmap(original.Width, original.Height); using (Graphics g = Graphics.FromImage(newBitmap)) { - ColorMatrix cm = new ColorMatrix {Matrix33 = color.A, Matrix00 = color.R, Matrix11 = color.G, Matrix22 = color.B, Matrix44 = 1}; + var cm = new ColorMatrix {Matrix33 = color.A, Matrix00 = color.R, Matrix11 = color.G, Matrix22 = color.B, Matrix44 = 1}; - using (ImageAttributes ia = new ImageAttributes()) + using (var ia = new ImageAttributes()) { ia.SetColorMatrix(cm); diff --git a/Vocaluxe/Lib/Draw/COpenGL.cs b/Vocaluxe/Lib/Draw/COpenGL.cs index e2cc99d8..cb00e26f 100644 --- a/Vocaluxe/Lib/Draw/COpenGL.cs +++ b/Vocaluxe/Lib/Draw/COpenGL.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Drawing.Drawing2D; @@ -124,7 +122,7 @@ namespace Vocaluxe.Lib.Draw bool ok = false; try { - GraphicsMode gm = new GraphicsMode(32, 24, 0, (int)CConfig.AAMode); + var gm = new GraphicsMode(32, 24, 0, (int)CConfig.AAMode); _Control = new GLControl(gm, 2, 1, GraphicsContextFlags.Default); if (_Control.GraphicsMode != null) ok = true; @@ -473,7 +471,7 @@ namespace Vocaluxe.Lib.Draw Close(); } catch {} - CTexture[] textures = new CTexture[_Textures.Count]; + var textures = new CTexture[_Textures.Count]; _Textures.Values.CopyTo(textures, 0); for (int i = 0; i < _Textures.Count; i++) RemoveTexture(ref textures[i]); @@ -543,7 +541,7 @@ namespace Vocaluxe.Lib.Draw public void MakeScreenShot() { const string file = "Screenshot_"; - string path = Path.Combine(Environment.CurrentDirectory, CSettings.FolderScreenshots); + string path = Path.Combine(CSettings.DataPath, CSettings.FolderScreenshots); int i = 0; while (File.Exists(Path.Combine(path, file + i.ToString("00000") + ".bmp"))) @@ -552,7 +550,7 @@ namespace Vocaluxe.Lib.Draw int width = GetScreenWidth(); int height = GetScreenHeight(); - using (Bitmap screen = new Bitmap(width, height)) + using (var screen = new Bitmap(width, height)) { BitmapData bmpData = screen.LockBits(new Rectangle(0, 0, width, height), ImageLockMode.WriteOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb); @@ -707,7 +705,7 @@ namespace Vocaluxe.Lib.Draw w = MathHelper.NextPowerOfTwo(w); h = MathHelper.NextPowerOfTwo(h); - CTexture texture = new CTexture(bmp.Width, bmp.Height, w, h, true) {Name = GL.GenTexture()}; + var texture = new CTexture(bmp.Width, bmp.Height, w, h, true) {Name = GL.GenTexture()}; GL.BindTexture(TextureTarget.Texture2D, texture.Name); Bitmap bmp2 = null; @@ -813,7 +811,7 @@ namespace Vocaluxe.Lib.Draw lock (_MutexTexture) { texture.ID = _IDs.Dequeue(); - STextureQueue queue = new STextureQueue(texture.ID, texture.W2, texture.H2, w, h, data); + var queue = new STextureQueue(texture.ID, texture.W2, texture.H2, w, h, data); _TexturesToLoad.Enqueue(queue); _Textures[texture.ID] = texture; } diff --git a/Vocaluxe/Lib/Draw/IDraw.cs b/Vocaluxe/Lib/Draw/IDraw.cs index 1eab8eb2..f5e3fad3 100644 --- a/Vocaluxe/Lib/Draw/IDraw.cs +++ b/Vocaluxe/Lib/Draw/IDraw.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Drawing; diff --git a/Vocaluxe/Lib/Input/CControllerFramework.cs b/Vocaluxe/Lib/Input/CControllerFramework.cs index c978a247..265c0858 100644 --- a/Vocaluxe/Lib/Input/CControllerFramework.cs +++ b/Vocaluxe/Lib/Input/CControllerFramework.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/Vocaluxe/Lib/Input/CHIDAPI.cs b/Vocaluxe/Lib/Input/CHIDAPI.cs index d90e50d7..3252373c 100644 --- a/Vocaluxe/Lib/Input/CHIDAPI.cs +++ b/Vocaluxe/Lib/Input/CHIDAPI.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -23,20 +21,20 @@ using Vocaluxe.Base; namespace Vocaluxe.Lib.Input { - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] + [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct SHIDDeviceInfo { // ReSharper disable MemberCanBePrivate.Global [MarshalAs(UnmanagedType.LPTStr)] public readonly String Path; public readonly ushort VendorString; public readonly ushort ProductID; - public readonly String SerialNumber; + [MarshalAs(UnmanagedType.LPWStr)] public readonly String SerialNumber; public readonly ushort ReleaseNumber; - public readonly String ManufacturerString; - public readonly String ProductString; + [MarshalAs(UnmanagedType.LPWStr)] public readonly String ManufacturerString; + [MarshalAs(UnmanagedType.LPWStr)] public readonly String ProductString; public readonly ushort UsagePage; public readonly ushort Usage; - public readonly int InterfaceNumber; + [MarshalAs(UnmanagedType.LPWStr)] public readonly int InterfaceNumber; internal IntPtr Next; // ReSharper restore MemberCanBePrivate.Global } @@ -160,11 +158,9 @@ namespace Vocaluxe.Lib.Input [DllImport(_HIDApiDll, ExactSpelling = false, CallingConvention = CallingConvention.Cdecl, EntryPoint = "hid_read_timeout", CharSet = CharSet.Unicode)] private static extern int hid_read_timeout(IntPtr device, IntPtr data, int length, int milliseconds); - public static int ReadTimeout(IntPtr device, out byte[] data, int length, int milliseconds) + public static int ReadTimeout(IntPtr device, ref byte[] data, int length, int milliseconds) { - data = new byte[length]; IntPtr dataPtr = Marshal.AllocHGlobal(length); - int result; try { @@ -182,6 +178,7 @@ namespace Vocaluxe.Lib.Input data = null; Marshal.FreeHGlobal(dataPtr); + return result; } diff --git a/Vocaluxe/Lib/Input/IController.cs b/Vocaluxe/Lib/Input/IController.cs index 2a361f40..7ad6c39b 100644 --- a/Vocaluxe/Lib/Input/IController.cs +++ b/Vocaluxe/Lib/Input/IController.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/Vocaluxe/Lib/Input/WiiMote/CWiiMote.cs b/Vocaluxe/Lib/Input/WiiMote/CWiiMote.cs index 6fffb49c..d10c38e7 100644 --- a/Vocaluxe/Lib/Input/WiiMote/CWiiMote.cs +++ b/Vocaluxe/Lib/Input/WiiMote/CWiiMote.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -71,6 +69,7 @@ namespace Vocaluxe.Lib.Input.WiiMote public void Close() { _Active = false; + _WiiMote.Disconnect(); } public void Connect() @@ -204,7 +203,7 @@ namespace Vocaluxe.Lib.Input.WiiMote bool lb = false; bool rb = gesture == EGesture.Back; - Keys key = Keys.None; + var key = Keys.None; if (ws.ButtonState.A && !_ButtonStates[0]) lb = true; @@ -246,7 +245,7 @@ namespace Vocaluxe.Lib.Input.WiiMote if (key != Keys.None) { - SKeyEvent pool = new SKeyEvent(ESender.WiiMote, false, false, false, false, char.MinValue, key); + var pool = new SKeyEvent(ESender.WiiMote, false, false, false, false, char.MinValue, key); lock (_KeyCopyLock) { @@ -260,8 +259,8 @@ namespace Vocaluxe.Lib.Input.WiiMote float rx = ((p.X / 1024f) - reducing) * factor; float ry = ((p.Y / 768f) - reducing) * factor; - int x = (int)(rx * CSettings.RenderW); - int y = (int)(ry * CSettings.RenderH); + var x = (int)(rx * CSettings.RenderW); + var y = (int)(ry * CSettings.RenderH); bool lbh = !lb && ws.ButtonState.A; @@ -272,7 +271,7 @@ namespace Vocaluxe.Lib.Input.WiiMote if (gesture == EGesture.ScrollDown) wheel = 1; - SMouseEvent mpool = new SMouseEvent(); + var mpool = new SMouseEvent(); bool trigger = false; if (!lb && !rb && (p.X != _OldPosition.X || p.Y != _OldPosition.Y)) diff --git a/Vocaluxe/Lib/Input/WiiMote/WiiMoteLib.cs b/Vocaluxe/Lib/Input/WiiMote/WiiMoteLib.cs index b4e234c9..7b1449d5 100644 --- a/Vocaluxe/Lib/Input/WiiMote/WiiMoteLib.cs +++ b/Vocaluxe/Lib/Input/WiiMote/WiiMoteLib.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -182,7 +180,7 @@ namespace Vocaluxe.Lib.Input.WiiMote private readonly Thread _Reader; private bool _Active; - private bool _Error; + private readonly bool _Error; public bool Connected { get; private set; } @@ -198,6 +196,16 @@ namespace Vocaluxe.Lib.Input.WiiMote _Error = false; _Reader = new Thread(_ReaderLoop); _Reader.Start(); + + if (!CHIDApi.Init()) + { + CLog.LogError("WiiMoteLib: Can't initialize HID API"); + const string msg = "Please install the Visual C++ Redistributable Packages 2008!"; + CLog.LogError(msg); + + _Active = false; + _Error = true; + } } ~CWiiMoteLib() @@ -224,25 +232,31 @@ namespace Vocaluxe.Lib.Input.WiiMote if (_Error) return false; - CHIDApi.Exit(); - - if (!CHIDApi.Init()) - { - CLog.LogError("WiiMoteLib: Can't initialize HID API"); - const string msg = "Please install the Visual C++ Redistributable Packages 2008!"; - CLog.LogError(msg); - - _Active = false; - _Error = true; - return false; - } - //Try WiiMotion - Connected = _TryConnect(_PID); + Connected = CHIDApi.Open(_VID, _PID, out _Handle); + if (Connected) + { + Connected = _ReadCalibration(); + if (!Connected) + CHIDApi.Close(_Handle); + } + else + CHIDApi.Close(_Handle); + + if (Connected) + return true; //Try WiiMotion Plus - if (!Connected) - Connected = _TryConnect(_PIDPlus); + Connected = CHIDApi.Open(_VID, _PIDPlus, out _Handle); + if (Connected) + { + Connected = _ReadCalibration(); + if (!Connected) + CHIDApi.Close(_Handle); + } + else + CHIDApi.Close(_Handle); + return Connected; } @@ -320,11 +334,11 @@ namespace Vocaluxe.Lib.Input.WiiMote if (_Handle != IntPtr.Zero && Connected) { - byte[] buff = new byte[_ReportLength]; + var buff = new byte[_ReportLength]; try { - CHIDApi.ReadTimeout(_Handle, out buff, _ReportLength, 100); + CHIDApi.ReadTimeout(_Handle, ref buff, _ReportLength, 200); } catch (Exception e) { @@ -348,7 +362,7 @@ namespace Vocaluxe.Lib.Input.WiiMote return false; } - EInputReport type = (EInputReport)buff[0]; + var type = (EInputReport)buff[0]; switch (type) { diff --git a/Vocaluxe/Lib/Playlist/CPlaylistFile.cs b/Vocaluxe/Lib/Playlist/CPlaylistFile.cs index ddf4849e..6c7f5228 100644 --- a/Vocaluxe/Lib/Playlist/CPlaylistFile.cs +++ b/Vocaluxe/Lib/Playlist/CPlaylistFile.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -75,14 +73,14 @@ namespace Vocaluxe.Lib.Playlist filename = "1"; int i = 0; - while (File.Exists(Path.Combine(CSettings.FolderPlaylists, filename + ".xml"))) + while (File.Exists(Path.Combine(CSettings.DataPath, CSettings.FolderPlaylists, filename + ".xml"))) { i++; - if (!File.Exists(Path.Combine(CSettings.FolderPlaylists, filename + i + ".xml"))) + if (!File.Exists(Path.Combine(CSettings.DataPath, CSettings.FolderPlaylists, filename + i + ".xml"))) filename += i; } - PlaylistFile = Path.Combine(CSettings.FolderPlaylists, filename + ".xml"); + PlaylistFile = Path.Combine(CSettings.DataPath, CSettings.FolderPlaylists, filename + ".xml"); } XmlWriter writer; @@ -147,7 +145,7 @@ namespace Vocaluxe.Lib.Playlist Songs = new List(); List songs = xmlReader.GetValues("Songs"); - EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL; + var gm = EGameMode.TR_GAMEMODE_NORMAL; foreach (string song in songs) { @@ -157,7 +155,7 @@ namespace Vocaluxe.Lib.Playlist xmlReader.GetValue("//root/Songs/" + song + "/Title", out title, String.Empty); xmlReader.TryGetEnumValue("//root/Songs/" + song + "/GameMode", ref gm); - CPlaylistSong playlistSong = new CPlaylistSong {SongID = -1}; + var playlistSong = new CPlaylistSong {SongID = -1}; foreach (CSong curSong in CSongs.AllSongs) { @@ -182,14 +180,18 @@ namespace Vocaluxe.Lib.Playlist public void AddSong(int songID) { - CPlaylistSong song = new CPlaylistSong {SongID = songID, GameMode = CSongs.GetSong(songID).IsDuet ? EGameMode.TR_GAMEMODE_DUET : EGameMode.TR_GAMEMODE_NORMAL}; + var song = new CPlaylistSong + { + SongID = songID, + GameMode = CSongs.GetSong(songID).IsGameModeAvailable(EGameMode.TR_GAMEMODE_DUET) ? EGameMode.TR_GAMEMODE_DUET : EGameMode.TR_GAMEMODE_NORMAL + }; Songs.Add(song); } public void AddSong(int songID, EGameMode gm) { - CPlaylistSong song = new CPlaylistSong {SongID = songID, GameMode = gm}; + var song = new CPlaylistSong {SongID = songID, GameMode = gm}; Songs.Add(song); } @@ -216,7 +218,7 @@ namespace Vocaluxe.Lib.Playlist if (sourceNr < 0 || destNr < 0 || sourceNr == destNr || sourceNr > Songs.Count - 1 || destNr > Songs.Count - 1) return; - CPlaylistSong ps = new CPlaylistSong(Songs[sourceNr]); + var ps = new CPlaylistSong(Songs[sourceNr]); Songs.RemoveAt(sourceNr); Songs.Insert(destNr, ps); } @@ -226,7 +228,7 @@ namespace Vocaluxe.Lib.Playlist if (destNr < 0 || destNr > Songs.Count - 1) return; - CPlaylistSong ps = new CPlaylistSong(songID, gm); + var ps = new CPlaylistSong(songID, gm); Songs.Insert(destNr, ps); } } diff --git a/Vocaluxe/Lib/Sound/CDirectSoundRecord.cs b/Vocaluxe/Lib/Sound/CDirectSoundRecord.cs index fad206a4..15fcc291 100644 --- a/Vocaluxe/Lib/Sound/CDirectSoundRecord.cs +++ b/Vocaluxe/Lib/Sound/CDirectSoundRecord.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Collections.ObjectModel; @@ -53,9 +51,9 @@ namespace Vocaluxe.Lib.Sound int id = 0; foreach (DeviceInformation dev in devices) { - using (DirectSoundCapture ds = new DirectSoundCapture(dev.DriverGuid)) + using (var ds = new DirectSoundCapture(dev.DriverGuid)) { - CRecordDevice device = new CRecordDevice {Driver = dev.DriverGuid.ToString(), ID = id, Name = dev.Description, Channels = ds.Capabilities.Channels}; + var device = new CRecordDevice {Driver = dev.DriverGuid.ToString(), ID = id, Name = dev.Description, Channels = ds.Capabilities.Channels}; if (device.Channels > 2) device.Channels = 2; //more are not supported in vocaluxe @@ -89,9 +87,9 @@ namespace Vocaluxe.Lib.Sound foreach (CBuffer buffer in _Buffer) buffer.Reset(); - bool[] active = new bool[_Devices.Count]; - Guid[] guid = new Guid[_Devices.Count]; - short[] channels = new short[_Devices.Count]; + var active = new bool[_Devices.Count]; + var guid = new Guid[_Devices.Count]; + var channels = new short[_Devices.Count]; for (int dev = 0; dev < _Devices.Count; dev++) { active[dev] = false; @@ -105,7 +103,7 @@ namespace Vocaluxe.Lib.Sound { if (active[i]) { - CSoundCardSource source = new CSoundCardSource(guid[i], channels[i]) {SampleRateKhz = 44.1}; + var source = new CSoundCardSource(guid[i], channels[i]) {SampleRateKhz = 44.1}; source.SampleDataReady += _OnDataReady; source.Start(); @@ -209,8 +207,8 @@ namespace Vocaluxe.Lib.Sound { if (_Initialized) { - byte[] leftBuffer = new byte[e.Data.Length / 2]; - byte[] rightBuffer = new byte[e.Data.Length / 2]; + var leftBuffer = new byte[e.Data.Length / 2]; + var rightBuffer = new byte[e.Data.Length / 2]; //[]: Sample, L: Left channel R: Right channel //[LR][LR][LR][LR][LR][LR] @@ -318,7 +316,7 @@ namespace Vocaluxe.Lib.Sound for (int i = 0; i < _BufferPortionCount; i++) { - NotificationPosition notification = new NotificationPosition {Offset = _BufferPortionCount - 1 + (_BufferPortionSize * i), Event = new AutoResetEvent(false)}; + var notification = new NotificationPosition {Offset = _BufferPortionCount - 1 + (_BufferPortionSize * i), Event = new AutoResetEvent(false)}; _Notifications.Add(notification); } @@ -371,7 +369,7 @@ namespace Vocaluxe.Lib.Sound int bufferPortionSamples = _BufferPortionSize / sizeof(byte); // Buffer type must match this.waveFormat.FormatTag and this.waveFormat.BitsPerSample - byte[] bufferPortion = new byte[bufferPortionSamples]; + var bufferPortion = new byte[bufferPortionSamples]; _CaptureBuffer.Start(true); diff --git a/Vocaluxe/Lib/Sound/CGstreamerAudio.cs b/Vocaluxe/Lib/Sound/CGstreamerAudio.cs index 998bdbde..77629f1b 100644 --- a/Vocaluxe/Lib/Sound/CGstreamerAudio.cs +++ b/Vocaluxe/Lib/Sound/CGstreamerAudio.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -65,14 +63,14 @@ namespace Vocaluxe.Lib.Sound public int Load(string media) { - Uri u = new Uri(media); + var u = new Uri(media); int i = CGstreamerAudioWrapper.Load(u.AbsoluteUri); return i; } public int Load(string media, bool prescan) { - Uri u = new Uri(media); + var u = new Uri(media); int i = CGstreamerAudioWrapper.Load(u.AbsoluteUri, prescan); return i; } diff --git a/Vocaluxe/Lib/Sound/COpenALPlay.cs b/Vocaluxe/Lib/Sound/COpenALPlay.cs index 36017220..29ea7c75 100644 --- a/Vocaluxe/Lib/Sound/COpenALPlay.cs +++ b/Vocaluxe/Lib/Sound/COpenALPlay.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Linq; @@ -106,8 +104,8 @@ namespace Vocaluxe.Lib.Sound public int Load(string media, bool prescan) { - SAudioStreams stream = new SAudioStreams(0); - COpenAlStream decoder = new COpenAlStream(); + var stream = new SAudioStreams(0); + var decoder = new COpenAlStream(); if (decoder.Open(media) > -1) { @@ -595,7 +593,7 @@ namespace Vocaluxe.Lib.Sound _CurrentTime = 0f; _Timer.Reset(); - SAudioStreams stream = new SAudioStreams(0) {Handle = _Buffers[0]}; + var stream = new SAudioStreams(0) {Handle = _Buffers[0]}; if (stream.Handle != 0) { @@ -782,7 +780,7 @@ namespace Vocaluxe.Lib.Sound return; } - byte[] buf = new byte[_BufferSize]; + var buf = new byte[_BufferSize]; lock (_MutexData) { @@ -793,7 +791,7 @@ namespace Vocaluxe.Lib.Sound _Data.Read(buf); - byte[] b = new byte[2]; + var b = new byte[2]; for (int i = 0; i < buf.Length; i += _ByteCount) { b[0] = buf[i]; diff --git a/Vocaluxe/Lib/Sound/CPortAudioPlay.cs b/Vocaluxe/Lib/Sound/CPortAudioPlay.cs index 9c195495..94158c71 100644 --- a/Vocaluxe/Lib/Sound/CPortAudioPlay.cs +++ b/Vocaluxe/Lib/Sound/CPortAudioPlay.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -91,8 +89,8 @@ namespace Vocaluxe.Lib.Sound public int Load(string media, bool prescan) { - SAudioStreams stream = new SAudioStreams(0); - CPortAudioStream decoder = new CPortAudioStream(); + var stream = new SAudioStreams(0); + var decoder = new CPortAudioStream(); if (decoder.Open(media) > -1) { @@ -599,11 +597,11 @@ namespace Vocaluxe.Lib.Sound _CurrentTime = 0f; _SyncTimer.Time = _CurrentTime; - SAudioStreams stream = new SAudioStreams(0); + var stream = new SAudioStreams(0); - IntPtr data = new IntPtr(0); + var data = new IntPtr(0); - CPortAudio.SPaStreamParameters outputParams = new CPortAudio.SPaStreamParameters + var outputParams = new CPortAudio.SPaStreamParameters { ChannelCount = format.ChannelCount, Device = _ApiInfo.DefaultOutputDevice, @@ -611,7 +609,7 @@ namespace Vocaluxe.Lib.Sound SuggestedLatency = _OutputDeviceInfo.DefaultLowOutputLatency }; - uint bufsize = (uint)CConfig.AudioBufferSize; + var bufsize = (uint)CConfig.AudioBufferSize; lock (_Mutex) { _ErrorCheck("OpenDefaultStream (playback)", CPortAudio.Pa_OpenStream( @@ -797,7 +795,7 @@ namespace Vocaluxe.Lib.Sound CPortAudio.EPaStreamCallbackFlags statusFlags, IntPtr userData) { - byte[] buf = new byte[frameCount * _ByteCount]; + var buf = new byte[frameCount * _ByteCount]; if (_Paused) { @@ -818,7 +816,7 @@ namespace Vocaluxe.Lib.Sound { _Data.Read(buf); - byte[] b = new byte[2]; + var b = new byte[2]; for (int i = 0; i < buf.Length; i += _ByteCount) { b[0] = buf[i]; diff --git a/Vocaluxe/Lib/Sound/CPortAudioRecord.cs b/Vocaluxe/Lib/Sound/CPortAudioRecord.cs index 0f51fa31..982d63bb 100644 --- a/Vocaluxe/Lib/Sound/CPortAudioRecord.cs +++ b/Vocaluxe/Lib/Sound/CPortAudioRecord.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Collections.ObjectModel; @@ -73,7 +71,7 @@ namespace Vocaluxe.Lib.Sound CPortAudio.SPaDeviceInfo info = CPortAudio.PaGetDeviceInfo(i); if (info.HostApi == hostAPI && info.MaxInputChannels > 0) { - CRecordDevice dev = new CRecordDevice {ID = i, Name = info.Name, Driver = info.Name + i, Channels = info.MaxInputChannels}; + var dev = new CRecordDevice {ID = i, Name = info.Name, Driver = info.Name + i, Channels = info.MaxInputChannels}; if (dev.Channels > 2) dev.Channels = 2; //more are not supported in vocaluxe @@ -123,7 +121,7 @@ namespace Vocaluxe.Lib.Sound for (int i = 0; i < _RecHandle.Length; i++) _RecHandle[i] = IntPtr.Zero; - bool[] active = new bool[_Devices.Count]; + var active = new bool[_Devices.Count]; for (int dev = 0; dev < _Devices.Count; dev++) { active[dev] = false; @@ -135,7 +133,7 @@ namespace Vocaluxe.Lib.Sound { if (active[i]) { - CPortAudio.SPaStreamParameters inputParams = new CPortAudio.SPaStreamParameters + var inputParams = new CPortAudio.SPaStreamParameters { ChannelCount = _Devices[i].Channels, Device = _Devices[i].ID, @@ -283,9 +281,9 @@ namespace Vocaluxe.Lib.Sound frameCount *= 4; if (frameCount > 0 && input != IntPtr.Zero) { - byte[] recbuffer = new byte[frameCount]; - byte[] leftBuffer = new byte[frameCount / 2]; - byte[] rightBuffer = new byte[frameCount / 2]; + var recbuffer = new byte[frameCount]; + var leftBuffer = new byte[frameCount / 2]; + var rightBuffer = new byte[frameCount / 2]; // copy from managed to unmanaged memory Marshal.Copy(input, recbuffer, 0, (int)frameCount); diff --git a/Vocaluxe/Lib/Sound/Decoder/CAudioDecoderFFmpeg.cs b/Vocaluxe/Lib/Sound/Decoder/CAudioDecoderFFmpeg.cs index 15e06b56..d1503dfc 100644 --- a/Vocaluxe/Lib/Sound/Decoder/CAudioDecoderFFmpeg.cs +++ b/Vocaluxe/Lib/Sound/Decoder/CAudioDecoderFFmpeg.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -124,7 +122,7 @@ namespace Vocaluxe.Lib.Sound.Decoder public float GetLength() { - return _FileOpened ? _Instance.Info.Duration / 1000f:0; + return _FileOpened ? _Instance.Info.Duration / 1000f : 0; } public void SetPosition(float time) @@ -134,7 +132,7 @@ namespace Vocaluxe.Lib.Sound.Decoder try { - CAcinerella.AcSeek(_Audiodecoder, (time>_CurrentTime)?0:-1, (Int64)(time * 1000f)); + CAcinerella.AcSeek(_Audiodecoder, (time > _CurrentTime) ? 0 : -1, (Int64)(time * 1000f)); } catch (Exception) { @@ -161,7 +159,7 @@ namespace Vocaluxe.Lib.Sound.Decoder if (frameFinished) { - SACDecoder decoder = (SACDecoder)Marshal.PtrToStructure(_Audiodecoder, typeof(SACDecoder)); + var decoder = (SACDecoder)Marshal.PtrToStructure(_Audiodecoder, typeof(SACDecoder)); timeStamp = (float)decoder.Timecode; _CurrentTime = timeStamp; diff --git a/Vocaluxe/Lib/Sound/Decoder/IAudioDecoder.cs b/Vocaluxe/Lib/Sound/Decoder/IAudioDecoder.cs index 5ebcda20..7308ba09 100644 --- a/Vocaluxe/Lib/Sound/Decoder/IAudioDecoder.cs +++ b/Vocaluxe/Lib/Sound/Decoder/IAudioDecoder.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion namespace Vocaluxe.Lib.Sound.Decoder diff --git a/Vocaluxe/Lib/Sound/Gstreamer/CGstreamerAudioWrapper.cs b/Vocaluxe/Lib/Sound/Gstreamer/CGstreamerAudioWrapper.cs index 737c0010..e4db4114 100644 --- a/Vocaluxe/Lib/Sound/Gstreamer/CGstreamerAudioWrapper.cs +++ b/Vocaluxe/Lib/Sound/Gstreamer/CGstreamerAudioWrapper.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Runtime.InteropServices; diff --git a/Vocaluxe/Lib/Sound/IPlayback.cs b/Vocaluxe/Lib/Sound/IPlayback.cs index e021692f..369af995 100644 --- a/Vocaluxe/Lib/Sound/IPlayback.cs +++ b/Vocaluxe/Lib/Sound/IPlayback.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion namespace Vocaluxe.Lib.Sound diff --git a/Vocaluxe/Lib/Sound/IRecord.cs b/Vocaluxe/Lib/Sound/IRecord.cs index e7de0ce8..f4568a93 100644 --- a/Vocaluxe/Lib/Sound/IRecord.cs +++ b/Vocaluxe/Lib/Sound/IRecord.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/Vocaluxe/Lib/Sound/Portaudio/PortAudio.cs b/Vocaluxe/Lib/Sound/Portaudio/PortAudio.cs index 8b357690..d8c6c9f5 100644 --- a/Vocaluxe/Lib/Sound/Portaudio/PortAudio.cs +++ b/Vocaluxe/Lib/Sound/Portaudio/PortAudio.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/Vocaluxe/Lib/Video/Acinerella/CAcinerella.cs b/Vocaluxe/Lib/Video/Acinerella/CAcinerella.cs index bfc814c9..29ae5278 100644 --- a/Vocaluxe/Lib/Video/Acinerella/CAcinerella.cs +++ b/Vocaluxe/Lib/Video/Acinerella/CAcinerella.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -363,7 +361,7 @@ namespace Vocaluxe.Lib.Video.Acinerella { lock (_Lock) { - return _ac_decode_package(pAcPackage, pAcDecoder)!=0; + return _ac_decode_package(pAcPackage, pAcDecoder) != 0; } } @@ -374,7 +372,7 @@ namespace Vocaluxe.Lib.Video.Acinerella { lock (_Lock) { - return _ac_get_audio_frame(pAcInstance, pAcDecoder)!=0; + return _ac_get_audio_frame(pAcInstance, pAcDecoder) != 0; } } @@ -385,7 +383,7 @@ namespace Vocaluxe.Lib.Video.Acinerella { lock (_Lock) { - return _ac_get_frame(pAcInstance, pAcDecoder)!=0; + return _ac_get_frame(pAcInstance, pAcDecoder) != 0; } } @@ -396,7 +394,7 @@ namespace Vocaluxe.Lib.Video.Acinerella { lock (_Lock) { - return _ac_skip_frames(pAcInstance, pAcDecoder, num)!=0; + return _ac_skip_frames(pAcInstance, pAcDecoder, num) != 0; } } @@ -412,7 +410,7 @@ namespace Vocaluxe.Lib.Video.Acinerella { lock (_Lock) { - return _ac_seek(pAcDecoder, dir, targetPos)!=0; + return _ac_seek(pAcDecoder, dir, targetPos) != 0; } } diff --git a/Vocaluxe/Lib/Video/Acinerella/CDecoder.cs b/Vocaluxe/Lib/Video/Acinerella/CDecoder.cs index 5ba37c91..a22aa3bf 100644 --- a/Vocaluxe/Lib/Video/Acinerella/CDecoder.cs +++ b/Vocaluxe/Lib/Video/Acinerella/CDecoder.cs @@ -1,3 +1,20 @@ +#region license +// This file is part of Vocaluxe. +// +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. +// +// Vocaluxe 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 Vocaluxe. If not, see . +#endregion + using System; using System.Diagnostics; using System.IO; @@ -130,7 +147,7 @@ namespace Vocaluxe.Lib.Video.Acinerella else { videoTime = 0; - return false; + return true; } _UploadNewFrame(ref frame); videoTime = _LastShownTime; diff --git a/Vocaluxe/Lib/Video/Acinerella/CFramebuffer.cs b/Vocaluxe/Lib/Video/Acinerella/CFramebuffer.cs index 8aaa6287..b0c2704f 100644 --- a/Vocaluxe/Lib/Video/Acinerella/CFramebuffer.cs +++ b/Vocaluxe/Lib/Video/Acinerella/CFramebuffer.cs @@ -1,4 +1,21 @@ -using System; +#region license +// This file is part of Vocaluxe. +// +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. +// +// Vocaluxe 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 Vocaluxe. If not, see . +#endregion + +using System; using System.Runtime.InteropServices; namespace Vocaluxe.Lib.Video.Acinerella diff --git a/Vocaluxe/Lib/Video/CVideoDecoderFFmpeg.cs b/Vocaluxe/Lib/Video/CVideoDecoderFFmpeg.cs index 85d9b25c..27f2baeb 100644 --- a/Vocaluxe/Lib/Video/CVideoDecoderFFmpeg.cs +++ b/Vocaluxe/Lib/Video/CVideoDecoderFFmpeg.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Collections.Generic; @@ -36,7 +34,7 @@ namespace Vocaluxe.Lib.Video public void CloseAll() { - foreach (var decoder in _Decoder.Values) + foreach (CDecoder decoder in _Decoder.Values) decoder.Close(); _Decoder.Clear(); } diff --git a/Vocaluxe/Lib/Video/CVideoDecoderGstreamer.cs b/Vocaluxe/Lib/Video/CVideoDecoderGstreamer.cs index f37b0dc8..31740333 100644 --- a/Vocaluxe/Lib/Video/CVideoDecoderGstreamer.cs +++ b/Vocaluxe/Lib/Video/CVideoDecoderGstreamer.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -55,7 +53,7 @@ namespace Vocaluxe.Lib.Video int i = -1; try { - Uri u = new Uri(videoFileName); + var u = new Uri(videoFileName); i = CGstreamerVideoWrapper.LoadVideo(u.AbsoluteUri); return i; } diff --git a/Vocaluxe/Lib/Video/Gstreamer/CGstreamerVideoWrapper.cs b/Vocaluxe/Lib/Video/Gstreamer/CGstreamerVideoWrapper.cs index 88c634d3..5c17198a 100644 --- a/Vocaluxe/Lib/Video/Gstreamer/CGstreamerVideoWrapper.cs +++ b/Vocaluxe/Lib/Video/Gstreamer/CGstreamerVideoWrapper.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/Vocaluxe/Lib/Video/IVideoDecoder.cs b/Vocaluxe/Lib/Video/IVideoDecoder.cs index 6c48a24e..3731081b 100644 --- a/Vocaluxe/Lib/Video/IVideoDecoder.cs +++ b/Vocaluxe/Lib/Video/IVideoDecoder.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using VocaluxeLib.Draw; diff --git a/Vocaluxe/Lib/Webcam/CAForgeNet.cs b/Vocaluxe/Lib/Webcam/CAForgeNet.cs index 2fb2ff6e..b07c9f46 100644 --- a/Vocaluxe/Lib/Webcam/CAForgeNet.cs +++ b/Vocaluxe/Lib/Webcam/CAForgeNet.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using AForge.Video; @@ -65,7 +63,7 @@ namespace Vocaluxe.Lib.Webcam { lock (_MutexData) { - Bitmap bmp = new Bitmap(_Width, _Height); + var bmp = new Bitmap(_Width, _Height); BitmapData bitmapdata = bmp.LockBits(new Rectangle(0, 0, _Width, _Height), ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb); Marshal.Copy(_Data, 0, bitmapdata.Scan0, _Data.Length); bmp.UnlockBits(bitmapdata); @@ -80,17 +78,17 @@ namespace Vocaluxe.Lib.Webcam _WebcamDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice); foreach (FilterInfo info in _WebcamDevices) { - SWebcamDevice device = new SWebcamDevice + var device = new SWebcamDevice { Name = info.Name, MonikerString = info.MonikerString, Capabilities = new List() }; - VideoCaptureDevice tmpdev = new VideoCaptureDevice(info.MonikerString); + var tmpdev = new VideoCaptureDevice(info.MonikerString); foreach (VideoCapabilities capabilities in tmpdev.VideoCapabilities) { - SCapabilities item = new SCapabilities + var item = new SCapabilities { Framerate = capabilities.FrameRate, Height = capabilities.FrameSize.Height, diff --git a/Vocaluxe/Lib/Webcam/IWebcam.cs b/Vocaluxe/Lib/Webcam/IWebcam.cs index 6ac143ee..aa108411 100644 --- a/Vocaluxe/Lib/Webcam/IWebcam.cs +++ b/Vocaluxe/Lib/Webcam/IWebcam.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Collections.Generic; diff --git a/Vocaluxe/Program.cs b/Vocaluxe/Program.cs index 63758783..affc6cc3 100644 --- a/Vocaluxe/Program.cs +++ b/Vocaluxe/Program.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -30,7 +28,6 @@ using Vocaluxe.Base.Server; namespace Vocaluxe { - // just a small comment for the new develop branch static class CMainProgram { private static CSplashScreen _SplashScreen; @@ -77,6 +74,9 @@ namespace Vocaluxe // Init Log CLog.Init(); + if (!CProgrammHelper.CheckRequirements()) + return; + CMain.Init(); CSettings.CreateFolders(); Application.DoEvents(); @@ -253,7 +253,7 @@ namespace Vocaluxe [HandleProcessCorruptedStateExceptions] private static void UnhandledExceptionHandler(object sender, UnhandledExceptionEventArgs args) { - Exception e = (Exception)args.ExceptionObject; + var e = (Exception)args.ExceptionObject; string stackTrace = ""; try { diff --git a/Vocaluxe/Properties/AssemblyInfo.cs b/Vocaluxe/Properties/AssemblyInfo.cs index 533d944d..96cfb9a6 100644 --- a/Vocaluxe/Properties/AssemblyInfo.cs +++ b/Vocaluxe/Properties/AssemblyInfo.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Reflection; @@ -51,5 +49,5 @@ using System.Runtime.InteropServices; // Revision // -[assembly: AssemblyVersion("0.3.0.80")] -[assembly: AssemblyFileVersion("0.3.0.80")] \ No newline at end of file +[assembly: AssemblyVersion("0.3.0.81")] +[assembly: AssemblyFileVersion("0.3.0.81")] \ No newline at end of file diff --git a/Vocaluxe/Screens/CPopupScreenPlayerControl.cs b/Vocaluxe/Screens/CPopupScreenPlayerControl.cs index 1856b90d..9ffe1779 100644 --- a/Vocaluxe/Screens/CPopupScreenPlayerControl.cs +++ b/Vocaluxe/Screens/CPopupScreenPlayerControl.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -201,8 +199,8 @@ namespace Vocaluxe.Screens CGame.Reset(); CGame.ClearSongs(); - EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL; - if (CSongs.AllSongs[songNr].IsDuet) + var gm = EGameMode.TR_GAMEMODE_NORMAL; + if (CSongs.AllSongs[songNr].IsGameModeAvailable(EGameMode.TR_GAMEMODE_DUET)) gm = EGameMode.TR_GAMEMODE_DUET; CGame.AddSong(songNr, gm); diff --git a/Vocaluxe/Screens/CPopupScreenVolumeControl.cs b/Vocaluxe/Screens/CPopupScreenVolumeControl.cs index 8b75e482..f95f651a 100644 --- a/Vocaluxe/Screens/CPopupScreenVolumeControl.cs +++ b/Vocaluxe/Screens/CPopupScreenVolumeControl.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using Vocaluxe.Base; diff --git a/Vocaluxe/Screens/CScreenCredits.cs b/Vocaluxe/Screens/CScreenCredits.cs index c73a5df1..06d36d1f 100644 --- a/Vocaluxe/Screens/CScreenCredits.cs +++ b/Vocaluxe/Screens/CScreenCredits.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -293,12 +291,12 @@ namespace Vocaluxe.Screens CStatic image = GetNewStatic(texture, new SColorF(1, 1, 1, 1), new SRectF(-1, -1, 400, 120, -4)); - SRectF particleRect = new SRectF(-1, -1, partRectSize, partRectSize, -6); - SRectF imgDotRect = new SRectF(particleRect) {Z = -5}; + var particleRect = new SRectF(-1, -1, partRectSize, partRectSize, -6); + var imgDotRect = new SRectF(particleRect) {Z = -5}; CStatic imgDot = GetNewStatic(texDot, new SColorF(1, 1, 1, 1), imgDotRect); CParticleEffect particle = _GetStarParticles(partCount, isRight, particleRect, bigParticles); - CCreditName credit = new CCreditName(image, imgDot, particle, particleOffsetX, particleOffsetY); + var credit = new CCreditName(image, imgDot, particle, particleOffsetX, particleOffsetY); if (isRight) { @@ -323,8 +321,8 @@ namespace Vocaluxe.Screens new SRectF((float)(CSettings.RenderW - _TexLogo.OrigSize.Width) / 2, -270, _TexLogo.OrigSize.Width, _TexLogo.OrigSize.Height, -2)); //Little stars for logo - int numstars = (int)(_Logo.Rect.W * 0.25f / 2f); - SRectF partRect = new SRectF(_Logo.Rect.X, _Logo.Rect.Y, _Logo.Rect.W, _Logo.Rect.H, -1); + var numstars = (int)(_Logo.Rect.W * 0.25f / 2f); + var partRect = new SRectF(_Logo.Rect.X, _Logo.Rect.Y, _Logo.Rect.W, _Logo.Rect.H, -1); _StarsRed = _GetStarParticles(numstars, true, partRect, true); _StarsBlue = _GetStarParticles(numstars, false, partRect, true); diff --git a/Vocaluxe/Screens/CScreenHighscore.cs b/Vocaluxe/Screens/CScreenHighscore.cs index 56e70ecf..933c2706 100644 --- a/Vocaluxe/Screens/CScreenHighscore.cs +++ b/Vocaluxe/Screens/CScreenHighscore.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -56,7 +54,7 @@ namespace Vocaluxe.Screens { base.Init(); - List texts = new List {_TextSongName, _TextSongMode}; + var texts = new List {_TextSongName, _TextSongMode}; _TextNumber = new string[_NumEntrys]; for (int i = 0; i < _NumEntrys; i++) diff --git a/Vocaluxe/Screens/CScreenLoad.cs b/Vocaluxe/Screens/CScreenLoad.cs index 8185520d..e5ccaae2 100644 --- a/Vocaluxe/Screens/CScreenLoad.cs +++ b/Vocaluxe/Screens/CScreenLoad.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Diagnostics; diff --git a/Vocaluxe/Screens/CScreenMain.cs b/Vocaluxe/Screens/CScreenMain.cs index 3baff4be..6cd878bc 100644 --- a/Vocaluxe/Screens/CScreenMain.cs +++ b/Vocaluxe/Screens/CScreenMain.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Windows.Forms; diff --git a/Vocaluxe/Screens/CScreenNames.cs b/Vocaluxe/Screens/CScreenNames.cs index eed8851b..62a99c37 100644 --- a/Vocaluxe/Screens/CScreenNames.cs +++ b/Vocaluxe/Screens/CScreenNames.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -24,7 +22,7 @@ using Vocaluxe.Base; using VocaluxeLib; using VocaluxeLib.Draw; using VocaluxeLib.Menu; -using VocaluxeLib.Profile; +using VocaluxeLib.Songs; namespace Vocaluxe.Screens { @@ -71,14 +69,14 @@ namespace Vocaluxe.Screens { base.Init(); - List statics = new List(); + var statics = new List(); statics.AddRange(_StaticPlayerAvatar); statics.AddRange(_StaticPlayer); statics.Add(_StaticWarningMics); statics.Add(_StaticWarningProfiles); _ThemeStatics = statics.ToArray(); - List texts = new List {_SelectSlidePlayerNumber}; + var texts = new List {_SelectSlidePlayerNumber}; texts.AddRange(_SelectSlideDuetPlayer); _ThemeSelectSlides = texts.ToArray(); @@ -411,13 +409,9 @@ namespace Vocaluxe.Screens if (CHelper.IsInBounds(_Statics[_StaticPlayer[i]].Rect, mouseEvent)) { if (_SelectingSwitchNr > -1 && CGame.Players[i].ProfileID > -1) - { _UpdateSelectedProfile(_SelectingSwitchNr, CGame.Players[i].ProfileID); - } else if (_SelectingSwitchNr > -1) - { _ResetPlayerSelection(_SelectingSwitchNr); - } if (!CProfiles.IsProfileIDValid(_SelectedProfileID)) return true; @@ -427,9 +421,7 @@ namespace Vocaluxe.Screens } //Selected player is dropped out of area if (_SelectingSwitchNr > -1) - { _ResetPlayerSelection(_SelectingSwitchNr); - } } _SelectingSwitchNr = -1; _SelectedProfileID = -1; @@ -449,7 +441,7 @@ namespace Vocaluxe.Screens return true; _UpdateSelectedProfile(_SelectingFastPlayerNr - 1, _SelectedProfileID); - + _SelectingFastPlayerNr++; if (_SelectingFastPlayerNr <= CGame.NumPlayer) _NameSelections[_NameSelection].FastSelection(true, _SelectingFastPlayerNr); @@ -606,6 +598,8 @@ namespace Vocaluxe.Screens _CheckMics(); _CheckPlayers(); + CSong firstSong = CGame.GetSong(0); + for (int i = 0; i < CSettings.MaxNumPlayer; i++) { _Statics[_StaticPlayerAvatar[i]].Texture = CProfiles.IsProfileIDValid(CGame.Players[i].ProfileID) ? @@ -616,8 +610,9 @@ namespace Vocaluxe.Screens { _SelectSlides[_SelectSlideDuetPlayer[i]].Clear(); _SelectSlides[_SelectSlideDuetPlayer[i]].Visible = i + 1 <= CGame.NumPlayer; - _SelectSlides[_SelectSlideDuetPlayer[i]].AddValue(CGame.GetSong(1).DuetPart1); - _SelectSlides[_SelectSlideDuetPlayer[i]].AddValue(CGame.GetSong(1).DuetPart2); + + for (int j = 0; j < firstSong.Notes.VoiceCount; j++) + _SelectSlides[_SelectSlideDuetPlayer[i]].AddValue(firstSong.Notes.VoiceNames[j]); _SelectSlides[_SelectSlideDuetPlayer[i]].Selection = i % 2; } else @@ -633,7 +628,7 @@ namespace Vocaluxe.Screens for (int i = 0; i < CGame.NumPlayer; i++) { if (CGame.GetNumSongs() == 1 && CGame.GetSong(1).IsDuet) - CGame.Players[i].LineNr = _SelectSlides[_SelectSlideDuetPlayer[i]].Selection; + CGame.Players[i].VoiceNr = _SelectSlides[_SelectSlideDuetPlayer[i]].Selection; } CGraphics.FadeTo(EScreens.ScreenSing); @@ -726,7 +721,7 @@ namespace Vocaluxe.Screens private void _CheckMics() { - List playerWithoutMicro = new List(); + var playerWithoutMicro = new List(); for (int player = 0; player < CConfig.NumPlayer; player++) { if (!CConfig.IsMicConfig(player + 1)) @@ -764,7 +759,7 @@ namespace Vocaluxe.Screens private void _CheckPlayers() { - List playerWithoutProfile = new List(); + var playerWithoutProfile = new List(); for (int player = 0; player < CConfig.NumPlayer; player++) { if (CGame.Players[player].ProfileID < 0) diff --git a/Vocaluxe/Screens/CScreenOptions.cs b/Vocaluxe/Screens/CScreenOptions.cs index b8281ca3..627b6027 100644 --- a/Vocaluxe/Screens/CScreenOptions.cs +++ b/Vocaluxe/Screens/CScreenOptions.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Windows.Forms; diff --git a/Vocaluxe/Screens/CScreenOptionsGame.cs b/Vocaluxe/Screens/CScreenOptionsGame.cs index 8ba0f0ab..16d2f30e 100644 --- a/Vocaluxe/Screens/CScreenOptionsGame.cs +++ b/Vocaluxe/Screens/CScreenOptionsGame.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Windows.Forms; diff --git a/Vocaluxe/Screens/CScreenOptionsLyrics.cs b/Vocaluxe/Screens/CScreenOptionsLyrics.cs index 1287a9f6..e2093af4 100644 --- a/Vocaluxe/Screens/CScreenOptionsLyrics.cs +++ b/Vocaluxe/Screens/CScreenOptionsLyrics.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Windows.Forms; diff --git a/Vocaluxe/Screens/CScreenOptionsRecord.cs b/Vocaluxe/Screens/CScreenOptionsRecord.cs index 36a7f66d..3d8bdbf8 100644 --- a/Vocaluxe/Screens/CScreenOptionsRecord.cs +++ b/Vocaluxe/Screens/CScreenOptionsRecord.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Collections.Generic; @@ -75,7 +73,7 @@ namespace Vocaluxe.Screens { base.Init(); - List values = new List {_StaticWarning}; + var values = new List {_StaticWarning}; values.AddRange(_StaticEnergyChannel); _ThemeStatics = values.ToArray(); @@ -369,11 +367,11 @@ namespace Vocaluxe.Screens { if (_ChannelEnergy[i] > 0f) { - SRectF rect = new SRectF(_Statics[_StaticEnergyChannel[i]].Rect.X, - _Statics[_StaticEnergyChannel[i]].Rect.Y, - _Statics[_StaticEnergyChannel[i]].Rect.W * _ChannelEnergy[i], - _Statics[_StaticEnergyChannel[i]].Rect.H, - _Statics[_StaticEnergyChannel[i]].Rect.Z); + var rect = new SRectF(_Statics[_StaticEnergyChannel[i]].Rect.X, + _Statics[_StaticEnergyChannel[i]].Rect.Y, + _Statics[_StaticEnergyChannel[i]].Rect.W * _ChannelEnergy[i], + _Statics[_StaticEnergyChannel[i]].Rect.H, + _Statics[_StaticEnergyChannel[i]].Rect.Z); CDraw.DrawTexture(_Statics[_StaticEnergyChannel[i]].Texture, _Statics[_StaticEnergyChannel[i]].Rect, new SColorF(1f, 1f, 1f, 1f), rect); @@ -465,7 +463,7 @@ namespace Vocaluxe.Screens private bool _CheckMicConfig() { - bool[] isSet = new bool[CSettings.MaxNumPlayer]; + var isSet = new bool[CSettings.MaxNumPlayer]; for (int i = 0; i < CSettings.MaxNumPlayer; i++) isSet[i] = false; diff --git a/Vocaluxe/Screens/CScreenOptionsSound.cs b/Vocaluxe/Screens/CScreenOptionsSound.cs index ef809fbb..847586f8 100644 --- a/Vocaluxe/Screens/CScreenOptionsSound.cs +++ b/Vocaluxe/Screens/CScreenOptionsSound.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Windows.Forms; @@ -154,8 +152,8 @@ namespace Vocaluxe.Screens CConfig.PreviewMusicVolume = _SelectSlides[_SelectSlidePreviewMusicVolume].Selection * 5; CConfig.SaveConfig(); - EOffOn newOffOn = (EOffOn)_SelectSlides[_SelectSlideBackgroundMusic].Selection; - EBackgroundMusicSource newSource = (EBackgroundMusicSource)_SelectSlides[_SelectSlideBackgroundMusicSource].Selection; + var newOffOn = (EOffOn)_SelectSlides[_SelectSlideBackgroundMusic].Selection; + var newSource = (EBackgroundMusicSource)_SelectSlides[_SelectSlideBackgroundMusicSource].Selection; float newVolume = _SelectSlides[_SelectSlideBackgroundMusicVolume].Selection * 5; CBackgroundMusic.CheckAndApplyConfig(newOffOn, newSource, newVolume); diff --git a/Vocaluxe/Screens/CScreenOptionsTheme.cs b/Vocaluxe/Screens/CScreenOptionsTheme.cs index be74c138..5bcbe620 100644 --- a/Vocaluxe/Screens/CScreenOptionsTheme.cs +++ b/Vocaluxe/Screens/CScreenOptionsTheme.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Windows.Forms; diff --git a/Vocaluxe/Screens/CScreenOptionsVideo.cs b/Vocaluxe/Screens/CScreenOptionsVideo.cs index 71c11d97..7a7b57c2 100644 --- a/Vocaluxe/Screens/CScreenOptionsVideo.cs +++ b/Vocaluxe/Screens/CScreenOptionsVideo.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/Vocaluxe/Screens/CScreenParty.cs b/Vocaluxe/Screens/CScreenParty.cs index 8288c573..ab6d5131 100644 --- a/Vocaluxe/Screens/CScreenParty.cs +++ b/Vocaluxe/Screens/CScreenParty.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Collections.Generic; diff --git a/Vocaluxe/Screens/CScreenProfiles.cs b/Vocaluxe/Screens/CScreenProfiles.cs index 08e37d59..24aef79b 100644 --- a/Vocaluxe/Screens/CScreenProfiles.cs +++ b/Vocaluxe/Screens/CScreenProfiles.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -332,7 +330,7 @@ namespace Vocaluxe.Screens private void _OnSaveSnapshot() { - string filename = Path.Combine(CSettings.FolderProfiles, "snapshot"); + string filename = Path.Combine(CSettings.DataPath, CSettings.FolderProfiles, "snapshot"); int i = 0; while (File.Exists(filename + i + ".png")) i++; @@ -446,13 +444,16 @@ namespace Vocaluxe.Screens int selectedAvatarID = _SelectSlides[_SelectSlideAvatars].ValueIndex; _SelectSlides[_SelectSlideAvatars].Clear(); IEnumerable avatars = CProfiles.GetAvatars(); - foreach (CAvatar avatar in avatars) + if (avatars != null) { - _SelectSlides[_SelectSlideAvatars].AddValue( - Path.GetFileName(avatar.FileName), - null, - avatar.ID, - -1); + foreach (CAvatar avatar in avatars) + { + _SelectSlides[_SelectSlideAvatars].AddValue( + Path.GetFileName(avatar.FileName), + null, + avatar.ID, + -1); + } } if (keep) diff --git a/Vocaluxe/Screens/CScreenScore.cs b/Vocaluxe/Screens/CScreenScore.cs index 94838312..b1e06b1e 100644 --- a/Vocaluxe/Screens/CScreenScore.cs +++ b/Vocaluxe/Screens/CScreenScore.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -60,13 +58,13 @@ namespace Vocaluxe.Screens { base.Init(); - List texts = new List {_TextSong}; + var texts = new List {_TextSong}; _BuildTextStrings(ref texts); _ThemeTexts = texts.ToArray(); - List statics = new List(); + var statics = new List(); _BuildStaticStrings(ref statics); _ThemeStatics = statics.ToArray(); @@ -123,13 +121,15 @@ namespace Vocaluxe.Screens _Round = CGame.NumRounds > 1 ? 0 : 1; _Points = CGame.GetPoints(); + _SavePlayedSongs(); + _SetVisibility(); _UpdateRatings(); } public override bool UpdateGame() { - SPlayer[] players = new SPlayer[CGame.NumPlayer]; + var players = new SPlayer[CGame.NumPlayer]; if (_Round != 0) players = _Points.GetPlayer(_Round - 1, CGame.NumPlayer); else @@ -154,16 +154,16 @@ namespace Vocaluxe.Screens if (_StaticPointsBarDrawnPoints[p] > players[p].Points) _StaticPointsBarDrawnPoints[p] = players[p].Points; - string direction = (string)_ScreenSettings[_ScreenSettingAnimationDirection].GetValue(); + var direction = (string)_ScreenSettings[_ScreenSettingAnimationDirection].GetValue(); if (direction.ToLower() == "vertical") { _Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.W = ((float)_StaticPointsBarDrawnPoints[p]) * - (_Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.W / 10000); + (_Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.W / CSettings.MaxScore); } else { _Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.H = ((float)_StaticPointsBarDrawnPoints[p]) * - (_Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.H / 10000); + (_Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.H / CSettings.MaxScore); _Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.Y = _Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.H + _Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.Y - _Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.H; @@ -262,7 +262,7 @@ namespace Vocaluxe.Screens private void _UpdateRatings() { CSong song = null; - SPlayer[] players = new SPlayer[CGame.NumPlayer]; + var players = new SPlayer[CGame.NumPlayer]; if (_Round != 0) { song = CGame.GetSong(_Round); @@ -291,15 +291,14 @@ namespace Vocaluxe.Screens players[p].Points = (int)Math.Round(players[p].Points / CGame.NumRounds); } + var pointAnimDirection = (string)_ScreenSettings[_ScreenSettingAnimationDirection].GetValue(); for (int p = 0; p < players.Length; p++) { string name = CProfiles.GetPlayerName(players[p].ProfileID, p); if (song != null && song.IsDuet) { - if (players[p].LineNr == 0 && song.DuetPart1 != "Part 1") - name += " (" + song.DuetPart1 + ")"; - else if (players[p].LineNr == 1 && song.DuetPart2 != "Part 2") - name += " (" + song.DuetPart2 + ")"; + if (song.Notes.VoiceNames.IsSet(players[p].VoiceNr)) + name += " (" + song.Notes.VoiceNames[players[p].VoiceNr] + ")"; } _Texts[_TextNames[p, CGame.NumPlayer - 1]].Text = name; @@ -323,8 +322,7 @@ namespace Vocaluxe.Screens _Texts[_TextRatings[p, CGame.NumPlayer - 1]].Text = CLanguage.Translate(_GetRating((int)Math.Round(players[p].Points))); _StaticPointsBarDrawnPoints[p] = 0.0; - string direction = (string)_ScreenSettings[_ScreenSettingAnimationDirection].GetValue(); - if (direction.ToLower() == "vertical") + if (pointAnimDirection.ToLower() == "vertical") _Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.W = 0; else { @@ -341,10 +339,19 @@ namespace Vocaluxe.Screens { for (int p = 0; p < CGame.NumPlayer; p++) { - _Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.H = ((float)players[p].Points) * (_Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.H / 10000); - _Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.Y = _Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.H + - _Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.Y - - _Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.H; + if (pointAnimDirection.ToLower() == "vertical") + { + _Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.W = ((float)players[p].Points) * + (_Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.W / CSettings.MaxScore); + } + else + { + _Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.H = ((float)players[p].Points) * + (_Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.H / CSettings.MaxScore); + _Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.Y = _Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.H + + _Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.Y - + _Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.H; + } _StaticPointsBarDrawnPoints[p] = players[p].Points; } } @@ -389,6 +396,25 @@ namespace Vocaluxe.Screens } } + private void _SavePlayedSongs() + { + for (int round = 0; round < _Points.NumRounds; round++) + { + SPlayer[] players = _Points.GetPlayer(round, CGame.NumPlayer); + + for (int p = 0; p < players.Length; p++) + { + if (players[p].Points > CSettings.MinScoreForDB && players[p].SongFinished) + { + CSong song = CSongs.GetSong(players[p].SongID); + CDataBase.IncreaseSongCounter(song.DataBaseSongID); + song.NumPlayed++; + break; + } + } + } + } + private void _LeaveScreen() { CParty.LeavingScore(); diff --git a/Vocaluxe/Screens/CScreenSing.cs b/Vocaluxe/Screens/CScreenSing.cs index 9e9d4ebd..e792ba4e 100644 --- a/Vocaluxe/Screens/CScreenSing.cs +++ b/Vocaluxe/Screens/CScreenSing.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -125,11 +123,11 @@ namespace Vocaluxe.Screens { base.Init(); - List texts = new List {_TextSongName, _TextTime, _TextPause, _TextDuetName1, _TextDuetName2, _TextMedleyCountdown}; + var texts = new List {_TextSongName, _TextTime, _TextPause, _TextDuetName1, _TextDuetName2, _TextMedleyCountdown}; _BuildTextStrings(texts); _ThemeTexts = texts.ToArray(); - List statics = new List + var statics = new List { _StaticSongText, _StaticLyrics, @@ -148,7 +146,7 @@ namespace Vocaluxe.Screens _BuildStaticStrings(ref statics); _ThemeStatics = statics.ToArray(); - List buttons = new List {_ButtonCancel, _ButtonContinue, _ButtonSkip}; + var buttons = new List {_ButtonCancel, _ButtonContinue, _ButtonSkip}; _ThemeButtons = buttons.ToArray(); _ThemeLyrics = new string[] {_LyricMain, _LyricSub, _LyricMainDuet, _LyricSubDuet, _LyricMainTop, _LyricSubTop}; @@ -202,7 +200,7 @@ namespace Vocaluxe.Screens break; case Keys.T: - int mode = (int)CConfig.TimerMode; + var mode = (int)CConfig.TimerMode; mode++; if (mode > Enum.GetNames(typeof(ETimerMode)).Length - 1) @@ -329,7 +327,7 @@ namespace Vocaluxe.Screens _LoadNextSong(); _UpdateSongText(); - _UpdateDuetText(); + _UpdateDuetNames(); if (_FadeOut) return true; @@ -355,18 +353,18 @@ namespace Vocaluxe.Screens for (int p = 0; p < CGame.NumPlayer; p++) { - _SingNotes[_SingBars].SetAlpha(_NoteLines[p], alpha[CGame.Players[p].LineNr * 2]); + _SingNotes[_SingBars].SetAlpha(_NoteLines[p], alpha[CGame.Players[p].VoiceNr * 2]); if (CConfig.FadePlayerInfo == EFadePlayerInfo.TR_CONFIG_FADEPLAYERINFO_INFO || CConfig.FadePlayerInfo == EFadePlayerInfo.TR_CONFIG_FADEPLAYERINFO_ALL) { - _Statics[_StaticAvatars[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Players[p].LineNr * 2]; - _Texts[_TextNames[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Players[p].LineNr * 2]; + _Statics[_StaticAvatars[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Players[p].VoiceNr * 2]; + _Texts[_TextNames[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Players[p].VoiceNr * 2]; } if (CConfig.FadePlayerInfo == EFadePlayerInfo.TR_CONFIG_FADEPLAYERINFO_ALL) { - _Statics[_StaticScores[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Players[p].LineNr * 2]; - _Statics[_StaticAvatars[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Players[p].LineNr * 2]; - _Texts[_TextNames[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Players[p].LineNr * 2]; - _Texts[_TextScores[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Players[p].LineNr * 2]; + _Statics[_StaticScores[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Players[p].VoiceNr * 2]; + _Statics[_StaticAvatars[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Players[p].VoiceNr * 2]; + _Texts[_TextNames[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Players[p].VoiceNr * 2]; + _Texts[_TextScores[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Players[p].VoiceNr * 2]; } } @@ -389,12 +387,8 @@ namespace Vocaluxe.Screens for (int p = 0; p < CGame.NumPlayer; p++) { - // ReSharper disable ConvertIfStatementToConditionalTernaryExpression - if (CGame.Players[p].Points < 10000) - // ReSharper restore ConvertIfStatementToConditionalTernaryExpression - _Texts[_TextScores[p, CGame.NumPlayer - 1]].Text = CGame.Players[p].Points.ToString("0000"); - else - _Texts[_TextScores[p, CGame.NumPlayer - 1]].Text = CGame.Players[p].Points.ToString("00000"); + string fmtString = (CGame.Players[p].Points < 10000) ? "0000" : "00000"; + _Texts[_TextScores[p, CGame.NumPlayer - 1]].Text = CGame.Players[p].Points.ToString(fmtString); } if (_CurrentVideo != -1 && !_FadeOut && CConfig.VideosInSongs == EOffOn.TR_CONFIG_ON) @@ -459,7 +453,7 @@ namespace Vocaluxe.Screens if (_Active) { CTexture background; - EAspect aspect = EAspect.Crop; + var aspect = EAspect.Crop; if (_CurrentVideo != -1 && CConfig.VideosInSongs == EOffOn.TR_CONFIG_ON && !_Webcam) { background = _CurrentVideoTexture; @@ -474,7 +468,7 @@ namespace Vocaluxe.Screens background = _Background; if (background != null) { - RectangleF bounds = new RectangleF(0, 0, CSettings.RenderW, CSettings.RenderH); + var bounds = new RectangleF(0, 0, CSettings.RenderW, CSettings.RenderH); RectangleF rect; CHelper.SetRect(bounds, out rect, background.OrigAspect, aspect); CDraw.DrawTexture(background, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, 0f), @@ -502,17 +496,17 @@ namespace Vocaluxe.Screens } _Lyrics[_LyricSub].Draw(-100); - _Lyrics[_LyricMain].Draw(CGame.Beat); + _Lyrics[_LyricMain].Draw(CGame.CurrentBeatF); _Lyrics[_LyricSubDuet].Draw(-100); - _Lyrics[_LyricMainDuet].Draw(CGame.Beat); + _Lyrics[_LyricMainDuet].Draw(CGame.CurrentBeatF); _Lyrics[_LyricSubTop].Draw(-100); - _Lyrics[_LyricMainTop].Draw(CGame.Beat); + _Lyrics[_LyricMainTop].Draw(CGame.CurrentBeatF); for (int i = 0; i < CGame.NumPlayer; i++) - _SingNotes[_SingBars].Draw(_NoteLines[i], CGame.Players[i].SingLine, i); + _SingNotes[_SingBars].Draw(_NoteLines[i], CGame.Players[i].SungLines, i); _DrawLyricHelper(); @@ -546,12 +540,14 @@ namespace Vocaluxe.Screens public override void ApplyVolume() { - CSound.SetStreamVolumeMax(_CurrentStream, CConfig.GameMusicVolume); + if (_CurrentStream > -1) + CSound.SetStreamVolumeMax(_CurrentStream, CConfig.GameMusicVolume); } private void _CloseSong() { - CSound.FadeAndStop(_CurrentStream, 0f, 0.5f); + if (_CurrentStream > -1) + CSound.FadeAndStop(_CurrentStream, 0f, 0.5f); CSound.RecordStop(); if (_CurrentVideo != -1) { @@ -607,12 +603,12 @@ namespace Vocaluxe.Screens _FinishTime = song.Finish; _TimeToFirstNote = 0f; _TimeToFirstNoteDuet = 0f; - int[] duetPlayer = new int[CGame.NumPlayer]; + var voiceAssignments = new int[CGame.NumPlayer]; if (song.IsDuet) { //Save duet-assignment before resetting - for (int i = 0; i < duetPlayer.Length; i++) - duetPlayer[i] = CGame.Players[i].LineNr; + for (int i = 0; i < voiceAssignments.Length; i++) + voiceAssignments[i] = CGame.Players[i].VoiceNr; } CGame.ResetPlayer(); @@ -634,19 +630,20 @@ namespace Vocaluxe.Screens if (song.IsDuet) { - _Texts[_TextDuetName1].Text = song.DuetPart1; - _Texts[_TextDuetName2].Text = song.DuetPart2; + //TODO: Show more than 2 voicenames + _Texts[_TextDuetName1].Text = song.Notes.VoiceNames[0]; + _Texts[_TextDuetName2].Text = song.Notes.VoiceNames[1]; //More than one song: Player is not assigned to line by user //Otherwise, this is done by CScreenNames if (CGame.GetNumSongs() > 1) { for (int i = 0; i < CGame.NumPlayer; i++) - CGame.Players[i].LineNr = (i + 1) % 2; + CGame.Players[i].VoiceNr = (i + 1) % 2; } else { for (int i = 0; i < CGame.NumPlayer; i++) - CGame.Players[i].LineNr = duetPlayer[i]; + CGame.Players[i].VoiceNr = voiceAssignments[i]; } } @@ -672,14 +669,11 @@ namespace Vocaluxe.Screens NoteLines[3] = SingNotes[SingBars].AddPlayer(new SRectF(640f, 350f, 590f, 200f, -0.5f), CTheme.ThemeColors.Player[3]); break; */ - _TimerSongText.Stop(); _TimerSongText.Reset(); - _TimerDuetText1.Stop(); _TimerDuetText1.Reset(); - _TimerDuetText2.Stop(); _TimerDuetText2.Reset(); - if (song.Notes.Voices.Length != 2) + if (!song.IsDuet) _TimerSongText.Start(); _StartSong(); @@ -745,7 +739,7 @@ namespace Vocaluxe.Screens CWebcam.Close(); } - private int _FindCurrentLine(CVoice voice, CLine[] lines, CSong song) + private int _FindCurrentLine(CVoice voice, CSongLine[] lines, CSong song) { float currentTime = _CurrentTime - song.Gap; //We are only interested in the last matching line, so either do not check further after line[j].StartBeat > _CurrentBeat or go backwards! @@ -781,13 +775,13 @@ namespace Vocaluxe.Screens _CurrentBeat = CGame.CurrentBeat; - for (int i = 0; i < song.Notes.LinesCount; i++) + for (int i = 0; i < song.Notes.VoiceCount; i++) { if (i > 1) break; // for later CVoice voice = song.Notes.GetVoice(i); - CLine[] lines = voice.Lines; + CSongLine[] lines = voice.Lines; // find current line int nr = _FindCurrentLine(voice, lines, song); @@ -796,7 +790,7 @@ namespace Vocaluxe.Screens { for (int j = 0; j < CGame.NumPlayer; j++) { - if (CGame.Players[j].LineNr == i) + if (CGame.Players[j].VoiceNr == i) _SingNotes[_SingBars].SetLines(_NoteLines[j], lines, nr); } @@ -866,6 +860,7 @@ namespace Vocaluxe.Screens } else { + CGame.ResetToLastLine(_CurrentStream, _CurrentVideo); _Buttons[_ButtonCancel].Visible = false; _Buttons[_ButtonContinue].Visible = false; _Buttons[_ButtonSkip].Visible = false; @@ -980,7 +975,7 @@ namespace Vocaluxe.Screens if (_CurrentTime < timeToFirstMedleyNote) { float timeDiff = timeToFirstMedleyNote - _CurrentTime + 1; - float fullSeconds = (float)Math.Truncate(timeDiff); + var fullSeconds = (float)Math.Truncate(timeDiff); float partSeconds = timeDiff - fullSeconds; _Texts[_TextMedleyCountdown].Visible = true; _Texts[_TextMedleyCountdown].Text = fullSeconds.ToString(); @@ -1025,7 +1020,7 @@ namespace Vocaluxe.Screens if (_Statics[_StaticLyrics].Visible) { SRectF rect = _Statics[_StaticLyricHelper].Rect; - SColorF color = new SColorF( + var color = new SColorF( _Statics[_StaticLyricHelper].Color.R, _Statics[_StaticLyricHelper].Color.G, _Statics[_StaticLyricHelper].Color.B, @@ -1039,7 +1034,7 @@ namespace Vocaluxe.Screens if (_Statics[_StaticLyricsTop].Visible) { SRectF rect = _Statics[_StaticLyricHelperTop].Rect; - SColorF color = new SColorF( + var color = new SColorF( _Statics[_StaticLyricHelperTop].Color.R, _Statics[_StaticLyricHelperTop].Color.G, _Statics[_StaticLyricHelperTop].Color.B, @@ -1066,7 +1061,7 @@ namespace Vocaluxe.Screens SRectF rect = _Statics[_StaticLyricHelperDuet].Rect; - SColorF color = new SColorF( + var color = new SColorF( _Statics[_StaticLyricHelperDuet].Color.R, _Statics[_StaticLyricHelperDuet].Color.G, _Statics[_StaticLyricHelperDuet].Color.B, @@ -1089,13 +1084,13 @@ namespace Vocaluxe.Screens if (song == null || !song.NotesLoaded) return null; - float[] alpha = new float[song.Notes.Voices.Length * 2]; + var alpha = new float[song.Notes.VoiceCount * 2]; float currentTime = _CurrentTime - song.Gap; - for (int i = 0; i < song.Notes.LinesCount; i++) + for (int i = 0; i < song.Notes.VoiceCount; i++) { CVoice voice = song.Notes.GetVoice(i); - CLine[] lines = voice.Lines; + CSongLine[] lines = voice.Lines; // find current line for lyric sub fading int currentLineSub = _FindCurrentLine(voice, lines, song); @@ -1196,8 +1191,8 @@ namespace Vocaluxe.Screens } else { - _Statics[_StaticSongText].Color.A = (3f - (t - 7f)) / 3f; - _Texts[_TextSongName].Color.A = (3f - (t - 7f)) / 3f; + _Statics[_StaticSongText].Color.A = 10f - t / 3f; + _Texts[_TextSongName].Color.A = 10f - t / 3f; } } else @@ -1214,61 +1209,65 @@ namespace Vocaluxe.Screens } } - private void _UpdateDuetText() + private void _UpdateDuetNames(CText textName, Stopwatch timer) { - if (CGame.GetSong() != null) + if (timer.IsRunning) { - //Timer for first duet-part - if (_TimerDuetText1.IsRunning) + float t = timer.ElapsedMilliseconds / 1000f; + if (t < 10f) { - float t = _TimerDuetText1.ElapsedMilliseconds / 1000f; - if (t < 10f) - { - _Texts[_TextDuetName1].Visible = true; + textName.Visible = true; - if (t < 3f) - _Texts[_TextDuetName1].Color.A = (3f - (3f - t)) / 3f; - else if (t < 7f) - _Texts[_TextDuetName1].Color.A = 1f; - else - _Texts[_TextDuetName1].Color.A = (3f - (t - 7f)) / 3f; - } + if (t < 3f) + textName.Color.A = t / 3f; + else if (t < 7f) + textName.Color.A = 1f; else - { - _Texts[_TextDuetName1].Visible = false; - _TimerDuetText1.Stop(); - } + textName.Color.A = (10f - t) / 3f; } - else if (!_TimerDuetText1.IsRunning && _TimerDuetText1.ElapsedMilliseconds == 0 && _Lyrics[_LyricMainDuet].Alpha > 0 && CGame.GetSong().IsDuet) - _TimerDuetText1.Start(); else - _Texts[_TextDuetName1].Visible = false; - //Timer for second duet-part - if (_TimerDuetText2.IsRunning) { - float t = _TimerDuetText2.ElapsedMilliseconds / 1000f; - if (t < 10f) - { - _Texts[_TextDuetName2].Visible = true; - - if (t < 3f) - _Texts[_TextDuetName2].Color.A = (3f - (3f - t)) / 3f; - else if (t < 7f) - _Texts[_TextDuetName2].Color.A = 1f; - else - _Texts[_TextDuetName2].Color.A = (3f - (t - 7f)) / 3f; - } - else - { - _Texts[_TextDuetName2].Visible = false; - _TimerDuetText2.Stop(); - } + textName.Visible = false; + timer.Stop(); } - else if (!_TimerDuetText2.IsRunning && _TimerDuetText2.ElapsedMilliseconds == 0 && _Lyrics[_LyricMain].Alpha > 0 && CGame.GetSong().IsDuet) - _TimerDuetText2.Start(); - else - _Texts[_TextDuetName2].Visible = false; } + else if (!timer.IsRunning && timer.ElapsedMilliseconds == 0 && _Lyrics[_LyricMainDuet].Alpha > 0 && CGame.GetSong().IsDuet) + timer.Start(); + else + textName.Visible = false; + } + + private void _UpdateDuetNames() + { + if (CGame.GetSong() == null) + return; + //Timer for first duet-part + _UpdateDuetNames(_Texts[_TextDuetName1], _TimerDuetText1); + //Timer for second duet-part + if (_TimerDuetText2.IsRunning) + { + float t = _TimerDuetText2.ElapsedMilliseconds / 1000f; + if (t < 10f) + { + _Texts[_TextDuetName2].Visible = true; + + if (t < 3f) + _Texts[_TextDuetName2].Color.A = (3f - (3f - t)) / 3f; + else if (t < 7f) + _Texts[_TextDuetName2].Color.A = 1f; + else + _Texts[_TextDuetName2].Color.A = (3f - (t - 7f)) / 3f; + } + else + { + _Texts[_TextDuetName2].Visible = false; + _TimerDuetText2.Stop(); + } + } + else if (!_TimerDuetText2.IsRunning && _TimerDuetText2.ElapsedMilliseconds == 0 && _Lyrics[_LyricMain].Alpha > 0 && CGame.GetSong().IsDuet) + _TimerDuetText2.Start(); + else + _Texts[_TextDuetName2].Visible = false; } private void _UpdateTimeLine() @@ -1292,8 +1291,8 @@ namespace Vocaluxe.Screens switch (CConfig.TimerMode) { case ETimerMode.TR_CONFIG_TIMERMODE_CURRENT: - int min = (int)Math.Floor(currentTime / 60f); - int sec = (int)(currentTime - min * 60f); + var min = (int)Math.Floor(currentTime / 60f); + var sec = (int)(currentTime - min * 60f); _Texts[_TextTime].Text = min.ToString("00") + ":" + sec.ToString("00"); break; @@ -1368,9 +1367,9 @@ namespace Vocaluxe.Screens foreach (CVoice voice in song.Notes.Voices) { - foreach (CLine line in voice.Lines.Where(line => line.VisibleInTimeLine)) + foreach (CSongLine line in voice.Lines.Where(line => line.VisibleInTimeLine)) { - STimeRect trect = new STimeRect {StartBeat = line.FirstNoteBeat, EndBeat = line.EndBeat}; + var trect = new STimeRect {StartBeat = line.FirstNoteBeat, EndBeat = line.EndBeat}; trect.Rect = GetNewStatic(null, new SColorF(1f, 1f, 1f, 1f), new SRectF( diff --git a/Vocaluxe/Screens/CScreenSong.cs b/Vocaluxe/Screens/CScreenSong.cs index 1a614ba0..5c27e577 100644 --- a/Vocaluxe/Screens/CScreenSong.cs +++ b/Vocaluxe/Screens/CScreenSong.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -105,7 +103,7 @@ namespace Vocaluxe.Screens _ButtonsJoker.Clear(); for (int i = 0; i < CSettings.MaxNumPlayer; i++) _ButtonsJoker.Add("ButtonJoker" + (i + 1)); - List blist = new List(); + var blist = new List(); blist.AddRange(_ButtonsJoker); blist.Add(_ButtonOptionsClose); blist.Add(_ButtonOptionsPlaylist); @@ -123,7 +121,7 @@ namespace Vocaluxe.Screens _TextsPlayer.Clear(); for (int i = 0; i < CSettings.MaxNumPlayer; i++) _TextsPlayer.Add("TextPlayer" + (i + 1)); - List tlist = new List(); + var tlist = new List(); tlist.AddRange(_TextsPlayer); tlist.Add(_TextCategory); tlist.Add(_TextSelection); @@ -172,7 +170,7 @@ namespace Vocaluxe.Screens { if (_SearchActive) _ApplyNewSearchFilter(_SearchText + keyEvent.Unicode); - else if(!_Sso.Selection.PartyMode) + else if (!_Sso.Selection.PartyMode) { _JumpTo(keyEvent.Unicode); return true; @@ -821,9 +819,8 @@ namespace Vocaluxe.Screens CGame.Reset(); CGame.ClearSongs(); - CGame.AddVisibleSong(songNr, gm); - - CGraphics.FadeTo(EScreens.ScreenNames); + if (CGame.AddVisibleSong(songNr, gm)) + CGraphics.FadeTo(EScreens.ScreenNames); } } @@ -836,9 +833,8 @@ namespace Vocaluxe.Screens CGame.Reset(); CGame.ClearSongs(); - CGame.AddVisibleSong(songNr, gm); - - CGraphics.FadeTo(EScreens.ScreenNames); + if (CGame.AddVisibleSong(songNr, gm)) + CGraphics.FadeTo(EScreens.ScreenNames); } } @@ -846,14 +842,13 @@ namespace Vocaluxe.Screens { if ((CSongs.Category >= 0) && (songNr >= 0)) { - if (CSongs.VisibleSongs[songNr].Medley.Source == EMedleySource.None) + if (!CSongs.VisibleSongs[songNr].IsGameModeAvailable(EGameMode.TR_GAMEMODE_MEDLEY)) return; CGame.Reset(); CGame.ClearSongs(); - CGame.AddVisibleSong(songNr, EGameMode.TR_GAMEMODE_MEDLEY); - - CGraphics.FadeTo(EScreens.ScreenNames); + if (CGame.AddVisibleSong(songNr, EGameMode.TR_GAMEMODE_MEDLEY)) + CGraphics.FadeTo(EScreens.ScreenNames); } } @@ -862,7 +857,7 @@ namespace Vocaluxe.Screens CGame.Reset(); CGame.ClearSongs(); - List ids = new List(); + var ids = new List(); for (int i = 0; i < CSongs.AllSongs.Count; i++) ids.Add(i); @@ -870,7 +865,7 @@ namespace Vocaluxe.Screens { int songNr = ids[CGame.Rand.Next(ids.Count)]; - EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL; + var gm = EGameMode.TR_GAMEMODE_NORMAL; if (CSongs.AllSongs[songNr].IsDuet) gm = EGameMode.TR_GAMEMODE_DUET; @@ -894,7 +889,7 @@ namespace Vocaluxe.Screens { int songNr = ids[CGame.Rand.Next(ids.Count)]; - EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL; + var gm = EGameMode.TR_GAMEMODE_NORMAL; if (CSongs.AllSongs[songNr].IsDuet) gm = EGameMode.TR_GAMEMODE_DUET; @@ -1009,10 +1004,10 @@ namespace Vocaluxe.Screens int curSelected = _SongMenus[_SongMenu].GetActualSelection(); bool firstLevel = CConfig.Tabs == EOffOn.TR_CONFIG_OFF && CSongs.IsInCategory; bool secondSort = CConfig.Tabs == EOffOn.TR_CONFIG_ON && - (CConfig.SongSorting == ESongSorting.TR_CONFIG_ARTIST || - CConfig.SongSorting == ESongSorting.TR_CONFIG_ARTIST_LETTER || - CConfig.SongSorting == ESongSorting.TR_CONFIG_FOLDER || - CConfig.SongSorting == ESongSorting.TR_CONFIG_TITLE_LETTER); + (CConfig.SongSorting == ESongSorting.TR_CONFIG_ARTIST || + CConfig.SongSorting == ESongSorting.TR_CONFIG_ARTIST_LETTER || + CConfig.SongSorting == ESongSorting.TR_CONFIG_FOLDER || + CConfig.SongSorting == ESongSorting.TR_CONFIG_TITLE_LETTER); if (firstLevel && !secondSort) { //TODO: What's to do with multiple tags? @@ -1029,7 +1024,7 @@ namespace Vocaluxe.Screens visibleID = _FindIndex(songs, start, element => element.Artist.StartsWith(letter.ToString(), StringComparison.OrdinalIgnoreCase)); break; - //TODO: Does this make sense? Maybe we should deactivate this for years? You could only jump between 1 and 2 + //TODO: Does this make sense? Maybe we should deactivate this for years? You could only jump between 1 and 2 case ESongSorting.TR_CONFIG_YEAR: case ESongSorting.TR_CONFIG_DECADE: if (curSelected >= 0 && curSelected < ct - 1 && songs[curSelected].Year.StartsWith(letter.ToString(), StringComparison.OrdinalIgnoreCase)) @@ -1076,7 +1071,7 @@ namespace Vocaluxe.Screens if (visibleID > -1) _SongMenus[_SongMenu].SetSelectedSong(visibleID); } - else if(!CSongs.IsInCategory) + else if (!CSongs.IsInCategory) { ReadOnlyCollection categories = CSongs.Categories; int ct = categories.Count; @@ -1144,50 +1139,50 @@ namespace Vocaluxe.Screens _Statics[_StaticOptionsBG].Visible = false; _Buttons[_ButtonOpenOptions].Visible = true; - _SongOptionsActive = view != ESongOptionsView.None; - - if (_SongOptionsActive) + if (CSongs.VisibleSongs.Count > 0) { - //Has to be done here otherwhise changed playlist names will not appear until OnShow is called! - _UpdatePlaylistNames(); + _SongOptionsActive = view != ESongOptionsView.None; - _Texts[_TextOptionsTitle].Visible = true; - _Buttons[_ButtonOptionsClose].Visible = true; - _Statics[_StaticOptionsBG].Visible = true; - _Buttons[_ButtonOpenOptions].Visible = false; - if (view == ESongOptionsView.Song) - _ShowSongOptionsSong(); - else if (view == ESongOptionsView.General) - _ShowSongOptionsGeneral(); - else if (view == ESongOptionsView.Medley) - _ShowSongOptionsMedley(); + if (_SongOptionsActive) + { + //Has to be done here otherwhise changed playlist names will not appear until OnShow is called! + _UpdatePlaylistNames(); + + _Texts[_TextOptionsTitle].Visible = true; + _Buttons[_ButtonOptionsClose].Visible = true; + _Statics[_StaticOptionsBG].Visible = true; + _Buttons[_ButtonOpenOptions].Visible = false; + if (view == ESongOptionsView.Song) + _ShowSongOptionsSong(); + else if (view == ESongOptionsView.General) + _ShowSongOptionsGeneral(); + else if (view == ESongOptionsView.Medley) + _ShowSongOptionsMedley(); + } + } + } + + private void _CheckAndAddGameMode(EGameMode gameMode) + { + if (CSongs.VisibleSongs[_SongMenus[_SongMenu].GetSelectedSong()].IsGameModeAvailable(gameMode)) + { + _SelectSlides[_SelectSlideOptionsMode].AddValue(Enum.GetName(typeof(EGameMode), gameMode)); + _AvailableGameModes.Add(gameMode); } } private void _ShowSongOptionsSong() { - EGameMode lastMode = EGameMode.TR_GAMEMODE_NORMAL; + var lastMode = EGameMode.TR_GAMEMODE_NORMAL; if (_AvailableGameModes.Count > 0) lastMode = _AvailableGameModes[_SelectSlides[_SelectSlideOptionsMode].Selection]; _AvailableGameModes.Clear(); _SelectSlides[_SelectSlideOptionsMode].Clear(); - if (CSongs.VisibleSongs[_SongMenus[_SongMenu].GetSelectedSong()].IsDuet) - { - _SelectSlides[_SelectSlideOptionsMode].AddValue(Enum.GetName(typeof(EGameMode), EGameMode.TR_GAMEMODE_DUET)); - _AvailableGameModes.Add(EGameMode.TR_GAMEMODE_DUET); - } - else - { - _SelectSlides[_SelectSlideOptionsMode].AddValue(Enum.GetName(typeof(EGameMode), EGameMode.TR_GAMEMODE_NORMAL)); - _AvailableGameModes.Add(EGameMode.TR_GAMEMODE_NORMAL); - _SelectSlides[_SelectSlideOptionsMode].AddValue(Enum.GetName(typeof(EGameMode), EGameMode.TR_GAMEMODE_SHORTSONG)); - _AvailableGameModes.Add(EGameMode.TR_GAMEMODE_SHORTSONG); - } - if (CSongs.VisibleSongs[_SongMenus[_SongMenu].GetSelectedSong()].Medley.Source != EMedleySource.None) - { - _SelectSlides[_SelectSlideOptionsMode].AddValue(Enum.GetName(typeof(EGameMode), EGameMode.TR_GAMEMODE_MEDLEY)); - _AvailableGameModes.Add(EGameMode.TR_GAMEMODE_MEDLEY); - } + _CheckAndAddGameMode(EGameMode.TR_GAMEMODE_NORMAL); + _CheckAndAddGameMode(EGameMode.TR_GAMEMODE_DUET); + _CheckAndAddGameMode(EGameMode.TR_GAMEMODE_SHORTSONG); + _CheckAndAddGameMode(EGameMode.TR_GAMEMODE_MEDLEY); + //Set SelectSlide-Selection to last selected game-mode if possible for (int i = 0; i < _AvailableGameModes.Count; i++) { diff --git a/Vocaluxe/Screens/CScreenTest.cs b/Vocaluxe/Screens/CScreenTest.cs index 52a6ed1f..1d571be9 100644 --- a/Vocaluxe/Screens/CScreenTest.cs +++ b/Vocaluxe/Screens/CScreenTest.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -41,8 +39,8 @@ namespace Vocaluxe.Screens { base.Init(); const string test = "Ö ÄÜabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPGRSTUVWGXZ1234567890"; - SColorF color = new SColorF(1, 0, 0, 1); - CText text = new CText(10, 50, 1, 32, 0, EAlignment.Left, EStyle.Normal, "Normal", color, "jÄNormal Text" + test, -1, 26, 1); + var color = new SColorF(1, 0, 0, 1); + var text = new CText(10, 50, 1, 32, 0, EAlignment.Left, EStyle.Normal, "Normal", color, "jÄNormal Text" + test, -1, 26, 1); _AddText(text); text = new CText(10, 90, 1, 32, 0, EAlignment.Left, EStyle.Bold, "Normal", color, "jÄBold Text" + test, -1, 26, 1); _AddText(text); diff --git a/Vocaluxe/SongQueue/CSongQueue.cs b/Vocaluxe/SongQueue/CSongQueue.cs index 62dbcdb5..e2a461cf 100644 --- a/Vocaluxe/SongQueue/CSongQueue.cs +++ b/Vocaluxe/SongQueue/CSongQueue.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Collections.Generic; @@ -71,7 +69,7 @@ namespace Vocaluxe.SongQueue private bool _AddSong(int songID, EGameMode gameMode) { - if (gameMode == EGameMode.TR_GAMEMODE_DUET && !CSongs.GetSong(songID).IsDuet) + if (!CSongs.GetSong(songID).IsGameModeAvailable(gameMode)) return false; _SongQueue.Add(new SSongQueueEntry(songID, gameMode)); diff --git a/Vocaluxe/SongQueue/ISongQueue.cs b/Vocaluxe/SongQueue/ISongQueue.cs index 69f294a0..c3e32f45 100644 --- a/Vocaluxe/SongQueue/ISongQueue.cs +++ b/Vocaluxe/SongQueue/ISongQueue.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using VocaluxeLib; diff --git a/Vocaluxe/Vocaluxe.csproj b/Vocaluxe/Vocaluxe.csproj index 2360607d..17132251 100644 --- a/Vocaluxe/Vocaluxe.csproj +++ b/Vocaluxe/Vocaluxe.csproj @@ -120,7 +120,29 @@ LINUX;ARCH_X64 Off - + + x86 + none + true + ..\Output\ + prompt + 4 + false + WIN;ARCH_X86;INSTALLER + Off + + + x64 + none + true + ..\Output\ + prompt + 4 + false + WIN;ARCH_X64;INSTALLER + Off + + False ..\Output\x86\SlimDX.dll @@ -131,7 +153,7 @@ False - + ..\Output\x64\SlimDX.dll False @@ -210,6 +232,7 @@ + Form diff --git a/VocaluxeLib/CBasic.cs b/VocaluxeLib/CBasic.cs index 432a4f28..7a588ee1 100644 --- a/VocaluxeLib/CBasic.cs +++ b/VocaluxeLib/CBasic.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion namespace VocaluxeLib diff --git a/VocaluxeLib/CHelper.cs b/VocaluxeLib/CHelper.cs index af49179f..bd06cecb 100644 --- a/VocaluxeLib/CHelper.cs +++ b/VocaluxeLib/CHelper.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -55,7 +53,6 @@ namespace VocaluxeLib public static string ListStrings(string[] str) { string result = string.Empty; - for (int i = 0; i < str.Length; i++) { result += str[i]; @@ -69,7 +66,7 @@ namespace VocaluxeLib public static int TryReadInt(StreamReader sr) { string value = String.Empty; - + try { int tmp = sr.Peek(); @@ -79,7 +76,7 @@ namespace VocaluxeLib if (sr.EndOfStream) break; - char chr = (char)sr.Read(); + var chr = (char)sr.Read(); value += chr.ToString(); tmp = sr.Peek(); } @@ -141,8 +138,8 @@ namespace VocaluxeLib public static List ListFiles(string path, string cast, bool recursive = false, bool fullpath = false) { - List files = new List(); - DirectoryInfo dir = new DirectoryInfo(path); + var files = new List(); + var dir = new DirectoryInfo(path); try { @@ -162,13 +159,7 @@ namespace VocaluxeLib return files; } - public static bool TryParse(string value, out T result) - where T : struct - { - return TryParse(value, out result, false); - } - - public static bool TryParse(string value, out T result, bool ignoreCase) + public static bool TryParse(string value, out T result, bool ignoreCase=false) where T : struct { result = default(T); @@ -201,7 +192,7 @@ namespace VocaluxeLib static class CEncoding { - public static Encoding GetEncoding(string encodingName) + public static Encoding GetEncoding(this string encodingName) { switch (encodingName) { @@ -216,11 +207,11 @@ namespace VocaluxeLib case "UTF8": return Encoding.UTF8; default: - return Encoding.UTF8; + return Encoding.Default; } } - public static string GetEncodingName(Encoding enc) + public static string GetEncodingName(this Encoding enc) { string result = "UTF8"; diff --git a/VocaluxeLib/CXMLReader.cs b/VocaluxeLib/CXMLReader.cs index 5b295bcb..6d4a14af 100644 --- a/VocaluxeLib/CXMLReader.cs +++ b/VocaluxeLib/CXMLReader.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -37,7 +35,7 @@ namespace VocaluxeLib private CXMLReader(string uri) { _FileName = uri; - XPathDocument xmlDoc = new XPathDocument(uri); + var xmlDoc = new XPathDocument(uri); _Navigator = xmlDoc.CreateNavigator(); } @@ -123,7 +121,7 @@ namespace VocaluxeLib public List GetValues(string cast) { - List values = new List(); + var values = new List(); _Navigator.MoveToRoot(); _Navigator.MoveToFirstChild(); @@ -143,7 +141,7 @@ namespace VocaluxeLib public IEnumerable GetAttributes(string cast, string attribute) { - List values = new List(); + var values = new List(); _Navigator.MoveToRoot(); _Navigator.MoveToFirstChild(); diff --git a/VocaluxeLib/Draw/CTexture.cs b/VocaluxeLib/Draw/CTexture.cs index bcfec7df..76a03818 100644 --- a/VocaluxeLib/Draw/CTexture.cs +++ b/VocaluxeLib/Draw/CTexture.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Drawing; diff --git a/VocaluxeLib/Enums.cs b/VocaluxeLib/Enums.cs index 7cf92845..97e008a8 100644 --- a/VocaluxeLib/Enums.cs +++ b/VocaluxeLib/Enums.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -199,7 +197,8 @@ namespace VocaluxeLib TR_CONFIG_GENRE, TR_CONFIG_LANGUAGE, TR_CONFIG_YEAR, - TR_CONFIG_DECADE + TR_CONFIG_DECADE, + TR_CONFIG_DATEADDED // ReSharper restore InconsistentNaming } diff --git a/VocaluxeLib/Extensions.cs b/VocaluxeLib/Extensions.cs new file mode 100644 index 00000000..d6c78529 --- /dev/null +++ b/VocaluxeLib/Extensions.cs @@ -0,0 +1,112 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; + +namespace VocaluxeLib +{ + public static class Extensions + { + /// + /// Resizes the given list to the given size. Removes elements or adds default values + /// + /// + /// + /// + /// + public static void Resize(this List list, int size, T defaultValue = default(T)) + { + int curSize = list.Count; + if (size < curSize) + list.RemoveRange(size, curSize - size); + else if (size > curSize) + list.AddRange(Enumerable.Repeat(defaultValue, size - curSize)); + } + + /// + /// Makes the list at least the given size adding the given default values. + /// + /// + /// + /// + /// + public static void EnsureSize(this List list, int size, T defaultValue) + { + int curSize = list.Count; + if (size > curSize) + list.AddRange(Enumerable.Repeat(defaultValue, size - curSize)); + } + + /// + /// Makes the list at least the given size adding a new instance of T + /// + /// + /// + /// + public static void EnsureSize(this List list, int size) where T : new() + { + if (size > list.Count) + list.Add(new T()); + } + + /// + /// Gets all set bits starting from lowest (Bit 0) + /// + /// + /// + public static IEnumerable GetSetBits(this int value) + { + var result = new List(); + int curBit = 0; + //Evaluate as bitset + while (value > 0) + { + if ((value & 1) != 0) + result.Add(curBit); + value >>= 1; + curBit++; + } + return result; + } + + public static bool ContainsIgnoreCase(this string value, string other) + { + return value.IndexOf(other, StringComparison.CurrentCultureIgnoreCase) >= 0; + } + + public static string TrimMultipleWs(this string value) + { + if (string.IsNullOrEmpty(value)) + return ""; + int start = 0; + int len = value.Length; + while (value[start] == ' ') + { + start++; + if (start >= len) + return ""; + } + if (start > 0) + start--; + int end = --len; + while (value[end] == ' ') + end--; + if (end < len) + end++; + if (end - start < len) + value = value.Substring(start, end - start + 1); + return value; + } + + /// + /// Converts value to a string in fixed point notation using invariant formating (english style decimal point) + /// + /// Value to be converted + /// String representation of value + public static string ToInvariantString(this float value) + { + return value.ToString("F", NumberFormatInfo.InvariantInfo); + } + } +} \ No newline at end of file diff --git a/VocaluxeLib/Game/CPoints.cs b/VocaluxeLib/Game/CPoints.cs index a0f82b90..00749b0f 100644 --- a/VocaluxeLib/Game/CPoints.cs +++ b/VocaluxeLib/Game/CPoints.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -51,7 +49,7 @@ namespace VocaluxeLib.Game for (int player = 0; player < players.Length; player++) { _Rounds[round, player].SongID = songID; - _Rounds[round, player].LineNr = players[player].LineNr; + _Rounds[round, player].VoiceNr = players[player].VoiceNr; _Rounds[round, player].Points = players[player].Points; _Rounds[round, player].PointsGoldenNotes = players[player].PointsGoldenNotes; _Rounds[round, player].PointsLineBonus = players[player].PointsLineBonus; @@ -80,7 +78,7 @@ namespace VocaluxeLib.Game if (round >= NumRounds) return new SPlayer[1]; - SPlayer[] players = new SPlayer[numPlayer]; + var players = new SPlayer[numPlayer]; for (int p = 0; p < players.Length; p++) { @@ -88,7 +86,7 @@ namespace VocaluxeLib.Game players[p].PointsGoldenNotes = _Rounds[round, p].PointsGoldenNotes; players[p].PointsLineBonus = _Rounds[round, p].PointsLineBonus; players[p].SongID = _Rounds[round, p].SongID; - players[p].LineNr = _Rounds[round, p].LineNr; + players[p].VoiceNr = _Rounds[round, p].VoiceNr; players[p].Medley = _Rounds[round, p].Medley; players[p].Duet = _Rounds[round, p].Duet; players[p].ShortSong = _Rounds[round, p].ShortSong; diff --git a/VocaluxeLib/GlobalSuppressions.cs b/VocaluxeLib/GlobalSuppressions.cs index c5b4da19..e24fa573 100644 --- a/VocaluxeLib/GlobalSuppressions.cs +++ b/VocaluxeLib/GlobalSuppressions.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System.Diagnostics.CodeAnalysis; diff --git a/VocaluxeLib/IBasic.cs b/VocaluxeLib/IBasic.cs index 2c85ba9d..efdb45df 100644 --- a/VocaluxeLib/IBasic.cs +++ b/VocaluxeLib/IBasic.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -31,6 +29,8 @@ namespace VocaluxeLib { public interface IConfig { + EOffOn GetSaveModifiedSongs(); + void SetBackgroundMusicVolume(int newVolume); int GetBackgroundMusicVolume(); @@ -47,7 +47,7 @@ namespace VocaluxeLib int GetCoverSize(); - IEnumerable GetSongFolder(); + IEnumerable GetSongFolders(); ESongSorting GetSongSorting(); EOffOn GetTabs(); EOffOn GetIgnoreArticles(); @@ -79,6 +79,7 @@ namespace VocaluxeLib float GetMedleyMinDuration(); string GetFolderProfiles(); + string GetDataPath(); } public interface ITheme @@ -173,13 +174,14 @@ namespace VocaluxeLib void SetNumPlayer(int numPlayer); SPlayer[] GetPlayers(); CPoints GetPoints(); - float GetMidBeatD(); - int GetCurrentBeatD(); + float GetMidRecordedBeat(); + int GetRecordedBeat(); int GetRandom(int max); double GetRandomDouble(); float GetTimeFromBeats(float beat, float bpm); + float GetBeatFromTime(float time, float bpm, float gap); void AddSong(int songID, EGameMode gameMode); void Reset(); @@ -262,6 +264,7 @@ namespace VocaluxeLib public interface IDataBase { bool GetCover(string fileName, ref CTexture texture, int coverSize); + bool GetDataBaseSongInfos(string artist, string title, out int numPlayed, out string dateAdded, out int highscoreID); } public interface IControllers diff --git a/VocaluxeLib/Menu/CBackground.cs b/VocaluxeLib/Menu/CBackground.cs index 068ea9fc..2e77ffc7 100644 --- a/VocaluxeLib/Menu/CBackground.cs +++ b/VocaluxeLib/Menu/CBackground.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -196,7 +194,7 @@ namespace VocaluxeLib.Menu #region internal private void _DrawColor() { - SRectF bounds = new SRectF(0f, 0f, CBase.Settings.GetRenderW(), CBase.Settings.GetRenderH(), CBase.Settings.GetZFar() / 4); + var bounds = new SRectF(0f, 0f, CBase.Settings.GetRenderW(), CBase.Settings.GetRenderH(), CBase.Settings.GetZFar() / 4); CBase.Drawing.DrawColor(Color, bounds); } @@ -206,7 +204,7 @@ namespace VocaluxeLib.Menu CTexture texture = CBase.Theme.GetSkinTexture(_Theme.TextureName, _PartyModeID); if (texture != null) { - RectangleF bounds = new RectangleF(0f, 0f, CBase.Settings.GetRenderW(), CBase.Settings.GetRenderH()); + var bounds = new RectangleF(0f, 0f, CBase.Settings.GetRenderW(), CBase.Settings.GetRenderH()); RectangleF rect; CHelper.SetRect(bounds, out rect, texture.OrigAspect, EAspect.Crop); @@ -221,7 +219,7 @@ namespace VocaluxeLib.Menu CTexture videoTexture = CBase.Theme.GetSkinVideoTexture(_Theme.VideoName, _PartyModeID); if (videoTexture != null) { - RectangleF bounds = new RectangleF(0f, 0f, CBase.Settings.GetRenderW(), CBase.Settings.GetRenderH()); + var bounds = new RectangleF(0f, 0f, CBase.Settings.GetRenderW(), CBase.Settings.GetRenderH()); RectangleF rect; CHelper.SetRect(bounds, out rect, videoTexture.OrigAspect, EAspect.Crop); @@ -236,7 +234,7 @@ namespace VocaluxeLib.Menu CTexture videoTexture = CBase.BackgroundMusic.GetVideoTexture(); if (videoTexture != null) { - RectangleF bounds = new RectangleF(0f, 0f, CBase.Settings.GetRenderW(), CBase.Settings.GetRenderH()); + var bounds = new RectangleF(0f, 0f, CBase.Settings.GetRenderW(), CBase.Settings.GetRenderH()); RectangleF rect; CHelper.SetRect(bounds, out rect, videoTexture.OrigAspect, EAspect.Crop); diff --git a/VocaluxeLib/Menu/CButton.cs b/VocaluxeLib/Menu/CButton.cs index e5551a93..7a9726ec 100644 --- a/VocaluxeLib/Menu/CButton.cs +++ b/VocaluxeLib/Menu/CButton.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/VocaluxeLib/Menu/CEqualizer.cs b/VocaluxeLib/Menu/CEqualizer.cs index c65b42c0..5d75a478 100644 --- a/VocaluxeLib/Menu/CEqualizer.cs +++ b/VocaluxeLib/Menu/CEqualizer.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -258,7 +256,7 @@ namespace VocaluxeLib.Menu for (int i = 0; i < _Bars.Length; i++) { - SRectF bar = new SRectF(Rect.X + dx * i, Rect.Y + Rect.H - _Bars[i] * Rect.H, dx - Space, _Bars[i] * Rect.H, Rect.Z); + var bar = new SRectF(Rect.X + dx * i, Rect.Y + Rect.H - _Bars[i] * Rect.H, dx - Space, _Bars[i] * Rect.H, Rect.Z); SColorF color = Color; if (i == max) color = MaxColor; diff --git a/VocaluxeLib/Menu/CInteraction.cs b/VocaluxeLib/Menu/CInteraction.cs index b84e3892..cf67de78 100644 --- a/VocaluxeLib/Menu/CInteraction.cs +++ b/VocaluxeLib/Menu/CInteraction.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion namespace VocaluxeLib.Menu diff --git a/VocaluxeLib/Menu/CLyric.cs b/VocaluxeLib/Menu/CLyric.cs index a57b5f6a..7c1376a5 100644 --- a/VocaluxeLib/Menu/CLyric.cs +++ b/VocaluxeLib/Menu/CLyric.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -25,15 +23,6 @@ using VocaluxeLib.Songs; namespace VocaluxeLib.Menu { - struct SNote - { - public string Text; - public int StartBeat; - public int EndBeat; - public int Duration; - public ENoteType Type; - } - struct SThemeLyrics { public string Name; @@ -48,7 +37,10 @@ namespace VocaluxeLib.Menu private SThemeLyrics _Theme; private bool _ThemeLoaded; - private readonly List _Notes; + /// + /// Holds a reference to Songline. DO NOT MODIFY + /// + private CSongLine _Line; private CText _Text; private float _X; @@ -111,7 +103,7 @@ namespace VocaluxeLib.Menu _MaxW = 1f; _H = 1f; _Width = 1f; - _Notes = new List(); + _Line = new CSongLine(); _Text = new CText(_PartyModeID); LyricStyle = ELyricStyle.Fill; @@ -201,30 +193,29 @@ namespace VocaluxeLib.Menu return false; } - public void SetLine(CLine line) + public void SetLine(CSongLine line) { - _Notes.Clear(); - + _Line = line; _Width = 0f; - foreach (CNote note in line.Notes) + foreach (CSongNote note in line.Notes) { - SNote n = new SNote {Text = note.Text, StartBeat = note.StartBeat, EndBeat = note.EndBeat, Duration = note.Duration, Type = note.NoteType}; - - _Text.Text = note.Text; - _Text.Style = EStyle.Bold; - - if (n.Type == ENoteType.Freestyle) - _Text.Style = EStyle.BoldItalic; - - RectangleF rect = CBase.Fonts.GetTextBounds(_Text); - _Width += rect.Width; - _Notes.Add(n); + _SetText(note); + _Width += _Text.Rect.W; } } + private void _SetText(CSongNote note) + { + _Text.Text = note.Text; + _Text.Style = EStyle.Bold; + + if (note.Type == ENoteType.Freestyle) + _Text.Style = EStyle.BoldItalic; + } + public void Clear() { - _Notes.Clear(); + _Line = new CSongLine(); } public float GetCurrentLyricPosX() @@ -262,15 +253,10 @@ namespace VocaluxeLib.Menu { float x = _X - _Width / 2; - foreach (SNote note in _Notes) + foreach (CSongNote note in _Line.Notes) { _Text.X = x; - _Text.Style = EStyle.Bold; - _Text.Text = note.Text; - RectangleF rect = CBase.Fonts.GetTextBounds(_Text); - - if (note.Type == ENoteType.Freestyle) - _Text.Style = EStyle.BoldItalic; + _SetText(note); if (currentBeat >= note.StartBeat) { @@ -278,9 +264,8 @@ namespace VocaluxeLib.Menu { _Text.Color = _ColorProcessed; - - float diff = note.EndBeat - note.StartBeat; - if (Math.Abs(diff) < float.Epsilon) + int diff = note.EndBeat - note.StartBeat; + if (diff <= 0) _Text.Draw(0f, 1f); else { @@ -301,7 +286,7 @@ namespace VocaluxeLib.Menu _Text.Draw(); } - x += rect.Width; + x += _Text.Rect.W; } } @@ -310,37 +295,27 @@ namespace VocaluxeLib.Menu float x = _X - _Width / 2; // most left position //find last active note - int lastNote = -1; - for (int i = 0; i < _Notes.Count; i++) - { - if (currentBeat >= _Notes[i].StartBeat) - lastNote = i; - } + int lastNote = _Line.FindPreviousNote((int)currentBeat); int zoomNote = -1; int endBeat = -1; float zoomx = 0f; - for (int note = 0; note < _Notes.Count; note++) + for (int note = 0; note < _Line.Notes.Length; note++) { _Text.X = x; - _Text.Style = EStyle.Bold; - _Text.Text = _Notes[note].Text; - RectangleF rect = CBase.Fonts.GetTextBounds(_Text); + _SetText(_Line.Notes[note]); - if (_Notes[note].Type == ENoteType.Freestyle) - _Text.Style = EStyle.BoldItalic; - - if (currentBeat >= _Notes[note].StartBeat) + if (currentBeat >= _Line.Notes[note].StartBeat) { - int endbeat = _Notes[note].EndBeat; - if (note < _Notes.Count - 1) - endbeat = _Notes[note + 1].StartBeat - 1; + int curEndBeat = _Line.Notes[note].EndBeat; + if (note < _Line.Notes.Length - 1) + curEndBeat = _Line.Notes[note + 1].StartBeat - 1; - if (currentBeat <= endbeat) + if (currentBeat <= curEndBeat) { zoomNote = note; - endBeat = endbeat; + endBeat = curEndBeat; zoomx = _Text.X; } else @@ -358,49 +333,37 @@ namespace VocaluxeLib.Menu _Text.Draw(); } - x += rect.Width; + x += _Text.Rect.W; } if (zoomNote > -1) { - if (_Notes[zoomNote].Duration == 0) - return; - _Text.X = zoomx; - _Text.Text = _Notes[zoomNote].Text; - _Text.Color = _ColorProcessed; - _Text.Style = EStyle.Bold; + _SetText(_Line.Notes[zoomNote]); - if (_Notes[zoomNote].Type == ENoteType.Freestyle) - _Text.Style = EStyle.BoldItalic; - - RectangleF rect = CBase.Fonts.GetTextBounds(_Text); - - float diff = endBeat - _Notes[zoomNote].StartBeat; + float diff = endBeat - _Line.Notes[zoomNote].StartBeat; if (diff <= 0f) diff = 1f; - float p = (currentBeat - _Notes[zoomNote].StartBeat) / diff; + float p = (currentBeat - _Line.Notes[zoomNote].StartBeat) / diff; if (p > 1f) p = 1f; p = 1f - p; float ty = _Text.Y; - float tx = _Text.X; float th = _Text.Height; float tz = _Text.Z; + SRectF normalRect = _Text.Rect; _Text.Height += _Text.Height * p * 0.4f; - RectangleF rectz = CBase.Fonts.GetTextBounds(_Text); - _Text.X -= (rectz.Width - rect.Width) / 2f; - _Text.Y -= (rectz.Height - rect.Height) / 2f; + _Text.X -= (_Text.Rect.W - normalRect.W) / 2f; + _Text.Y -= (_Text.Rect.W - normalRect.H) / 2f; _Text.Z -= 0.1f; _Text.Draw(); _Text.Y = ty; - _Text.X = tx; _Text.Height = th; _Text.Z = tz; } @@ -410,15 +373,10 @@ namespace VocaluxeLib.Menu { float x = _X - _Width / 2; // most left position - foreach (SNote note in _Notes) + foreach (CSongNote note in _Line.Notes) { _Text.X = x; - _Text.Style = EStyle.Bold; - _Text.Text = note.Text; - RectangleF rect = CBase.Fonts.GetTextBounds(_Text); - - if (note.Type == ENoteType.Freestyle) - _Text.Style = EStyle.BoldItalic; + _SetText(note); if (currentBeat >= note.StartBeat) { @@ -432,7 +390,7 @@ namespace VocaluxeLib.Menu _Text.Draw(); } - x += rect.Width; + x += _Text.Rect.W; } } @@ -441,29 +399,23 @@ namespace VocaluxeLib.Menu float x = _X - _Width / 2; // most left position //find last active note - int lastNote = -1; - for (int i = 0; i < _Notes.Count; i++) - { - if (currentBeat >= _Notes[i].StartBeat) - lastNote = i; - } + int lastNote = _Line.FindPreviousNote((int)currentBeat); int jumpNote = -1; float jumpx = 0f; - for (int note = 0; note < _Notes.Count; note++) + for (int note = 0; note < _Line.Notes.Length; note++) { _Text.X = x; - _Text.Style = EStyle.Bold; - _Text.Text = _Notes[note].Text; - RectangleF rect = CBase.Fonts.GetTextBounds(_Text); + _SetText(_Line.Notes[note]); - if (_Notes[note].Type == ENoteType.Freestyle) - _Text.Style = EStyle.BoldItalic; - - if (currentBeat >= _Notes[note].StartBeat) + if (currentBeat >= _Line.Notes[note].StartBeat) { - if (currentBeat <= _Notes[note].EndBeat) + int curEndBeat = _Line.Notes[note].EndBeat; + if (note < _Line.Notes.Length - 1) + curEndBeat = _Line.Notes[note + 1].StartBeat - 1; + + if (currentBeat <= curEndBeat) { jumpNote = note; jumpx = _Text.X; @@ -483,27 +435,20 @@ namespace VocaluxeLib.Menu _Text.Draw(); } - x += rect.Width; + x += _Text.Rect.W; } if (jumpNote < 0) return; - if (_Notes[jumpNote].Duration == 0) - return; _Text.X = jumpx; - _Text.Text = _Notes[jumpNote].Text; - _Text.Color = _ColorProcessed; - _Text.Style = EStyle.Bold; + _SetText(_Line.Notes[jumpNote]); - if (_Notes[jumpNote].Type == ENoteType.Freestyle) - _Text.Style = EStyle.BoldItalic; - - int diff = _Notes[jumpNote].EndBeat - _Notes[jumpNote].StartBeat; + int diff = _Line.Notes[jumpNote].EndBeat - _Line.Notes[jumpNote].StartBeat; if (diff <= 0) diff = 1; - float p = 1f - (currentBeat - _Notes[jumpNote].StartBeat) / diff; + float p = 1f - (currentBeat - _Line.Notes[jumpNote].StartBeat) / diff; if (Math.Abs(p) < float.Epsilon) _Text.Draw(); diff --git a/VocaluxeLib/Menu/CMenu.cs b/VocaluxeLib/Menu/CMenu.cs index 4a3021b9..2c365121 100644 --- a/VocaluxeLib/Menu/CMenu.cs +++ b/VocaluxeLib/Menu/CMenu.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -151,7 +149,7 @@ namespace VocaluxeLib.Menu { foreach (string elName in elements) { - T element = (T)Activator.CreateInstance(typeof(T), _PartyModeID); + var element = (T)Activator.CreateInstance(typeof(T), _PartyModeID); if (element.LoadTheme("//root/" + ThemeName, elName, xmlReader, skinIndex)) addElementHandler(element, elName); else @@ -198,7 +196,7 @@ namespace VocaluxeLib.Menu if (_ThemePath == "") return; - XmlWriterSettings settings = new XmlWriterSettings {Indent = true, Encoding = Encoding.UTF8, ConformanceLevel = ConformanceLevel.Document}; + var settings = new XmlWriterSettings {Indent = true, Encoding = Encoding.UTF8, ConformanceLevel = ConformanceLevel.Document}; string file = Path.Combine(_ThemePath, ThemeName + ".xml"); using (XmlWriter writer = XmlWriter.Create(file, settings)) @@ -770,7 +768,7 @@ namespace VocaluxeLib.Menu if (_Interactions.Count <= 0) return; - List items = new List(); + var items = new List(); for (int i = 0; i < _Interactions.Count; i++) { @@ -779,7 +777,7 @@ namespace VocaluxeLib.Menu _Interactions[i].Type != EType.NameSelection && _Interactions[i].Type != EType.Text && _Interactions[i].Type != EType.SongMenu && _Interactions[i].Type != EType.Equalizer && _Interactions[i].Type != EType.Playlist && _Interactions[i].Type != EType.ParticleEffect)) continue; - SZSort zs = new SZSort {ID = i, Z = _GetZValue(i)}; + var zs = new SZSort {ID = i, Z = _GetZValue(i)}; items.Add(zs); } @@ -1105,10 +1103,10 @@ namespace VocaluxeLib.Menu /// private bool _NextInteraction(SKeyEvent key) { - SKeyEvent[] directions = new SKeyEvent[4]; - float[] distances = new float[4]; - int[] stages = new int[4]; - int[] elements = new int[4]; + var directions = new SKeyEvent[4]; + var distances = new float[4]; + var stages = new int[4]; + var elements = new int[4]; for (int i = 0; i < 4; i++) directions[i] = new SKeyEvent(); @@ -1248,11 +1246,11 @@ namespace VocaluxeLib.Menu private float _GetDistanceDirect(SKeyEvent key, SRectF actualRect, SRectF targetRect) { - PointF source = new PointF(actualRect.X + actualRect.W / 2f, actualRect.Y + actualRect.H / 2f); - PointF dest = new PointF(targetRect.X + targetRect.W / 2f, targetRect.Y + targetRect.H / 2f); + var source = new PointF(actualRect.X + actualRect.W / 2f, actualRect.Y + actualRect.H / 2f); + var dest = new PointF(targetRect.X + targetRect.W / 2f, targetRect.Y + targetRect.H / 2f); - PointF vector = new PointF(dest.X - source.X, dest.Y - source.Y); - float distance = (float)Math.Sqrt(vector.X * vector.X + vector.Y * vector.Y); + var vector = new PointF(dest.X - source.X, dest.Y - source.Y); + var distance = (float)Math.Sqrt(vector.X * vector.X + vector.Y * vector.Y); bool inDirection = false; switch (key.Key) { @@ -1281,11 +1279,11 @@ namespace VocaluxeLib.Menu private float _GetDistance180(SKeyEvent key, SRectF actualRect, SRectF targetRect) { - PointF source = new PointF(actualRect.X + actualRect.W / 2f, actualRect.Y + actualRect.H / 2f); - PointF dest = new PointF(targetRect.X + targetRect.W / 2f, targetRect.Y + targetRect.H / 2f); + var source = new PointF(actualRect.X + actualRect.W / 2f, actualRect.Y + actualRect.H / 2f); + var dest = new PointF(targetRect.X + targetRect.W / 2f, targetRect.Y + targetRect.H / 2f); - PointF vector = new PointF(dest.X - source.X, dest.Y - source.Y); - float distance = (float)Math.Sqrt(vector.X * vector.X + vector.Y * vector.Y); + var vector = new PointF(dest.X - source.X, dest.Y - source.Y); + var distance = (float)Math.Sqrt(vector.X * vector.X + vector.Y * vector.Y); bool inDirection = false; switch (key.Key) { @@ -1584,7 +1582,7 @@ namespace VocaluxeLib.Menu private SRectF _GetRect(CInteraction interaction) { - SRectF result = new SRectF(); + var result = new SRectF(); switch (interaction.Type) { case EType.Button: @@ -1808,7 +1806,7 @@ namespace VocaluxeLib.Menu private void _LoadThemeBasics(CXMLReader xmlReader, int skinIndex) { // Backgrounds - CBackground background = new CBackground(_PartyModeID); + var background = new CBackground(_PartyModeID); int i = 1; while (background.LoadTheme("//root/" + ThemeName, "Background" + i, xmlReader, skinIndex)) { @@ -1818,7 +1816,7 @@ namespace VocaluxeLib.Menu } // Statics - CStatic stat = new CStatic(_PartyModeID); + var stat = new CStatic(_PartyModeID); i = 1; while (stat.LoadTheme("//root/" + ThemeName, "Static" + i, xmlReader, skinIndex)) { @@ -1828,7 +1826,7 @@ namespace VocaluxeLib.Menu } // Texts - CText text = new CText(_PartyModeID); + var text = new CText(_PartyModeID); i = 1; while (text.LoadTheme("//root/" + ThemeName, "Text" + i, xmlReader, skinIndex)) { @@ -1838,7 +1836,7 @@ namespace VocaluxeLib.Menu } // ParticleEffects - CParticleEffect partef = new CParticleEffect(_PartyModeID); + var partef = new CParticleEffect(_PartyModeID); i = 1; while (partef.LoadTheme("//root/" + ThemeName, "ParticleEffect" + i, xmlReader, skinIndex)) { diff --git a/VocaluxeLib/Menu/CMenuParty.cs b/VocaluxeLib/Menu/CMenuParty.cs index d57a9304..cbb68aff 100644 --- a/VocaluxeLib/Menu/CMenuParty.cs +++ b/VocaluxeLib/Menu/CMenuParty.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/VocaluxeLib/Menu/CNameSelection.cs b/VocaluxeLib/Menu/CNameSelection.cs index b2238b53..d162d539 100644 --- a/VocaluxeLib/Menu/CNameSelection.cs +++ b/VocaluxeLib/Menu/CNameSelection.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -409,9 +407,9 @@ namespace VocaluxeLib.Menu { if ((i + offset * _Tiles.Count) < _VisibleProfiles.Count) { - _Tiles[i].Avatar.Texture = CBase.Profiles.GetProfiles()[_VisibleProfiles[i + offset * _Tiles.Count]].Avatar.Texture; + _Tiles[i].Avatar.Texture = CBase.Profiles.GetAvatar(_VisibleProfiles[i + offset * _Tiles.Count]); _Tiles[i].Avatar.Color = new SColorF(1, 1, 1, 1); - _Tiles[i].Name.Text = CBase.Profiles.GetProfiles()[_VisibleProfiles[i + offset * _Tiles.Count]].PlayerName; + _Tiles[i].Name.Text = CBase.Profiles.GetPlayerName(_VisibleProfiles[i + offset * _Tiles.Count]); ; _Tiles[i].ProfileID = _VisibleProfiles[i + offset * _Tiles.Count]; } else @@ -487,10 +485,10 @@ namespace VocaluxeLib.Menu { for (int j = 0; j < _NumW; j++) { - SRectF rect = new SRectF(Rect.X + j * (_TileW + _SpaceW), Rect.Y + i * (_TileH + _SpaceH), _TileW, _TileH, Rect.Z); - CStatic tileStatic = new CStatic(_PartyModeID, _TextureEmptyTile, ColorEmptyTile, rect) {Aspect = EAspect.Crop}; - CText tileText = new CText(rect.X + rect.W / 2, rect.Y + rect.H + _Theme.NameSpace, rect.Z, _Theme.NameHeight, rect.W, EAlignment.Center, _Theme.NameStyle, - _Theme.NameFont, _Theme.NameColor, ""); + var rect = new SRectF(Rect.X + j * (_TileW + _SpaceW), Rect.Y + i * (_TileH + _SpaceH), _TileW, _TileH, Rect.Z); + var tileStatic = new CStatic(_PartyModeID, _TextureEmptyTile, ColorEmptyTile, rect) {Aspect = EAspect.Crop}; + var tileText = new CText(rect.X + rect.W / 2, rect.Y + rect.H + _Theme.NameSpace, rect.Z, _Theme.NameHeight, rect.W, EAlignment.Center, _Theme.NameStyle, + _Theme.NameFont, _Theme.NameColor, ""); _Tiles.Add(new CTile(tileStatic, tileText, -1)); } } @@ -501,21 +499,21 @@ namespace VocaluxeLib.Menu _VisibleProfiles.Clear(); CProfile[] profiles = CBase.Profiles.GetProfiles(); - for (int i = 0; i < profiles.Length; i++) + foreach (CProfile profile in profiles) { - bool visible = profiles[i].Active == EOffOn.TR_CONFIG_ON; + bool visible = profile.Active == EOffOn.TR_CONFIG_ON; if (visible) { //Show profile only if active for (int p = 0; p < CBase.Game.GetNumPlayer(); p++) { //Don't show profile if is selected, but if selected and guest - if (CBase.Game.GetPlayers()[p].ProfileID == profiles[i].ID && profiles[i].GuestProfile == EOffOn.TR_CONFIG_OFF) + if (CBase.Game.GetPlayers()[p].ProfileID == profile.ID && profile.GuestProfile == EOffOn.TR_CONFIG_OFF) visible = false; } } if (visible) - _VisibleProfiles.Add(profiles[i].ID); + _VisibleProfiles.Add(profile.ID); } } diff --git a/VocaluxeLib/Menu/CObjectInteractions.cs b/VocaluxeLib/Menu/CObjectInteractions.cs index 1aafbb94..57d86b00 100644 --- a/VocaluxeLib/Menu/CObjectInteractions.cs +++ b/VocaluxeLib/Menu/CObjectInteractions.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -307,7 +305,7 @@ namespace VocaluxeLib.Menu if (_Interactions.Count <= 0) return; - List items = new List(); + var items = new List(); for (int i = 0; i < _Interactions.Count; i++) { @@ -320,7 +318,7 @@ namespace VocaluxeLib.Menu _Interactions[i].Type == EType.SongMenu || _Interactions[i].Type == EType.Equalizer)) { - SZSort zs = new SZSort {ID = i, Z = _GetZValue(i)}; + var zs = new SZSort {ID = i, Z = _GetZValue(i)}; items.Add(zs); } } @@ -613,10 +611,10 @@ namespace VocaluxeLib.Menu /// private bool _NextInteraction(SKeyEvent key) { - SKeyEvent[] directions = new SKeyEvent[4]; - float[] distances = new float[4]; - int[] stages = new int[4]; - int[] elements = new int[4]; + var directions = new SKeyEvent[4]; + var distances = new float[4]; + var stages = new int[4]; + var elements = new int[4]; for (int i = 0; i < 4; i++) directions[i] = new SKeyEvent(); @@ -756,11 +754,11 @@ namespace VocaluxeLib.Menu private float _GetDistanceDirect(SKeyEvent key, SRectF actualRect, SRectF targetRect) { - PointF source = new PointF(actualRect.X + actualRect.W / 2f, actualRect.Y + actualRect.H / 2f); - PointF dest = new PointF(targetRect.X + targetRect.W / 2f, targetRect.Y + targetRect.H / 2f); + var source = new PointF(actualRect.X + actualRect.W / 2f, actualRect.Y + actualRect.H / 2f); + var dest = new PointF(targetRect.X + targetRect.W / 2f, targetRect.Y + targetRect.H / 2f); - PointF vector = new PointF(dest.X - source.X, dest.Y - source.Y); - float distance = (float)Math.Sqrt(vector.X * vector.X + vector.Y * vector.Y); + var vector = new PointF(dest.X - source.X, dest.Y - source.Y); + var distance = (float)Math.Sqrt(vector.X * vector.X + vector.Y * vector.Y); bool inDirection = false; switch (key.Key) { @@ -789,11 +787,11 @@ namespace VocaluxeLib.Menu private float _GetDistance180(SKeyEvent key, SRectF actualRect, SRectF targetRect) { - PointF source = new PointF(actualRect.X + actualRect.W / 2f, actualRect.Y + actualRect.H / 2f); - PointF dest = new PointF(targetRect.X + targetRect.W / 2f, targetRect.Y + targetRect.H / 2f); + var source = new PointF(actualRect.X + actualRect.W / 2f, actualRect.Y + actualRect.H / 2f); + var dest = new PointF(targetRect.X + targetRect.W / 2f, targetRect.Y + targetRect.H / 2f); - PointF vector = new PointF(dest.X - source.X, dest.Y - source.Y); - float distance = (float)Math.Sqrt(vector.X * vector.X + vector.Y * vector.Y); + var vector = new PointF(dest.X - source.X, dest.Y - source.Y); + var distance = (float)Math.Sqrt(vector.X * vector.X + vector.Y * vector.Y); bool inDirection = false; switch (key.Key) { @@ -1002,7 +1000,7 @@ namespace VocaluxeLib.Menu private SRectF _GetRect(int interaction) { - SRectF result = new SRectF(); + var result = new SRectF(); switch (_Interactions[interaction].Type) { case EType.Button: diff --git a/VocaluxeLib/Menu/COrderedDictionaryLite.cs b/VocaluxeLib/Menu/COrderedDictionaryLite.cs index 76ef3a88..04199f9a 100644 --- a/VocaluxeLib/Menu/COrderedDictionaryLite.cs +++ b/VocaluxeLib/Menu/COrderedDictionaryLite.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/VocaluxeLib/Menu/CParticle.cs b/VocaluxeLib/Menu/CParticle.cs index 3e49902b..6ab8a9c1 100644 --- a/VocaluxeLib/Menu/CParticle.cs +++ b/VocaluxeLib/Menu/CParticle.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -203,7 +201,7 @@ namespace VocaluxeLib.Menu break; case EParticleType.Snow: - int maxy = (int)Math.Round(CBase.Settings.GetRenderH() - _Size * 0.4f); + var maxy = (int)Math.Round(CBase.Settings.GetRenderH() - _Size * 0.4f); if (Math.Round(Y) < maxy) { @@ -525,8 +523,8 @@ namespace VocaluxeLib.Menu break; } - int w = (int)(Rect.W - size / 4f); - int h = (int)(Rect.H - size / 4f); + var w = (int)(Rect.W - size / 4f); + var h = (int)(Rect.H - size / 4f); if (w < 0) w = 0; diff --git a/VocaluxeLib/Menu/CPlaylist.cs b/VocaluxeLib/Menu/CPlaylist.cs index 33af9c65..1610fd52 100644 --- a/VocaluxeLib/Menu/CPlaylist.cs +++ b/VocaluxeLib/Menu/CPlaylist.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -86,7 +84,7 @@ namespace VocaluxeLib.Menu { private class CPlaylistElementContent { - public EGameMode[] Modes; + public IList Modes; public int SongID; public EGameMode Mode; } @@ -631,7 +629,7 @@ namespace VocaluxeLib.Menu CBase.Playlist.MovePlaylistSongUp(ActivePlaylistID, CurrentPlaylistElement + Offset); UpdatePlaylist(); - SKeyEvent key = new SKeyEvent {Key = Keys.Up}; + var key = new SKeyEvent {Key = Keys.Up}; if (CurrentPlaylistElement > scrollLimit) { @@ -660,7 +658,7 @@ namespace VocaluxeLib.Menu CBase.Playlist.MovePlaylistSongDown(ActivePlaylistID, CurrentPlaylistElement + Offset); UpdatePlaylist(); - SKeyEvent key = new SKeyEvent {Key = Keys.Down}; + var key = new SKeyEvent {Key = Keys.Down}; if (CurrentPlaylistElement >= scrollLimit) { @@ -973,11 +971,11 @@ namespace VocaluxeLib.Menu if (!mouseEvent.LBH && DragAndDropSongID != -1) { - EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL; CSong song = CBase.Songs.GetSongByID(DragAndDropSongID); if (song != null) { + var gm = EGameMode.TR_GAMEMODE_NORMAL; if (song.IsDuet) gm = EGameMode.TR_GAMEMODE_DUET; @@ -1102,7 +1100,7 @@ namespace VocaluxeLib.Menu for (int i = 0; i < Math.Floor(Rect.H / _Theme.EntryHeight); i++) { - CPlaylistElement en = new CPlaylistElement + var en = new CPlaylistElement { Background = new CStatic(_PartyModeID, _Theme.TextureBackgroundName, BackgroundColor, new SRectF(Rect.X, Rect.Y + (i * _Theme.EntryHeight), Rect.W, _Theme.EntryHeight, Rect.Z)), @@ -1143,7 +1141,7 @@ namespace VocaluxeLib.Menu _PlaylistElementContents.Clear(); for (int i = 0; i < CBase.Playlist.GetPlaylistSongCount(ActivePlaylistID); i++) { - CPlaylistElementContent pec = new CPlaylistElementContent + var pec = new CPlaylistElementContent { SongID = CBase.Playlist.GetPlaylistSong(ActivePlaylistID, i).SongID, Modes = CBase.Songs.GetSongByID(CBase.Playlist.GetPlaylistSong(ActivePlaylistID, i).SongID).AvailableGameModes, @@ -1162,7 +1160,7 @@ namespace VocaluxeLib.Menu _PlaylistElementContents.Clear(); for (int i = 0; i < CBase.Playlist.GetPlaylistSongCount(ActivePlaylistID); i++) { - CPlaylistElementContent pec = new CPlaylistElementContent {SongID = CBase.Playlist.GetPlaylistSong(ActivePlaylistID, i).SongID}; + var pec = new CPlaylistElementContent {SongID = CBase.Playlist.GetPlaylistSong(ActivePlaylistID, i).SongID}; pec.Modes = CBase.Songs.GetSongByID(pec.SongID).AvailableGameModes; pec.Mode = CBase.Playlist.GetPlaylistSong(ActivePlaylistID, i).GameMode; _PlaylistElementContents.Add(pec); @@ -1222,7 +1220,7 @@ namespace VocaluxeLib.Menu string t1 = CBase.Language.Translate(_Theme.Text1.Text).Replace("%a", song.Artist).Replace("%t", song.Title); _PlaylistElements[i].Text1.Text = /*(Offset + i + 1) + ") " + */ t1; //TODO: Add text field for the number _PlaylistElements[i].SelectSlide.Clear(); - for (int g = 0; g < pec.Modes.Length; g++) + for (int g = 0; g < pec.Modes.Count; g++) { _PlaylistElements[i].SelectSlide.AddValue(Enum.GetName(typeof(EGameMode), pec.Modes[g])); if (pec.Modes[g] == pec.Mode) diff --git a/VocaluxeLib/Menu/CScreenSetting.cs b/VocaluxeLib/Menu/CScreenSetting.cs index ffe6e98f..9d377504 100644 --- a/VocaluxeLib/Menu/CScreenSetting.cs +++ b/VocaluxeLib/Menu/CScreenSetting.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; diff --git a/VocaluxeLib/Menu/CSelectSlide.cs b/VocaluxeLib/Menu/CSelectSlide.cs index b7f62571..19d5d924 100644 --- a/VocaluxeLib/Menu/CSelectSlide.cs +++ b/VocaluxeLib/Menu/CSelectSlide.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -750,10 +748,10 @@ namespace VocaluxeLib.Menu _ValueBounds.Clear(); for (int i = 0; i < numvis; i++) { - CText text = new CText(0, 0, 0, TextH, MaxW, EAlignment.Center, _Theme.TextStyle, _Theme.TextFont, TextColor, _ValueNames[i + offset], - _ValuePartyModeIDs[i + offset]); + var text = new CText(0, 0, 0, TextH, MaxW, EAlignment.Center, _Theme.TextStyle, _Theme.TextFont, TextColor, _ValueNames[i + offset], + _ValuePartyModeIDs[i + offset]); - SColorF alpha = new SColorF(1f, 1f, 1f, 0.35f); + var alpha = new SColorF(1f, 1f, 1f, 0.35f); if (i + offset == _Selection) { text.Color = SelTextColor; @@ -774,7 +772,7 @@ namespace VocaluxeLib.Menu if (WithTextures) { float dh = text.Y - Rect.Y - Rect.H * 0.1f; - SRectF rect = new SRectF(text.X - dh / 2, Rect.Y + Rect.H * 0.05f, dh, dh, Rect.Z); + var rect = new SRectF(text.X - dh / 2, Rect.Y + Rect.H * 0.05f, dh, dh, Rect.Z); CBase.Drawing.DrawTexture(_Textures[i + offset], rect, alpha); _ValueBounds.Add(rect); } diff --git a/VocaluxeLib/Menu/CStatic.cs b/VocaluxeLib/Menu/CStatic.cs index 3d0678be..5051abe7 100644 --- a/VocaluxeLib/Menu/CStatic.cs +++ b/VocaluxeLib/Menu/CStatic.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -205,11 +203,9 @@ namespace VocaluxeLib.Menu public void Draw(float scale, float z, EAspect aspect, bool forceDraw = false) { - CTexture texture = Texture; - if (texture == null) - texture = new CTexture((int)Rect.W, (int)Rect.H); + CTexture texture = Texture ?? new CTexture((int)Rect.W, (int)Rect.H); - SRectF bounds = new SRectF( + var bounds = new SRectF( Rect.X - Rect.W * (scale - 1f), Rect.Y - Rect.H * (scale - 1f), Rect.W + 2 * Rect.W * (scale - 1f), @@ -220,7 +216,7 @@ namespace VocaluxeLib.Menu if (aspect != EAspect.Stretch) { - RectangleF bounds2 = new RectangleF(bounds.X, bounds.Y, bounds.W, bounds.H); + var bounds2 = new RectangleF(bounds.X, bounds.Y, bounds.W, bounds.H); RectangleF rect2; CHelper.SetRect(bounds2, out rect2, texture.OrigAspect, aspect); @@ -230,7 +226,7 @@ namespace VocaluxeLib.Menu rect.H = rect2.Height; } - SColorF color = new SColorF(Color.R, Color.G, Color.B, Color.A * Alpha); + var color = new SColorF(Color.R, Color.G, Color.B, Color.A * Alpha); if (Visible || forceDraw || (CBase.Settings.GetGameState() == EGameState.EditTheme)) { CBase.Drawing.DrawTexture(texture, rect, color, bounds); diff --git a/VocaluxeLib/Menu/CText.cs b/VocaluxeLib/Menu/CText.cs index e326d5d8..94c2c01c 100644 --- a/VocaluxeLib/Menu/CText.cs +++ b/VocaluxeLib/Menu/CText.cs @@ -1,20 +1,18 @@ #region license -// /* -// This file is part of Vocaluxe. +// This file is part of Vocaluxe. // -// Vocaluxe 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 3 of the License, or -// (at your option) any later version. +// Vocaluxe 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 3 of the License, or +// (at your option) any later version. // -// Vocaluxe 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. +// Vocaluxe 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 Vocaluxe. If not, see . -// */ +// You should have received a copy of the GNU General Public License +// along with Vocaluxe. If not, see . #endregion using System; @@ -424,7 +422,7 @@ namespace VocaluxeLib.Menu writer.WriteElementString("Align", Enum.GetName(typeof(EAlignment), Align)); writer.WriteComment(": Text align vertical (on downsizing): " + CHelper.ListStrings(Enum.GetNames(typeof(EHAlignment)))); - writer.WriteElementString("HAlign", Enum.GetName(typeof(EHAlignment), ResizeAlign)); + writer.WriteElementString("ResizeAlign", Enum.GetName(typeof(EHAlignment), ResizeAlign)); writer.WriteComment("