855 Commits
Author SHA1 Message Date
Stefan 81c323363a Release 0.4.1
Release 0.4.1
2020-03-10 07:52:34 +01:00
Stefan 1356b61383 Merge pull request #507 from lukeIam/release-0.4.1
Fix: replace invalid github tokens in 0.4.1 branch
2020-03-09 19:17:58 +01:00
Stefan 3806c77d98 Merge branch 'release-0.4.1' into release-0.4.1 2020-03-09 19:02:37 +01:00
lukeIam a6c5766138 Fix: replace invalid github tokens in 0.4.1 branch 2020-03-09 18:24:20 +01:00
Stefan 3bbcb2d56a Merge pull request #328 from Vocaluxe/release-0.4.1
Bugfix release 0.4.1
2020-03-08 17:24:28 +01:00
daggeg 25fd140b3e Merge pull request #497 from Vocaluxe/Readme-patch-1
Update Readme.txt
2020-02-11 13:01:00 +01:00
Stefan 5e481878f5 Update Readme.txt 2020-02-11 06:32:26 +01:00
Stefan c05f2ab548 Merge pull request #495 from Vocaluxe/FixSubLineAlphaCalculation_release-0.4.1
Fix alpha calculation for last sub line (release-0.4.1)
2020-02-09 20:23:54 +01:00
Stefan 919ab803d1 Fix alpha calculation for last sub line (release-0.4.1)
Sub line was displayed wrong, if the last lyric line has a bigger distance to the second last line. Alpha calculation for sub lines stopped one line to early and might be visible even if it shouldn't be.
2020-02-09 20:02:59 +01:00
daggeg dd7be5c575 Merge pull request #489 from Vocaluxe/FixPlaylistScrollOffset_release-0.4.1
Scroll offset was ignored while singing a single playlist song (fix #487 for release-0.4.1)
2020-02-08 11:19:50 +01:00
Stefan 546ccf4748 Scroll offset was ignored while singing a single playlist song (fix #487 for release-0.4.1) 2020-02-07 21:17:36 +01:00
Stefan d457c6c66f Merge pull request #481 from Vocaluxe/RelativeSongPathFix-0.4.1
Relative song paths will now be converted to absolute song paths (release-0.4.1)
2020-02-04 14:10:09 +01:00
Stefan cfc6bfa738 Relative song paths will now be converted to absolute song paths
Same fix from GaryCXJk for release-0.4.1
2020-02-04 08:46:48 +01:00
daggeg de80eeb823 Merge pull request #448 from Vocaluxe/VideoPreviewFix-release0.4.1
Fix release-0.4.1: Config.Video.VideoPreview is ignored (fixes #391)
2020-01-17 17:32:28 +01:00
Stefan 2bb2819b33 Merge branch 'release-0.4.1' into VideoPreviewFix-release0.4.1 2020-01-16 22:01:16 +01:00
daggeg c0e2281b74 Merge pull request #451 from Vocaluxe/JumpTo_FolderSort-fix0.4.1
Fix release-0.4.1: JumpTo not working correctly on folder sort (fix #449)
2020-01-16 08:28:43 +01:00
Stefan 9e8952157a Fix release-0.4.1: JumpTo not working correctly on folder sort (fix #449) 2020-01-16 07:15:23 +01:00
Stefan e2dcbc2ecf Fix release-0.4.1: Config.Video.VideoPreview is ignored (fixes #391) 2020-01-15 23:46:01 +01:00
Stefan 4c76c88074 Fix release-0.4.1: Config.Video.VideoPreview is ignored (fixes #391) 2020-01-15 23:44:49 +01:00
lukeIam 890e6d84fb Merge pull request #380 from lukeIam/release-0.4.1
Use TLS 1.2 for downloading GStreamer
2018-03-01 17:21:29 +01:00
lukeIam cd5ab37afd Use TLS 1.2 for downloading GStreamer
(cherry picked from commit 617cf70bf8)
2018-03-01 11:24:50 +01:00
Florian Küpper 5adde7b9c4 Merge pull request #373 from lukeIam/release-0.4.1
New PortAudio
2018-02-04 16:24:11 +01:00
lukeIam 61dcfc3aeb Upgrade PortAudio to version pa_stable_v190600_20161030
(cherry picked from commit 16f9ef2c88)
2018-02-04 16:04:16 +01:00
lukeIam 342123dc4e Removed useless metapackage vocaluxe.dependencies
(cherry picked from commit 20d13d9f06)

# Conflicts:
#	Vocaluxe/packages.config
2018-02-04 16:04:14 +01:00
Florian Küpper c55f779dba Merge pull request #358 from flokuep/release-0.4.1
Release 0.4.1
2017-12-26 16:33:49 +01:00
Florian Küpper 675edce193 Fix: winner calc in tic-tac-toe mode (closes #349) 2017-12-26 15:46:21 +01:00
Florian Küpper f9e71693ea Fix: Winner in challenge mode wasn't calculated properly 2017-12-26 12:51:16 +01:00
Florian Küpper e99f1adfae Fixed exception on task dispose (fix #357) 2017-12-26 11:37:00 +01:00
Florian Küpper 330f755c44 Merge pull request #352 from lukeIam/CouldNotQueryPos
Meaningless "Could not query position" messages in the log
2017-12-22 16:31:27 +01:00
lukeIam 4ceac098ab Merge branch 'release-0.4.1' of https://github.com/Vocaluxe/Vocaluxe into CouldNotQueryPos 2017-12-21 15:13:51 +01:00
lukeIam 9599c1a616 Fix: meaningless "Could not query position" messages in the log 2017-12-21 15:08:12 +01:00
Florian Küpper 5ec3f9a8a7 Merge pull request #347 from lukeIam/release-0.4.1
_PreviewStartHelperTask null check from @Pr3di
2017-12-19 11:12:47 +01:00
Pr3di 60a6f8d347 NullPointerException abgefangen
(cherry picked from commit 6782f5104a)
2017-12-19 10:43:35 +01:00
Florian Küpper 533a7e64d2 Merge pull request #345 from flokuep/release-0.4.1
Minor fixes.
2017-12-05 17:11:51 +01:00
Florian Küpper 2d13c3a834 Merge branch 'release-0.4.1' into release-0.4.1 2017-12-05 16:54:04 +01:00
Florian Küpper 064b5412a6 Fix: Increase team number in PartyNameSelction 2017-12-03 12:38:50 +01:00
Florian Küpper 2f4067c374 Merge pull request #346 from Jiiniasu/0.4.1-Button-Fix
Fix: Button SelColor
2017-12-02 22:22:39 +01:00
Jiiniasu 7f3d9c5f41 Fix: Button SelColor
Correctly set Selcolor when creating one based on an existing button.
2017-12-02 22:12:58 +01:00
Florian Küpper e9abec565d Removed unused tables after converting Ultrastar.db 2017-12-02 21:57:22 +01:00
Florian Küpper 5296627f8d Fixed converting Ultrastar.db 2017-12-02 16:45:41 +01:00
Florian Küpper 7fdbd8780b Fixed updating team-slide in PartyNameSelection 2017-12-01 17:14:28 +01:00
Florian Küpper feb5c1eaed Fix: PartyNameSelection visibility of team increase/decrease button 2017-12-01 16:41:21 +01:00
Florian Küpper 1baed149af Updated AdvancedInstaller version 2017-11-23 16:54:30 +01:00
Florian Küpper d7e924b72b Fixed installer file names 2017-11-23 16:50:07 +01:00
Florian Küpper b8fb0d7549 Make reading HighscoreDB more robust if song entries are incomplete 2017-11-22 20:14:31 +01:00
Florian Küpper 7dbd2363db Fix: Points were assigned to not sung songs 2017-11-21 09:49:45 +01:00
Florian Küpper 081ca63d85 Merge branch 'release-0.4.1' of github.com:Vocaluxe/Vocaluxe into release-0.4.1 2017-11-16 12:27:31 +01:00
Florian Küpper 06d6be528a Fixed wrong song folder path that leads to not working folder-sorting 2017-11-16 12:26:38 +01:00
lukeIam ce4529325b Fix: exception when intro video is missing 2017-11-06 10:08:06 +01:00
lukeIam 52f1b8f546 Fix: Vocaluxe crashes when _CopyDecodedFrameToBuffer() fails 2017-11-04 20:13:19 +01:00
lukeIam 79bbcbdccb Try to close the other modules correctly if a single one fails to close ( on program shutdown) 2017-11-04 19:47:47 +01:00
lukeIam a92353c9a2 Try to fix exceptions while closing Vocaluxe (during closing bg video) (may fixes #320) 2017-11-04 19:34:55 +01:00
lukeIam 3e0eec8294 Synchronize access to _PreviewStartHelperTask object (may fixes #330) 2017-11-04 14:58:48 +01:00
Florian Küpper ceaa77ffe7 Merge pull request #326 from flokuep/0.4.0-fixes
Small fixes
2017-10-30 18:29:06 +01:00
Florian Küpper c87016c4f8 Merge pull request #325 from lukeIam/PACloaseStreamHandling
PortAudio close-stream-handling
2017-10-30 18:28:43 +01:00
Florian Küpper 4d754c0876 Forget to remove a function... 2017-10-08 12:59:46 +02:00
Florian Küpper 8244fd638b Log missing avatar as error instead of throwing exceptions 2017-10-08 12:56:37 +02:00
Florian Küpper 85ad6050f8 Fixed lyrics visibility (closes #322) 2017-10-08 12:56:16 +02:00
Florian Küpper df34766f35 Fixed aspect of avatars 2017-10-08 12:40:59 +02:00
lukeIam ad5ffd7578 Catch potential errors from PortAudio Close() and Dispose() 2017-10-04 14:20:31 +02:00
lukeIam 4784e57370 Refactored mutex use while closing streams in CPortAudioHandle (should fix #320) 2017-10-04 13:12:14 +02:00
Florian Küpper 41cf7a5ac2 push to trigger appveyor 2017-09-28 17:31:16 +02:00
Florian Küpper d94868f466 Fixed drawing non-latin character not correctly, closes #310 2017-09-07 16:56:31 +02:00
Florian Küpper 01fa98adaf Merge pull request #307 from lukeIam/develop
Fixed: $(APPVEYOR_REPO_COMMIT) tag is missing in some releases
2017-09-02 16:47:21 +02:00
lukeIam 7594ea6bad Fixed: $(APPVEYOR_REPO_COMMIT) tag is missing in some releases 2017-09-02 16:40:28 +02:00
Florian Küpper 6fbe545d32 Merge pull request #294 from Vocaluxe/update_Readme
Update readme for new release
2017-09-02 16:14:51 +02:00
Florian Küpper b39db0361e Merge branch 'develop' into update_Readme 2017-09-02 15:59:20 +02:00
Florian Küpper 2959e82daa Updated spanish translation (#305) 2017-09-02 14:36:23 +02:00
Florian Küpper 63e533f456 Merge branch 'develop' into update_Readme 2017-09-02 11:50:14 +02:00
Florian Küpper ef20b30d68 Merge pull request #302 from lukeIam/GSTAudioStreamDispose
Double check for null in _Dispose of CGstreamerSharpAudioStream
2017-09-02 11:47:52 +02:00
lukeIam 836aeeba92 Double check for null in _Dispose of CGstreamerSharpAudioStream (closes #226) 2017-09-02 10:26:48 +02:00
Florian Küpper 53f204740e Merge branch 'develop' into update_Readme 2017-09-02 10:05:22 +02:00
Florian Küpper a284b0f2b9 Merge pull request #296 from flokuep/installer
Update installer
2017-09-02 10:04:48 +02:00
Florian Küpper a2b98e1e47 corrected .net version 2017-09-01 23:02:15 +02:00
lukeIam acef61a26e Added Visual C++ Redistributable Package 2010 to README.md 2017-09-01 21:25:39 +02:00
Florian Küpper 0d0789d091 Merge branch 'develop' into update_Readme 2017-09-01 21:19:47 +02:00
Florian Küpper dfd5650d2b Updated requirements in readme 2017-09-01 21:19:32 +02:00
lukeIam 29375e9b80 Merge branch 'dependencyErrorMessage' into installer 2017-09-01 20:48:31 +02:00
lukeIam 519682e2cb Changed Dependency error messages: removed VC2012 check and added VC2010 2017-09-01 20:46:04 +02:00
lukeIam 8d4718166b Merge pull request #299 from flokuep/develop
Fixes and smaller improvements
2017-09-01 17:57:03 +02:00
Florian Küpper 60a27fbf27 Updated AssemblyInfo.cs to current year 2017-08-31 23:37:10 +02:00
Florian Küpper 6e39633a87 updated gitignore
- pngs in profiles folder
- .dll.config files
- .vs folder (visual studio stuff)
2017-08-31 23:25:10 +02:00
Florian Küpper 1fa744e763 Fixed unwanted scrolling in highscore 2017-08-31 23:23:16 +02:00
Florian Küpper 1b504482e8 Added more missing controls 2017-08-31 23:14:09 +02:00
Florian Küpper 57aa36c24e Fixed some playlist element issues
- SongMenu wasn't resizing after playlist closed
- Playlist Buttons couldn't be used with keyboard
2017-08-31 23:07:25 +02:00
Florian Küpper e9e9b6c790 Better navigation on taking webcam snapshot 2017-08-31 22:35:27 +02:00
Florian Küpper e8f0a9b4c4 Guest3 is now really a guest... 2017-08-31 22:27:53 +02:00
Florian Küpper 9e7d47d39d Added missing controls to readme 2017-08-31 22:26:07 +02:00
Florian Küpper 0981d101a3 Fixed pm name selection shows 'team' if it shouldn't 2017-08-31 22:22:21 +02:00
Florian Küpper 63abc5f7cf Fixed not saving config when jumping directly to songs 2017-08-31 22:10:04 +02:00
Florian Küpper 1b616398a9 Fixed crash when choosing sorting:folder and category:yes 2017-08-31 22:07:26 +02:00
Florian Küpper 21d7d3de60 fixed not working button in song screen 2017-08-31 21:25:42 +02:00
Florian Küpper ddea7f7cc4 Some minor improvements in readme.txt 2017-08-31 18:04:16 +02:00
Florian Küpper e348c33e92 Fixed wrong closing tag in readme 2017-08-30 22:27:51 +02:00
Florian Küpper e2575e2395 Update Roadmap.txt 2017-08-30 21:43:58 +02:00
Florian Küpper 9f77b456f1 Update output/readme for next release 2017-08-30 21:38:29 +02:00
Florian Küpper ec038f9fc3 Merge branch 'develop' of github.com:Vocaluxe/Vocaluxe into installer 2017-08-30 21:19:12 +02:00
Florian Küpper 7dc2a28af9 Fixed profile problem and updated uninstaller
Uninstaller asks know if data folder should be deleted (songs, profiles,
playlists, ...)
2017-08-30 21:17:20 +02:00
Florian Küpper f69543c5db Improved folder handling again 2017-08-28 21:06:05 +02:00
Florian Küpper fa51af770e Better handling of git folder in installer script 2017-08-28 20:16:29 +02:00
Florian Küpper cfab637a71 Improved installer 2017-08-28 20:15:59 +02:00
Florian Küpper 0fd01ca59a Fixed creating folders in installer build 2017-08-28 20:12:10 +02:00
Florian Küpper 91d8d6d9fd Updated installer comment 2017-08-27 18:00:21 +02:00
Florian Küpper 9e2ce90de2 Added missing theme videos to installer 2017-08-27 16:13:47 +02:00
Florian Küpper 7231a62a92 Added vc2010 to installer 2017-08-27 16:12:21 +02:00
Florian Küpper 66a9dc1ce1 Decrease size of built installer files 2017-08-26 18:51:01 +02:00
Florian Küpper 34ddc1623a Some minor fixes to path handling for installer 2017-08-26 18:11:00 +02:00
Florian Küpper 7ae2e33024 Updated installer to new ai version, added script
- Installer should now work properly
- Use buildinstaller.bat to create installer for x86 and x64.
2017-08-26 18:10:32 +02:00
lukeIam f1354b6099 Updated readme
no official support for Linux
2017-08-26 11:21:14 +02:00
lukeIam 6128f0a0f8 Update readme for new release
Remove XP
Add link to new homepage
Changed download section
Add badges
2017-08-25 17:22:30 +02:00
Florian Küpper b8ad13e682 Merge pull request #254 from lukeIam/versioning
Version tag generation moved to build script
2017-08-22 12:15:30 +02:00
Florian Küpper 6073d68b6e Added some (historical) version names 2017-08-22 10:40:50 +02:00
Florian Küpper ecc8142325 Merge branch 'develop' into versioning 2017-08-22 10:32:19 +02:00
Florian Küpper 16d26cea8a [installer] build seperate installer for x86/x64; Check if .NET and DirectX are installed 2017-08-15 20:02:03 +02:00
Florian Küpper 71859619f9 Merge pull request #290 from lukeIam/develop
Remove "wrong error messages" from build log
2017-08-15 19:30:07 +02:00
lukeIam 9ffedef52a Merge branch 'develop' of https://github.com/Vocaluxe/Vocaluxe into develop 2017-08-15 19:20:13 +02:00
lukeIam d1d7f04757 Merge pull request #288 from flokuep/develop
Merged #288
2017-08-15 18:31:35 +02:00
Florian Küpper 1c6c090360 First draft of new installer 2017-08-15 02:49:39 +02:00
Florian Küpper 90aa0176f6 updated language files 2017-08-14 23:03:51 +02:00
Florian Küpper c8bc280e5b Auto focus on buttons in main screen (closes #281) 2017-08-14 22:41:17 +02:00
Florian Küpper c5074c187a Fixed bug in tic tac toe mode (closes #268) 2017-08-14 22:31:59 +02:00
lukeIam c90c2ae89b Remove git status messages which are send to stderr from log 2017-08-14 21:50:42 +02:00
Florian Küpper 10c3cebc2e Merge pull request #287 from lukeIam/develop
Fix: Triggering a github pages update fails
2017-08-14 21:33:01 +02:00
lukeIam a9250559d2 Fix: Triggering a github pages update fails, as the gh-pages branch is not cloned. 2017-08-14 21:24:18 +02:00
lukeIam 45c8eb2e9b Merge pull request #286 from lukeIam/modBuildScript
Build script adjustments
2017-08-14 20:46:57 +02:00
Florian Küpper 133de2cf61 Merge pull request #285 from lukeIam/develop
Fix: acinerella.dll is not statically linked
2017-08-14 20:43:48 +02:00
lukeIam 9738bc513a Fix: typo 2017-08-14 19:38:33 +02:00
lukeIam 03268ecab4 Add more info about the triggering commit to the "dummy" gh-pages commit message. 2017-08-14 19:34:18 +02:00
lukeIam bcc79b77d8 Modified pre-release tagging: true for nightly and tags containing beta, false for all others (normal releases). 2017-08-14 18:00:58 +02:00
lukeIam 8d6ddf6d26 Replaced contains with match in powershell (contains does not work for strings) 2017-08-14 17:55:27 +02:00
lukeIam 90d4b35741 Minimized the the release recreation race condition by writing the current sha to the comment section. 2017-08-14 17:38:01 +02:00
lukeIam f53e6fbe33 Prevent that the other build (x86/x64) deletes the release again (still have a little race condition here...) 2017-08-14 17:15:37 +02:00
lukeIam b33fe92e8a Do an empty commit to gh-pages branch after publishing artifacts to trigger a git hub pages build (fixes #277). 2017-08-14 17:06:45 +02:00
lukeIam 220a969ddb Delete the whole release instead of just the assets before publishing (fixes #276). 2017-08-14 15:51:02 +02:00
lukeIam f59393d343 Fix: acinerella.dll is not statically linked (update acinerella dependency) (fixes #280) 2017-07-14 16:32:13 +02:00
lukeIam 2e6b3880c1 Merge pull request #248 from lukeIam/newAcinerella
Use new acinerella and ffmpeg (3.2) versions
2017-06-05 21:36:15 +02:00
Florian Küpper badb8bea7d Merge branch 'develop' into newAcinerella 2017-06-05 14:13:01 +02:00
lukeIam 5a9141b25c Merge remote-tracking branch 'remotes/main/develop' into versioning 2016-12-28 23:04:00 +01:00
lukeIam 152be5d8ad - calculate full version tag in build script and set AssemblyTitle
- display AssemblyTitle in Vocaluxe gui
- code names are stored in .build/versionNames.json
- pre and post build scripts for windows (one place for all commands)
- adjusted and moved the linux build scripts
2016-12-28 23:01:34 +01:00
Florian Küpper afc9172f97 Merge pull request #247 from flokuep/develop
Language update
2016-12-26 22:55:59 +01:00
Florian Küpper b8b8141cfe Merge branch 'develop' into develop 2016-12-26 22:46:23 +01:00
Florian Küpper 6bb67f218a Updatet swedish files 2016-12-26 22:45:49 +01:00
Florian Küpper 0eb28b1bc9 Merge pull request #204 from Jiiniasu/PNG-Screenshots
PNG screenshots
2016-12-26 13:13:19 +01:00
Florian Küpper 290c4463fa Merge branch 'develop' into PNG-Screenshots 2016-12-26 12:18:36 +01:00
Florian Küpper ab50362496 Updated translators on credits-screen 2016-12-26 12:04:35 +01:00
Florian Küpper e2bfdd6877 Merge branch 'develop' of github.com:flokuep/Vocaluxe into develop 2016-12-26 11:51:44 +01:00
Florian Küpper 795c8705c4 Updated Swedish.xml 2016-12-26 11:51:04 +01:00
Florian Küpper f7c3a317f8 Merge branch 'develop' into newAcinerella 2016-12-26 11:44:26 +01:00
Florian Küpper 7c0b318fe1 Merge branch 'develop' into develop 2016-12-26 11:44:18 +01:00
Florian Küpper 67dafcc63e Merge pull request #251 from lukeIam/seekDrop
Use ac_seek instead of ac_skipFrame to drop large amounts of frames
2016-12-26 11:43:41 +01:00
Florian Küpper d7207b1fea Merge branch 'develop' into seekDrop 2016-12-26 11:35:11 +01:00
Florian Küpper f743980fb9 Language update 2016-12-26 11:28:45 +01:00
Florian Küpper 195df07e5f Merge pull request #252 from lukeIam/PT_ABS_SPEEDUP
Make PitchTracker a bit faster
2016-12-26 10:54:34 +01:00
lukeIam c5ad1a3f95 Use ac_seek instead of ac_skipFrame to drop large amounts of frames(fixes #250) 2016-12-21 18:14:15 +01:00
Florian Küpper 85ef00956a Fixed some translations 2016-12-20 21:57:54 +01:00
lukeIam c899d9e7e9 Speed up PitchTracker by using a template for abs instead of fabsf 2016-12-20 21:03:39 +01:00
lukeIam a75c4101e3 Updated acinerella code (for linux build) 2016-12-20 17:48:18 +01:00
lukeIam 2dcf20c8c8 Merge branch 'develop' into newAcinerella + use newer ffmepg version
# Conflicts:
#	Vocaluxe/Vocaluxe.csproj
#	Vocaluxe/packages.config
2016-12-20 16:31:09 +01:00
Florian Küpper f2b0fb7f6a Merge branch 'develop' of github.com:Vocaluxe/Vocaluxe into develop
Conflicts:
	Output/Languages/Swedish.xml
2016-12-20 15:18:39 +01:00
Florian Küpper 9699aaf00c Language update 2016-12-20 14:26:13 +01:00
lukeIam ae656ba727 Merge pull request #239 from lukeIam/versioning
Support the versioning scheme
2016-12-15 11:31:39 +01:00
lukeIam 02126560ca -Mod: Show (short) version tag in release versions
-Mod: Show long version tag in builds based on a release (to separate them from real releases)
2016-12-13 19:03:39 +01:00
lukeIam 78592f17a9 Fix: version tag for pr not well formed 2016-12-13 00:04:42 +01:00
lukeIam b98a17ef53 Fix: pr builds to not have access to the user credentials for github api access -> use dummy version number for pr build 2016-12-12 23:28:15 +01:00
lukeIam 66737611c3 Fix: new versioning scheme failing with PR builds 2016-12-12 23:23:06 +01:00
lukeIam 9d4a420ea2 -Mod: New versioning scheme including type if type!=release
-Mod: Show the same version tag everywhere
-Mod: Automatically determinate release type depending on the new version-tag
-Mod: Automatically determinate CodeName
-Add: Code-name for the 0.4. releases
2016-12-12 21:01:41 +01:00
Florian Küpper 61f11c77be Merge pull request #235 from lukeIam/GP_B_Button
Change gamepad's Abort/"Esc" button from "X" to "B"
2016-12-11 09:35:27 +01:00
Florian Küpper d247462cbc Merge pull request #238 from lukeIam/VideoInReleases
Add ambient theme videos to all releases (closes #237)
2016-12-10 20:51:54 +01:00
lukeIam 6b89fdf8bb -Mod: add ambient theme videos to all releases (closes #237) 2016-12-10 18:36:16 +01:00
Florian Küpper 20dd29f5ff Merge pull request #236 from lukeIam/smallPMFixes
Can't select players if #player=12 in PartyModes (fixes #232)
2016-11-27 16:08:22 +01:00
lukeIam 58bdabe62c Fix: Can't select players if #player=12 in PartyModes (fixes #232) 2016-11-27 14:16:42 +01:00
lukeIam 557ba6207c Mod: Change gamepad's Abort/"Esc" button from "X" to "B" (as "B" is common key for aborting something) 2016-11-27 13:55:42 +01:00
Florian Küpper 159de779af Merge pull request #230 from lukeIam/FixedPlaylist
Playlist fix
2016-11-25 08:58:06 +01:00
Florian Küpper b8c994d3c6 Merge pull request #233 from lukeIam/ChallengeListFix
Fix: "1)" is fixed in PartyModeChallenge*'s roundtables (fixes #231)
2016-11-23 14:31:25 +01:00
lukeIam 78e2c50209 Fix: "1)" is fixed in PartyModeChallenge*'s roundtables (fixes #231) 2016-11-23 12:12:58 +01:00
lukeIam 4f990e6306 Fix: After deleting a playlist the playlist-selector is out of sync (maybe a fix for #209) 2016-11-21 20:10:16 +01:00
Florian Küpper 7f10165cb5 Merge pull request #227 from lukeIam/develop
Update gitignore
2016-11-20 11:03:25 +01:00
Florian Küpper 7bf7222636 Merge pull request #228 from lukeIam/PlaylistScroll
Fix: Scrolling issue when changing from long list to short list
2016-11-20 11:02:58 +01:00
lukeIam 3c7f696756 Fix: Scrolling issue when changing from long list to short list - reset scrolling if the list is changed (fixes #217) 2016-11-19 19:29:42 +01:00
lukeIam a61f5ea448 Add /PitchTracker/bin and /PitchTracker/obj to gitignore 2016-11-18 17:54:07 +01:00
lukeIam 81fca1c991 Add new IntelliSense database files to gitignore 2016-11-18 17:34:26 +01:00
derivator 8e4129b941 Partymodes: fix compilation on linux
Use Path.Combine for portability, because linux doesn't like backslashes in paths
2016-10-19 15:51:02 +02:00
lukeIam b71ca62fba Mod: copy PortAudioSharp.dll.config to lib/managed by using a new nuget package (required for LinuxBuild) 2016-10-19 13:12:11 +02:00
derivator 1b3b1467b1 Partymodes: Reveal/hide "Next" button when the number of player slots changes 2016-10-19 11:26:02 +02:00
derivator 1a85f56fb4 Partymodes: Fix "Select random" button selecting invalid profiles
which would happen if the number of visible profiles matched the number of used profiles or if there were more slots than usable profiles
2016-10-19 11:26:02 +02:00
lukeIam 3f5cb818a2 Mod: Changed dependecy linux detection from compiling system to target configuration 2016-10-18 17:05:56 +02:00
lukeIam fab0b8c3dc Mod: Removed error if nuget packages acinerella, ffmpeg, gstreamer, hidapi are not imported under linux 2016-10-18 17:05:56 +02:00
lukeIam 9504bc3850 Mod: Updated nuget-packages for acinerella, ffmpeg, gstreamer, hidapi (no file copy under Linux) 2016-10-18 17:05:56 +02:00
Florian Küpper 8bde66bf0f Merge pull request #216 from lukeIam/karaoke2
Add: English translation for TR_SCREENOSOUND_KARAOKEEFFECT
2016-09-11 15:35:27 +02:00
lukeIam 6b9d8b2573 Add: English translation for TR_SCREENOSOUND_KARAOKEEFFECT 2016-09-11 15:24:33 +02:00
Florian Küpper 845d8bf6e7 Merge pull request #211 from lukeIam/GSTInstPrio
Mod: prefer shipped gstreamer over an installed version (closes #199)
2016-09-11 12:45:42 +02:00
Florian Küpper 4baf1f1d87 Merge pull request #214 from lukeIam/win_CI_improve2
Windows/Appveyor CI build improvements
2016-09-11 12:45:28 +02:00
Florian Küpper 74c1ea3ad4 Merge pull request #213 from lukeIam/karaoke2
Karaoke effect option (gstreamer only)
2016-09-11 12:43:46 +02:00
lukeIam 561dadb67a Windows/Appveyor CI build improvements
-Fix: Nightly tag is moved even if the build fails (fixes #171)
-Mod: Improved log messages
-Add: Adjustments to allow forks to run appveyor.yml on their instances
-Add: Custom names for custom builds
2016-09-09 21:07:45 +02:00
lukeIam 7f52520996 Mod: theme version numbers the 2nd 2016-09-09 16:59:00 +02:00
lukeIam 82a2a552db Fix: EAudioEffect.cs is missing 2016-09-09 16:52:45 +02:00
lukeIam ee9b0af7d6 -Mod: Increment theme version number 2016-09-09 16:10:18 +02:00
Florian Küpper 633848f31a Merge pull request #210 from Jiiniasu/DB
Highscore Listing Styles + Adjustments
2016-09-09 08:16:58 +02:00
lukeIam 3275aa091e Fix: karaoke effect was applied to all audio output 2016-09-08 17:54:39 +02:00
lukeIam 49b971d126 Add: option to enable KaraokeEffect with gestreamer backend (atm only for all audio globally) 2016-09-08 17:22:33 +02:00
Jiiniasu 29352278fa Fix Typo in Query
BIGING -> BIGINT
2016-09-07 18:41:44 +02:00
Jiiniasu aa53995859 Adjusted SQL Query
Now the query shouldn't be relying on how the particular database engine
works to get the correct results.
2016-09-07 18:22:54 +02:00
lukeIam b6694eb485 Mod: prefer shipped gstreamer over an installed version (closes #199) 2016-09-07 16:18:20 +02:00
Jiiniasu 8bde612db4 Adjust SQL Query + Making Style a Parameter
Applied query based on lukeIam's suggestion which gives expected data
from the database and added style as a parameter based on flokueps
suggestion.
2016-09-05 21:24:50 +02:00
Jiiniasu 27d4d21167 Correct Deviating Height of #2 in Highscore 2016-09-04 19:07:41 +02:00
Jiiniasu 9211e68ad4 Add Swedish Translation for Highscore Style 2016-09-04 18:41:49 +02:00
Jiiniasu 70d190c571 Remove Leading Zeroes in Highscore screen 2016-09-04 18:34:26 +02:00
Jiiniasu d413765178 Add Highscore Style Setting
Add ability to select whether the highscore screen should display all
scores or only the best score for each player, difficulty and
duet-track.
2016-09-04 18:32:24 +02:00
Jiiniasu 2f7d2f98e8 Make screenshots save as PNG 2016-04-10 12:26:47 +02:00
Jiiniasu e3754aeae8 Merge remote-tracking branch 'refs/remotes/Vocaluxe/develop' into develop 2016-04-03 23:35:59 +02:00
Florian Küpper d01ac27c5d Merge pull request #203 from flokuep/develop
Language update
2016-04-01 11:20:38 +02:00
Florian Küpper 4fb905d0b3 Language update 2016-04-01 11:16:48 +02:00
Florian Küpper 0d72b915dd Merge pull request #202 from Jiiniasu/Language-revision
Language revision
2016-04-01 11:03:04 +02:00
Jiiniasu 66f890493b Change "Efterapare" to "Novis"
I guess "novis" is less uncommon than "efterapare"...
2016-03-26 22:11:52 +01:00
Jiiniasu 8e4c4abdba Adjusted Swedish language-file 2016-03-26 22:00:55 +01:00
Jiiniasu ec9ff29428 Adjustments to the English language-file 2016-03-26 21:50:45 +01:00
Jiiniasu a4d03196c1 "Fix"the two other "Englishes" 2016-03-26 20:17:27 +01:00
Jiiniasu 1826959cb9 Make lyric styles translatable 2016-03-26 20:16:22 +01:00
Jiiniasu 96a196aa07 Merge remote-tracking branch 'refs/remotes/Vocaluxe/develop' into develop 2016-03-13 10:01:56 +01:00
Florian Küpper b404354c6a Merge pull request #201 from Jiiniasu/Multichannel-recording
Multichannel recording
2016-03-12 14:27:06 +01:00
Jiiniasu 3a6ed62282 Edit IsMicConfig to fix "accidental" wiping of microphone config
Previously Vocaluxe would autoassign player 1 and 2 if these players
were both configured on channels higher than 2.

Mashed together IsMicConfig() and IsMicConfig(int player) to handle both
specific and any player microphone config check.
2016-03-06 20:04:06 +01:00
Jiiniasu 139579a1ca Up the version on ScreenOptionsRecord for the Ambient theme 2016-03-06 17:20:10 +01:00
Jiiniasu 3f4a2fbb81 Add support for multichannel recording
Support for "unlimited" amount of channels per recording device.
Upped ScreenOptionsRecord version and added neccessary lines to be able
to configure n channels per device.
Added language strings for Player 1-6.

Tested on a machine with Tascam US-16x08 audio interface and Singstar
Wireless Microphones used simultaneously.
2016-03-06 12:28:47 +01:00
lukeIam e4deacf0b6 Use the new nuget packages for acinerella and ffmpeg 2016-02-07 14:37:21 +01:00
lukeIam 078687934a Merge branch 'develop' into newAcinerella 2016-02-07 14:28:00 +01:00
lukeIam 674a987e2a Moved the getFrame methode to acinerella (native) 2016-02-06 13:22:06 +01:00
lukeIam be3d27adfb Moved code for frame skipping to acinerella (native code) 2016-02-06 12:52:10 +01:00
lukeIam 216375ab10 Fix: besides the background video no other video is decoded 2016-02-05 19:13:52 +01:00
Florian Küpper b6b6f72f73 Merge pull request #190 from Vocaluxe/SmallSonglistMods
Small songlist mods
2016-02-03 09:53:33 +01:00
Florian Küpper d9ef14be0b Merge pull request #195 from lukeIam/previewStartBug
Fix preview start bug on top of PR #191
2016-02-02 23:09:10 +01:00
Florian Küpper 5de61bd2f7 Merge pull request #194 from Vocaluxe/newHidApi
Controller Support for Windows 10
2016-02-02 23:08:53 +01:00
lukeIam 35ced0dcfb Renamed new variables to be consistent with the naming rules 2016-01-31 17:08:51 +01:00
lukeIam 6dc5728554 Added a timeout-fallback to PreviewStartHelper for the case the length can't be determinated 2016-01-31 17:06:17 +01:00
lukeIam d6fcd7b58c Fix: previewStart is sometimes ignored (closes #188) 2016-01-31 17:00:48 +01:00
lukeIam f069f9fd9b Merge branch 'develop' into newAcinerella 2016-01-31 15:17:03 +01:00
lukeIam 165abd5fe6 First changes for using the new acinerella version 2016-01-31 15:15:22 +01:00
Florian Küpper 145a699369 Merge pull request #192 from lukeIam/noApp
Removed (native) app-only code
2016-01-18 15:57:06 +01:00
lukeIam 6820416ee1 Removed phonegap dependencies 2016-01-17 12:37:35 +01:00
lukeIam e32515d85c Removed the discover page and the server version check as it was only needed for the apps 2016-01-17 12:34:41 +01:00
lukeIam fd40aaf840 Updated hidapi package to version 1.0.3 (hidapi-0.7.0-110-g38681c7) 2016-01-16 15:18:40 +01:00
Florian Küpper 0cb9ef76f7 Merge pull request #187 from lukeIam/wiimoteSingleThreadExperiment
Wiimote single thread experiment
2016-01-16 14:11:05 +01:00
Florian Küpper 750b93d6d5 Fixes #188 (Preview-Start was ignored) 2016-01-15 21:01:40 +01:00
Florian Küpper 3b54545457 Fixes #189 - Number of total songs in category 2016-01-15 20:55:32 +01:00
Florian Küpper 2596099fb6 Merge branch 'develop' of github.com:Vocaluxe/Vocaluxe into develop 2016-01-15 20:50:58 +01:00
Florian Küpper cdd67ae571 Merge pull request #186 from lukeIam/AppNoExtLinks
Removed external links in the app (Wiki, Youtube, ...)
2016-01-15 20:23:15 +01:00
lukeIam 3c0a284e9a Removed external links in the app (Wiki, Youtube, ...) as the links where broken and the feature is not used very often. (Closes #172) 2016-01-15 17:31:26 +01:00
Florian Küpper 2cf65ee032 Merge pull request #184 from lukeIam/newReadme2
Removed app from readme
2015-12-30 11:55:36 +01:00
lukeIam a02cafae2b Update README.md 2015-12-30 10:58:23 +01:00
lukeIam b5fdc114e7 Updated hipapi version to hidapi-0.7.0-104-gd17db57 2015-12-30 09:48:01 +01:00
Florian Küpper dd0f0a16d3 Merge pull request #178 from lukeIam/ACMultiThreadWrapper
Ac multi thread wrapper
2015-12-26 15:56:45 +01:00
Florian Küpper 4fc97a80a8 Merge pull request #182 from z3ro01/develop
Fix: Crash after starting a second challenge mode #169
2015-12-23 21:56:07 +01:00
z3ro01 ada7a23668 App QR codes removed #180 2015-12-23 18:44:29 +01:00
Florian Küpper 804647f480 Merge remote-tracking branch 'upstream/develop' into develop 2015-12-23 10:02:33 +01:00
z3ro01 f529dd8bbf Merge branch 'develop' of https://github.com/Vocaluxe/Vocaluxe into develop 2015-12-22 17:55:31 +01:00
Florian Küpper e5c962325e Merge pull request #177 from lukeIam/newReadme
New README
2015-12-22 08:57:49 +01:00
Florian Küpper b6d5874b62 Merge pull request #179 from Vocaluxe/PTFix
Fix: PitchTracker loading Problems
2015-12-22 08:53:54 +01:00
z3ro01 dc375de632 Fix: Crash after starting a second challenge mode #169 2015-12-21 10:50:19 +01:00
lukeIam 7ff0ef52d7 Deliver noCover if there is no cover and includeCover==true 2015-12-20 18:41:06 +01:00
lukeIam 8da297d1be Added optional covers to SongList 2015-12-20 18:39:14 +01:00
lukeIam ef3a7e0722 changed naming of a variable to be consistent to the naming rules 2015-12-20 17:59:42 +01:00
lukeIam df311b2916 Webserver: Added a threshold to the config which decides at how many song we stop sending covers on get-all-songs requests. 2015-12-20 17:58:58 +01:00
lukeIam 871a7227fc Webserver: GetAllSongs() uses now a cache 2015-12-20 17:42:30 +01:00
lukeIam 16f4d790de get SongInfo in parallel 2015-12-20 17:36:22 +01:00
lukeIam feafec755e Added Linux to the Supported OSs 2015-12-20 17:00:49 +01:00
lukeIam caa46763cd Fixed Typos in the app 2015-12-20 16:01:26 +01:00
lukeIam 1ecc5336ce Added a line break for better readability 2015-12-20 15:45:28 +01:00
lukeIam 4d22f4f80b Added party modes and webserver to desc 2015-12-20 15:44:26 +01:00
lukeIam 645d126911 Fixed Typo and added newer Windows systems 2015-12-20 15:17:59 +01:00
lukeIam 4047a2933b Removed ? operator as it is a c#6 feature 2015-12-20 15:02:10 +01:00
lukeIam 67f37b440b Changed PitchTracker build to static linking to get rid of runtime version conficts (size increase is not huge: 52KB -> 267KB) 2015-12-20 13:48:19 +01:00
lukeIam c1bb23d0f7 Add links to the toc 2015-12-20 12:51:26 +01:00
lukeIam ee77df7523 Update and rename README to README.md
Changed the README to markdown and updated the content.
2015-12-20 12:47:31 +01:00
lukeIam d6d23809ec Use only one thread for the wiimote 2015-12-20 09:22:15 +01:00
lukeIam d17fe4b039 Fix: access to _AcInstanceLocks was not threadsafe 2015-12-19 16:58:08 +01:00
Florian Küpper cbded1c7fb Merge pull request #174 from flokuep/develop
Preview-Fix & Language-Update
2015-12-19 15:29:53 +01:00
Florian Küpper 16b25824e2 Language-update 2015-12-19 15:28:46 +01:00
Florian Küpper 8e6aee71d7 Fixed preview-start 2015-12-19 15:25:57 +01:00
lukeIam f860afdbd4 Fallback to local GSTREAMER lib if the GSTREAMER EnvironmentVariable exists but the targeted folder does not exists 2015-12-19 14:33:45 +01:00
lukeIam 52727a5abc Removed the PitchTracker nuget packages as the PitchTracker.dll is generated from source (fixes #173) 2015-12-19 11:01:04 +01:00
lukeIam 0bcc7779b8 Allow multiple threads simultaneous access to Acinerella - should fix
freezes and lags on the song selection screen (fixes #167)
2015-12-18 19:15:05 +01:00
Florian Küpper 3e341c2475 Merge pull request #166 from flokuep/develop
SongList-View and some fixes...
2015-12-09 11:55:32 +01:00
Florian Küpper 92e8bcd9f7 Fix merge error 2015-12-09 00:24:36 +01:00
Florian Küpper d796b649fa Some minor improvements and fixes for bg-music 2015-12-08 10:44:13 +01:00
Florian Küpper 37a9f9c359 Merge branch 'develop' of github.com:Vocaluxe/Vocaluxe into develop 2015-12-07 22:37:55 +01:00
lukeIam c09d18889a Fix: build fails because of a link to old vocaluxe.dependencies in Vocaluxe.csproj 2015-12-07 22:09:08 +01:00
lukeIam 6055c1cfb1 Fix: build fails because of a link to themes.ambient in Vocaluxe.csproj 2015-12-07 22:01:11 +01:00
Florian Küpper 31f06034e5 Added removed changelogs again 2015-12-07 21:53:54 +01:00
Florian Küpper 885dff41c8 Merge branch 'develop' of github.com:Vocaluxe/Vocaluxe into develop 2015-12-07 21:50:40 +01:00
lukeIam 27cf45fb07 Add the Ambient theme to git again 2015-12-07 20:52:39 +01:00
lukeIam ba4111203f Fix: gitDescribe.ps1 crashed on a lightweight tag 2015-12-07 19:51:15 +01:00
Florian Küpper f03bb86f30 Some minor code-improvements 2015-12-07 19:23:36 +01:00
Florian Küpper 6e1ae9a17a Fix merge errors 2015-12-07 19:23:13 +01:00
lukeIam 5f2c341216 Changed a github api query to use credentials (quota problem) 2015-12-06 21:23:11 +01:00
lukeIam 8782ac649e Merge pull request #170 from Vocaluxe/appveyor
Add Appveyor (Windows) Build
2015-12-06 21:00:51 +01:00
lukeIam 0040638d83 Fix: PR could be threatened as special branch 2015-12-06 18:06:13 +01:00
lukeIam 4c16284ce0 Use "PR_[PRNumber]" as version tag for PR builds (using the anonymous to limited) 2015-12-06 18:02:42 +01:00
lukeIam 873619ccf8 Changed options for building Vocaluxe/Vocaluxe 2015-12-06 17:12:25 +01:00
lukeIam 971c57c237 Fixed duet parsing (closes #159)
Thanks to @derivator and @BenKmann
2015-12-06 14:09:55 +01:00
lukeIam a50f026f8e Fix: environment variable scope problem 2015-12-06 14:09:55 +01:00
lukeIam d1b0431964 Fix: deployment does not work under some circumstances 2015-12-06 14:09:55 +01:00
lukeIam 80516570a6 Add more logging to moveTagForSpecialBranches.ps1 for debugging 2015-12-06 14:09:55 +01:00
lukeIam f012579dc3 Close song options on click on the song menu 2015-12-06 14:09:55 +01:00
lukeIam 2ab8f4f937 Fixed Playlist buttons (2nd try) 2015-12-06 14:07:54 +01:00
lukeIam 12e43265db Replaced Move-Tasks with a Copy-Task and a Delete-Task as xbuild does not support Move-Tasks 2015-12-06 13:48:17 +01:00
lukeIam eae68bb6c3 -Fix: VocaluxeLib not found by PartyModes 2015-12-06 13:48:17 +01:00
lukeIam 2aa9813e5d Updated WebserverInitalConfig dependencies 2015-12-06 13:48:17 +01:00
lukeIam 095ce5964f Bundled the two dep of WebserverInitialConfig 2015-12-06 13:48:17 +01:00
lukeIam 8b4ecfce7c Updated git ignore 2015-12-06 13:48:17 +01:00
lukeIam 0966cb08d0 Made release description consistent 2015-12-06 13:48:17 +01:00
lukeIam cb51f15fed Improoved logging 2015-12-06 13:48:17 +01:00
lukeIam 0021b76083 Fixed: variable not correctly escaped 2015-12-06 13:48:17 +01:00
lukeIam 7e8c032618 Fix: crash on nightly tag move 2015-12-06 13:48:17 +01:00
lukeIam 0171b19084 Fixed nightly detection 2015-12-06 13:48:16 +01:00
lukeIam 11dbef6f37 Fixed artifact issue 2015-12-06 13:48:16 +01:00
lukeIam 02a2bc4c5f Fix github api auth 2015-12-06 13:48:16 +01:00
lukeIam 475a074c9e Small deployment changes 2015-12-06 13:48:16 +01:00
lukeIam 677a66ac9b Use the environment variable instead of git describe (if the environment variable exists) 2015-12-06 13:48:16 +01:00
lukeIam 954e5eddef Authenticate for github api requests as the ip-based limit is very low 2015-12-06 13:48:16 +01:00
lukeIam 76bc9e93cb Working on release deployment 2015-12-06 13:48:16 +01:00
Florian Küpper b8bf1b66fc Changed data-paths to avoid problems on Linux 2015-12-06 13:44:29 +01:00
lukeIam ced828c401 Appveyor: add prepareDeploy.ps1 and gitDescribe.ps1
which is needed to use GitHub API to correctly tag automatic
builds, because git-describe doesn't work on shallow clones
2015-12-06 13:42:29 +01:00
lukeIam d4eb4f74c3 - Fixed VocluxeTests dependency
- VocaluxeLib: direct export to \libs\managed
2015-12-06 13:42:28 +01:00
lukeIam cc45de1183 Changed wrong toolset in PitchTracker.vcxproj 2015-12-06 13:42:28 +01:00
lukeIam 0cdeb732a9 - Modified PitchTracker projectfile to autodetect the current visual studio version
- Changed PitchTracker output paths
2015-12-06 13:42:28 +01:00
lukeIam 95a5543a04 - Changed lib probing paths
- Fixed a pdb error
2015-12-06 13:42:28 +01:00
lukeIam 73efe1e4b6 Added a postbuild move task to move managed dlls to to libs\managed folder 2015-12-06 13:42:28 +01:00
lukeIam e66cb853c5 Updated .gitignore 2015-12-06 13:42:28 +01:00
lukeIam 876d3138e4 Removed unused dependency 2015-12-06 13:42:28 +01:00
lukeIam 8450b46657 Removed duplicate references 2015-12-06 13:42:28 +01:00
lukeIam 6459f0350e - Moved unmanaged libs to folder libs/unmanaged
- Modified loading path
- Updated nuget package versions
- Changed the way managed assemblies are referenced
2015-12-06 13:42:28 +01:00
lukeIam b302184de3 Disabled nuget.org package source.
Cleanup and
Revert "Removed unused ref "System.Transactions" "System.Transactions.Portable""
as "System.Transactions" is needed for the mono sqlite nuget package.

This reverts commit 48d11d026e8aee55b6127c02a96a27c4e26f653b.

# Conflicts:
#	Vocaluxe/Vocaluxe.csproj
2015-12-06 13:42:28 +01:00
lukeIam 525170a5d2 Deleted unused dependencies and updated nuget packages 2015-12-06 13:42:28 +01:00
lukeIam 86ad2dc09f Appveyor: add PushArtifact and -DisableParallelProcessing 2015-12-06 13:40:41 +01:00
lukeIam 8efd6e4a79 Removed unused ref "System.Transactions" "System.Transactions.Portable" 2015-12-06 13:40:41 +01:00
lukeIam 2f9b8ad897 Fixed duplicated SlimDX refs 2015-12-06 13:40:41 +01:00
lukeIam 7b6670e893 Appveyor: add appveyor.yml 2015-12-06 13:39:14 +01:00
Florian Küpper 104d2be7be Changed default cover-size to 256 #163 2015-12-06 13:30:59 +01:00
Florian Küpper 3e5ed6cdd9 Default song and profile-path are relative to program-folder now 2015-12-06 13:11:11 +01:00
Florian Küpper 1870669672 Merge pull request #164 from lukeIam/strech
Added option to stretch
2015-12-06 12:38:57 +01:00
lukeIam c41e922ac6 Added description and fixed typo 2015-12-06 12:37:47 +01:00
Florian Küpper 4d19e4af2a Revert vs-version-change 2015-12-06 12:33:08 +01:00
Florian Küpper 6480176728 Revert "Merge"
This reverts commit 7e8479720e.
2015-12-06 12:27:54 +01:00
Florian Küpper c83b7dda3b Merge branch 'develop' of github.com:Vocaluxe/Vocaluxe into develop 2015-12-06 11:47:35 +01:00
Florian Küpper c25157946e Some fixes for start without config.xml, also fixes #77 2015-12-06 11:42:07 +01:00
lukeIam a4f39e6145 Add an option to strech the rendered area instead of displaying black bars (closes #33) 2015-12-06 11:35:01 +01:00
Florian Küpper 9281cd1d35 Fix merge-errors 2015-12-06 11:25:04 +01:00
Florian Küpper 6c07ce8026 Merge pull request #163 from lukeIam/develop
Increased default cover size (fixes #128)
2015-12-06 11:19:18 +01:00
lukeIam 140bcfee8f Increased default cover size (fixes #128) 2015-12-06 11:06:14 +01:00
Florian Küpper 45d0091161 Merge pull request #2 from flokuep/komadoc-develop
Komadoc develop
2015-12-06 09:25:35 +01:00
Florian Küpper fa05e062b5 Merge branch 'develop' of github.com:Vocaluxe/Vocaluxe into develop 2015-12-05 23:12:12 +01:00
Florian Küpper 7e8479720e Merge 2015-12-05 22:02:57 +01:00
Stephan Sundermann 0e2ef9d347 Merge pull request #160 from lukeIam/fixedDuetParsing
Fixed duet parsing (closes #159)
2015-11-28 15:52:46 +01:00
lukeIam c16ac3eeb3 Fixed duet parsing (closes #159)
Thanks to @derivator and @BenKmann
2015-11-28 12:51:05 +01:00
Stephan Sundermann ce6f1c1d64 Merge pull request #158 from lukeIam/PlaylistControlsBroken
Fix: Playlist controls are broken
2015-10-15 19:49:19 +02:00
Florian Küpper 58b5c132dd Revert last commit 2015-09-09 20:05:06 +02:00
Florian Küpper 5ad85ce3db Upgrade PitchTracker-Project to compile with newer VS and fix compiling 2015-09-09 19:51:47 +02:00
lukeIam 94e0baa82c Added Mono.Data.Sqlite.Portable
(cherry picked from commit a6dc65fdb993dd8fcfeadca3f84fd78ac19d0a4a)
2015-09-08 19:54:29 +02:00
lukeIam 724f8f6a72 Close song options on click on the song menu 2015-09-08 19:09:55 +02:00
lukeIam 28e4c2b3f5 Fixed Playlist buttons (2nd try) 2015-09-08 16:52:23 +02:00
lukeIam fa9da672cf Fix: Playlist conrols on the songscreen have no function 2015-08-31 21:31:32 +02:00
lukeIam a504a77bef Merge branch 'develop' into nugetDependencies 2015-08-31 19:57:38 +02:00
lukeIam 1cdf2fa659 Fix: theme videos are not longer optional 2015-08-31 19:23:57 +02:00
lukeIam 3c32d3fec8 gstreamer is installed automatically (only if it is not installed on the system) 2015-08-29 18:53:50 +02:00
lukeIam dee0e2139f Cleanup 2015-08-29 13:10:58 +02:00
lukeIam 8e26295d3b working on nuget package restore 2015-08-29 11:58:41 +02:00
lukeIam 06452aacde Removed deleted files from project 2015-08-27 19:15:29 +02:00
lukeIam 569f1d2e27 Moved NuGet.Config 2015-08-27 19:13:22 +02:00
lukeIam 026bf78222 Added missing packages 2015-08-27 19:03:40 +02:00
lukeIam 80d0808847 Added nuget packages 2015-08-27 18:53:40 +02:00
lukeIam 465d966283 Dependency cleanup for nuget use 2015-08-27 18:38:18 +02:00
lukeIam 8c5480c228 Remove x64/x86 folder for DLLs 2015-08-26 18:01:22 +02:00
Stephan Sundermann 15e28c8a8f Merge pull request #155 from Shiroi/develop
PartyMode Challenge: Added an option to not refill jokers after every…
2015-08-26 17:01:14 +02:00
Syrome 18f3fb74cd PartyMode Challenge: Added an option to not refill jokers after every song
Players can now choose between refilling the jokers every song and save
the amount of jokers (e.g. 5 Jokers per Player for the whole PartyMode).
2015-08-14 12:58:49 +02:00
Stephan Sundermann d7b358974e Merge pull request #154 from Shiroi/develop
PartyMode Challenge: Made the amount of jokers configurable
2015-08-13 12:08:49 +02:00
Syrome 970610327c PartyMode Challenge: Made the amount of jokers configurable 2015-08-13 10:48:26 +02:00
lukeIam 4988e0605d Remove all dependency dlls 2015-08-04 19:22:50 +02:00
Stephan Sundermann d96759555a Merge pull request #150 from flokuep/develop
Some fixes and additions.
2015-04-02 15:08:11 +02:00
Florian Küpper e717bb68f0 Added extra statics and texts to ScreenSing that are only shown if player-num matches 2015-04-02 12:24:14 +02:00
Florian Küpper 48645d60d1 Fixed formatting (hopefully). 2015-04-02 11:16:44 +02:00
Florian Küpper 58590c0db3 Fixed duet-bug. 2015-04-02 11:12:13 +02:00
Florian Küpper 4f35c9c583 Merge commit '8d3eb2c395c9e41d2feae3ca0a7b85defc396211' into develop 2015-04-01 14:08:20 +02:00
Stephan Sundermann 8d3eb2c395 Merge pull request #145 from derivator/linux-fixes
Linux: set AssemblyInformationalVersion to git version and add install target to makefile
2015-03-05 22:12:29 +01:00
derivator 5da7887c1c Linux: add install target to makefile 2015-03-05 03:13:53 +01:00
derivator d7e0b24eec Linux: set AssemblyInformationalVersion to git version during build
just as windows builds do. Also set matchingServerVersion for the web app
and use the new format in CVocaluxeServer.
2015-03-04 22:53:44 +01:00
Stephan Sundermann 0371aebc43 Merge pull request #142 from lukeIam/develop
Fixed PS script + Removed unused usings from CGamePad
2015-03-04 21:34:12 +01:00
lukeIam 0f11a800f8 Fixed PS script for version injection into main.js 2015-03-04 21:26:51 +01:00
lukeIam 3c6dcb8c96 Merge branch 'develop' of https://github.com/Vocaluxe/Vocaluxe into develop 2015-03-04 10:37:18 +01:00
Stephan Sundermann fb8dbb3a04 Merge pull request #143 from derivator/linux-fixes
Linux: enable building on x86 and prepare for packaging
2015-03-01 03:15:32 +01:00
derivator acd89bc2d3 Linux: store config in ~/.config/Vocaluxe instead of in install dir
because we might not have permission to write there if installed as a package
If that folder doesn't exist, create it and copy the default profiles there,
so they show up but can still be edited or removed
2015-03-01 02:14:01 +01:00
derivator 1b86baa24d Linux: build for x86 if we're on x86 2015-03-01 00:34:00 +01:00
lukeIam 7aebfe5442 Removed unused usings from CGamePad 2015-02-28 18:44:25 +01:00
Florian Küpper b3b8a6ea2e Updated spanish translation. 2015-02-28 14:09:33 +01:00
Stephan Sundermann 13f72c3cad Merge pull request #141 from lukeIam/integratedServer
Integrated server
2015-02-26 18:58:56 +01:00
Stephan Sundermann e100101ce4 Merge pull request #139 from derivator/linux-update
Make Vocaluxe buildable and playable on GNU/Linux
2015-02-26 11:13:18 +01:00
Stephan Sundermann cbc1bdd3c0 Merge pull request #140 from lukeIam/GamePad
Added support for gamepads
2015-02-26 10:20:43 +01:00
lukeIam e48d719662 Added support for gamepads 2015-02-25 19:24:15 +01:00
lukeIam 43be49387a Removed the Wait call after RunSynchronously as it is not needed and causes an exception with Mono 2015-02-22 14:51:41 +01:00
lukeIam 5e58f4a1f8 Typo 2015-02-22 13:28:12 +01:00
lukeIam 86a98e7bf8 - Integration of the server into the main project
- Made the webserver calls threadsafe (with Tasks)
- Removed some old and unused server classes
2015-02-21 18:23:21 +01:00
derivator 413e7d7567 Fix graphical glitches on linux
.png textures using certain grayscale formats were loaded incorrectly, due to a defect in Mono's Bitmap class (see https://bugzilla.novell.com/show_bug.cgi?id=485773). Worked around by
converting these files to standard format.
2015-02-13 12:15:07 +01:00
derivator 5049ba5895 Make Vocaluxe buildable and playable on GNU/Linux
Build with MonoDevelop or make.
Summary of the biggest changes:

* Correct for case differences between System.Data.SQLite and
  Mono.Data.Sqlite
* Exclude Direct3D and DirectSound from linux builds
* Provide linux versions of some windows-specific build events
* Exclude VocaluxeTests from linux builds so xbuild will work
* Add ability to build the native PitchTracker on linux
* Fix some problems with acinerella module
* Fix some windows-specific dependency checks that fail on linux
* Set OpenGL color format to 24-bit on linux
2015-02-13 03:15:19 +01:00
Stephan Sundermann 2b9a38ff0d Merge pull request #138 from flokuep/develop
Small fix, new language.
2015-02-06 22:27:52 +01:00
Florian Küpper 336376a1af Fixed starting next bg-music-track. 2015-02-05 19:57:12 +01:00
Florian Küpper d94e7a5fde Added polish-server-translation. 2015-02-05 18:50:08 +01:00
Stephan Sundermann e8e4c3b1b8 Merge pull request #137 from lukeIam/develop
Check if the app fits to the server version
2015-01-18 21:02:21 +01:00
lukeIam f60e0ac762 Merge branch 'develop' of https://github.com/Vocaluxe/Vocaluxe into develop
Conflicts:
	Vocaluxe/Vocaluxe.csproj
2015-01-18 20:56:55 +01:00
lukeIam dc4016a882 PostBuild code format fixed 2015-01-18 20:48:19 +01:00
lukeIam 0f5040d669 [App] - The app stores the Vocaluxe version it was created with
[Server] -getServerVersion added
[App] - Checks if the server has the right version, otherwise fallback to inApp WebVersion
2015-01-18 20:44:47 +01:00
Stephan Sundermann 846e20e24a Merge pull request #136 from lukeIam/develop
Serverlib build path
2015-01-17 19:29:33 +01:00
lukeIam a9b5334f3f Changed ServerLib's assembly name from ClientServerLib to ServerLib as there is no client code anymore 2015-01-17 18:29:26 +01:00
lukeIam bd2f545220 Fix: ServerLib build folder is wrong 2015-01-17 17:31:09 +01:00
Stephan Sundermann 3ccce93068 Merge pull request #135 from flokuep/develop
Fix: Copy new languages into right folder.
2015-01-17 15:09:48 +01:00
Florian Küpper f03cd930d2 Fix: Copy new languages into right folder. 2015-01-17 14:11:52 +01:00
Stephan Sundermann 9f1e120e10 Merge pull request #134 from flokuep/develop
Fixes and language-update.
2015-01-16 21:38:14 +01:00
Florian Küpper 43a8d4c8c2 Updated languages, new language:Portuguese, thanks to translators. 2015-01-16 20:48:43 +01:00
Florian Küpper 94539bbf92 Fixed bg-music glitches. 2015-01-16 17:32:32 +01:00
Florian Küpper 247bff132b Added BackgroundPreview as music source 2015-01-16 17:29:22 +01:00
Florian Küpper 4963431c19 Updated language-files. 2015-01-09 15:57:43 +01:00
Florian Küpper 0e02adba2d Updated language-files. 2015-01-04 11:16:30 +01:00
Stephan Sundermann 6e96fb6421 Merge pull request #133 from flokuep/develop
Fixes and improvements
2015-01-03 16:31:02 +01:00
Florian Küpper b11e40b313 Fix video-preview in song-screen. 2015-01-03 14:53:38 +01:00
Florian Küpper ff05fc57cc Increase version of party-mode-system. 2015-01-03 14:33:14 +01:00
Florian Küpper cf6ff3c133 Added options for number of songs and song-source to challenge-medley. 2015-01-03 14:29:35 +01:00
Florian Küpper dddb1206b3 Fix nullpointer-exception and bg-music behaviour. 2015-01-03 12:49:24 +01:00
Stephan Sundermann be51ba450b Merge pull request #132 from Flamefire/develop
Don't ignore Medley Tags
2014-12-31 18:42:01 +01:00
Flamefire be8fb53ecc Don't ignore Medley Tags 2014-12-31 18:40:34 +01:00
Stephan Sundermann f24acd7372 Merge pull request #131 from lukeIam/develop
Fixed: Bad request on some playlist operations
2014-12-31 14:59:24 +01:00
lukeIam a0e1f6d558 [Server] Send better messages on failed playlist operations 2014-12-31 13:39:18 +01:00
lukeIam 83fee9dc06 [Server] small change on request() 2014-12-31 13:26:53 +01:00
lukeIam dd470dcd66 Added comment with wcf tracing code 2014-12-31 13:26:28 +01:00
lukeIam f815dfb2fd Fix: saving a new created playlist could cause an exception 2014-12-31 13:24:08 +01:00
lukeIam 740fd33a18 [Server] Increased the timeout for image upload 2014-12-30 19:16:34 +01:00
Stephan Sundermann 4d494fe185 Merge pull request #130 from lukeIam/develop
[Server] multiple logins per user + mp3 stream
2014-12-30 19:06:40 +01:00
lukeIam 7db3b0f9f9 [Server] More audio formats for streaming 2014-12-30 15:52:15 +01:00
lukeIam e4ce006b06 [Server] Invalidate session after a timeout 2014-12-30 11:22:34 +01:00
lukeIam f4583b830a [Server] Allow multiple sessions with one user 2014-12-29 20:45:46 +01:00
lukeIam 51dc4391bd Merge branch 'develop' of https://github.com/Vocaluxe/Vocaluxe into develop 2014-12-29 19:09:31 +01:00
Stephan Sundermann 3f2a794952 Merge pull request #129 from Flamefire/develop
Develop
2014-12-27 13:26:23 +01:00
Flamefire 61e275af76 Fix usage of start tag in Gstreamer 2014-12-27 00:04:04 +01:00
Flamefire df82690cd0 Refactor background music to fix some possible issues and smooth out transitions 2014-12-26 22:39:44 +01:00
Stephan Sundermann fadfb497e8 Webcam: Remove OpenCV configs 2014-12-23 14:55:17 +01:00
Stephan Sundermann ccf8d61f5a Fix typo 2014-12-23 00:39:52 +01:00
Flamefire cd4c010f99 Avoid multiple comments in xml for array entries 2014-12-22 22:47:58 +01:00
Florian Küpper 92660712d0 Fixed cover-size-calc. 2014-12-22 12:41:57 +01:00
Flamefire c64d7c5bab Fade also volume during screen fading 2014-12-22 12:22:22 +01:00
Flamefire 2385f672d0 Add empty arrays to xml 2014-12-22 12:12:29 +01:00
Florian Küpper 27c1dc1aaa Change cover-size-calculation to have it squared. 2014-12-22 10:24:52 +01:00
Florian Küpper 0f8d39854f Fix flickering of last entry if list beyond is empty- 2014-12-22 10:15:02 +01:00
Florian Küpper e7c2606e8e Merge branch 'develop' of github.com:Vocaluxe/Vocaluxe into komadoc-develop 2014-12-22 10:09:42 +01:00
Florian Küpper 9aeb5c55ab - less entries to increase text-height (better readable)
- added MaxW to texts
2014-12-22 10:08:40 +01:00
Florian Küpper 10915cf6b9 Added small-view to SongMenuList, this fixes some input-issues. 2014-12-22 09:10:19 +01:00
Florian Küpper 2a50aa6d3a Bumped screen-version, fixed theme-issue. 2014-12-22 08:54:38 +01:00
Stephan Sundermann ddcc5d1a49 Merge pull request #127 from Flamefire/develop
Develop
2014-12-21 14:21:07 +01:00
Flamefire 9e4a14985e More fixes for playlist handling 2014-12-21 13:35:55 +01:00
Florian Küpper d5c39ceb1a Fix double-click for starting song. 2014-12-21 13:00:57 +01:00
Florian Küpper a199d7fba3 Merge branch 'develop' of github.com:Vocaluxe/Vocaluxe into komadoc-develop 2014-12-21 12:45:02 +01:00
Flamefire aa77d2d95c Fix drag&drop of playlist 2014-12-21 12:38:40 +01:00
Flamefire 9a5ac282c5 Fix selected button but unselected text 2014-12-21 12:18:08 +01:00
Flamefire 24edcc7328 Improve rounds generation 2014-12-21 12:09:54 +01:00
Stephan Sundermann 76859942b8 Merge pull request #126 from flokuep/develop
Some minor fixes.
2014-12-19 18:38:23 +01:00
Florian Küpper 4ede575ea1 Fix drawing playlist. (Still broken) 2014-12-19 18:23:29 +01:00
Florian Küpper e3ba241ff2 Updated translations. 2014-12-19 09:52:11 +01:00
Florian Küpper deb885ced5 Fixed scoring in challenge-modes. 2014-12-19 09:45:19 +01:00
Stephan Sundermann 3d088fa407 Merge pull request #125 from Flamefire/develop
Develop
2014-12-17 22:10:40 +01:00
Flamefire 148a894380 Merge branch 'develop' of git://github.com/Vocaluxe/Vocaluxe into develop 2014-12-17 21:52:32 +01:00
Flamefire 10b666a1bf Fix jumping note drawing 2014-12-17 21:50:28 +01:00
Flamefire 4138470d6b Fix graphic glitches with sing notes 2014-12-17 21:06:06 +01:00
Flamefire 3344a3562f Use new serializer for theme loading
Fix some bugs during load
2014-12-17 00:12:20 +01:00
Flamefire 6d494b64b3 Rewrite round generation and add unit test 2014-12-16 23:36:49 +01:00
Flamefire 84e9163b96 Refactor PartyModes in preparation for a more unified name selection and maybe config 2014-12-14 20:40:08 +01:00
Flamefire 29dccbd8ae FIx crashes on close before covers finished loading 2014-12-14 20:39:20 +01:00
Flamefire 1bb296c04d Add class for calculating combinations and a unitTest 2014-12-14 14:28:02 +01:00
mephasor ec791c100e Extracted List View parameters to ScreenSong.xml 2014-12-13 15:47:28 -04:00
mephasor 42d98070f9 - Clened the list menu code a tiny bit
- Added song number and total song count to the bottom text (instead of a scroll bar)
2014-12-13 12:34:11 -04:00
mephasor 3b775e7bc6 Merge pull request #1 from Flamefire/SongListView
Song list view
2014-12-13 11:14:08 -04:00
Flamefire 1ba0d429a1 Simplify SelectSlides and fix a couple of problems there 2014-12-13 13:52:59 +01:00
Stephan Sundermann 76d4de1cc2 Merge pull request #124 from flokuep/develop
Added translators to credits. It's now easy to add new translators/langu...
2014-12-13 11:52:01 +01:00
Florian Küpper 0712981e6f Added translators to credits. It's now easy to add new translators/languages to credits-screen. 2014-12-11 15:50:17 +01:00
Flamefire 80b9422fb0 Fix scrolling and hide empty tiles 2014-12-10 21:58:16 +01:00
Flamefire 903c4fc182 Remove proxy songmenu class 2014-12-10 21:45:27 +01:00
Flamefire 84694ccbe0 Allow ingame changing of songmenu 2014-12-10 21:11:59 +01:00
Flamefire 91fd13855f Merge branch 'develop' into SongListView 2014-12-09 22:50:55 +01:00
Flamefire cea1d43e6b Handle invalid and not existing cover themes 2014-12-09 22:50:24 +01:00
Flamefire bbc73b8784 Don't generate an existing cover 2014-12-09 22:29:34 +01:00
Flamefire 0cabd425ef Adapt changes in Vocaluxe to SongMenuList 2014-12-09 22:26:10 +01:00
Flamefire 20b2e735ec Merge branch 'develop' of git://github.com/KoMaDoctors/Vocaluxe into SongListView
Conflicts:
	Vocaluxe/Base/CConfig.cs
	VocaluxeLib/Menu/SongMenu/CSongMenu.cs
2014-12-09 21:49:33 +01:00
Flamefire 7e104f7167 Fix delay test 2014-12-09 21:28:02 +01:00
lukeIam 1e71360366 Added mp3 streaming for songs and a player to the app (experimental) 2014-12-09 17:58:42 +01:00
Stephan Sundermann 18bdb7aa05 Merge pull request #123 from Flamefire/develop
Bugfixes
2014-12-07 23:53:55 +01:00
Flamefire d1e4675c5c Load bg color in credits screen 2014-12-07 23:47:26 +01:00
Flamefire 4a63180600 Fix a case where no songs will be available
Also some cleaner structure (no double storing of values)
2014-12-07 23:45:16 +01:00
Flamefire 5f96ac77b5 Fix wrong song played in TicTacToe 2014-12-07 23:05:06 +01:00
Flamefire 3402c7b4c4 Merge branch 'develop' of git://github.com/Vocaluxe/Vocaluxe into develop 2014-12-07 22:48:00 +01:00
Flamefire c1131cc747 Fix wrong disabling/enabling of team number buttons 2014-12-07 22:33:11 +01:00
Flamefire 1b9ddd194e Fix assertion failure with enqueue texture 2014-12-07 22:05:18 +01:00
mephasor b4414cf08f Revert "Revert "Revert "Changed the SongLoader to handle UTF-8 Strings properly."""
This reverts commit 54a14d6395.
2014-12-06 12:40:32 -04:00
mephasor 54a14d6395 Revert "Revert "Changed the SongLoader to handle UTF-8 Strings properly.""
This reverts commit 20fce69585.
2014-12-06 12:40:25 -04:00
mephasor 20fce69585 Revert "Changed the SongLoader to handle UTF-8 Strings properly."
This reverts commit 8e0f4b60d6.
2014-12-06 12:40:22 -04:00
Stephan Sundermann b33cf54f1e Merge pull request #122 from flokuep/develop
Some fixes
2014-12-05 19:13:41 +01:00
Florian Küpper fdfbed9981 Another fix for party-modes. 2014-12-05 17:16:27 +01:00
Florian Küpper 58df2a0408 First fixes for party-mode. 2014-12-05 17:11:36 +01:00
Florian Küpper ca5d607937 Added check on PartyNameSelection if all player are selected, otherwise Vocaluxe would crash. 2014-12-05 16:52:20 +01:00
Florian Küpper 7fa3a5b195 Updated installer. 2014-12-05 14:18:04 +01:00
Florian Küpper a28a11b6f8 Fixed credits-screen (and added lukeIam finally!) 2014-12-05 13:38:56 +01:00
Florian Küpper 1237a7c12b Fixed slideshow. 2014-12-05 12:03:04 +01:00
Stephan Sundermann 5580210632 Merge pull request #121 from flokuep/develop
Smaller improvements
2014-12-04 17:22:35 +01:00
Florian Küpper 94ee6c0418 Right use of GetUniqueFileName-method. 2014-12-04 17:20:51 +01:00
Stephan Sundermann d9f677cbc4 Merge pull request #118 from Flamefire/develop
Develop
2014-12-03 22:19:14 +01:00
Flamefire 5a675e5bff Fix double ending a song session 2014-12-03 18:57:04 +01:00
Flamefire 2c214ddf44 Fix portAudio error msg 2014-12-03 18:56:49 +01:00
Flamefire 190d615972 Fix incomplete song menu 2014-12-03 18:27:34 +01:00
Flamefire 5cd553912c Fix unexpected deselect of start 2014-12-03 18:04:57 +01:00
Florian Küpper a6cb64d69c Fix some theme-issues. 2014-12-03 12:19:20 +01:00
Stephan Sundermann ade556c8ae Merge pull request #120 from flokuep/develop
Fixed starting server and creating profiles.
2014-12-03 11:14:40 +01:00
Florian Küpper 13f6e869c1 Fixed starting server and creating profiles. 2014-12-03 11:06:11 +01:00
Stephan Sundermann 9990ede3ca Merge pull request #119 from flokuep/develop
Some fixes on names-screen.
2014-12-02 23:46:23 +01:00
Florian Küpper b062672dfb Some fixes on names-screen. 2014-12-02 23:29:22 +01:00
Stephan Sundermann 558b6ed218 Merge pull request #117 from flokuep/develop
Added cover-theme, updated language-files
2014-12-02 22:14:30 +01:00
Flamefire d8cad8fd2c Revert "Remove unnecessary lock"
This reverts commit c96fac02c2.
2014-12-02 22:08:55 +01:00
Flamefire cd59b82b7b Fix some resharper warnings and errors 2014-12-02 21:59:33 +01:00
Flamefire 167202e8ff Remove PitchTracker# (not good enough) 2014-12-02 21:08:14 +01:00
Flamefire c96fac02c2 Remove unnecessary lock 2014-12-02 20:59:45 +01:00
Florian Küpper bebfd8ef01 Fix language-files. 2014-12-02 20:03:14 +01:00
Florian Küpper 4bc6a8b8d4 Update language-files. 2014-12-02 18:38:07 +01:00
Florian Küpper 22dae1cc0e Added ambient-cover-themes. 2014-12-02 18:34:28 +01:00
Flamefire 4b0f563a6c Fix crashes/assertion failures on theme/skin change
First step of fixing theme saving (still needs some work)
2014-12-01 22:40:47 +01:00
Flamefire a1981804e3 Fix crash on category change 2014-12-01 21:42:40 +01:00
Stephan Sundermann 417de86984 Merge pull request #116 from flokuep/develop
Some fixes and improvements.
2014-12-01 15:41:32 +01:00
Florian Küpper 6ade8f9eca Update installer. Remove resources-folder from installer, it's not used, everyone who needs it could download them from Github. 2014-11-30 14:42:32 +01:00
Florian Küpper 374e6e67d2 Fix crash in record-options. 2014-11-30 14:21:31 +01:00
Florian Küpper 4355f500ba Remove unneeded theme-stuff in party-modes. 2014-11-30 14:15:48 +01:00
Stephan Sundermann 7044d8a084 Merge pull request #115 from Flamefire/develop
Develop
2014-11-29 19:37:17 +01:00
Flamefire 96b1fe4ef6 Fix warning design 2014-11-27 23:41:44 +01:00
Flamefire 8c2db41b36 Fix keyboard name selection 2014-11-27 23:41:34 +01:00
Flamefire 204c608000 Fix some elements not selectable 2014-11-27 23:26:37 +01:00
Flamefire 4a78dd4b31 Fix missing song length and wrong volumes (int=0-100, float=0-1)
Also fade in preview music
2014-11-27 23:06:01 +01:00
Flamefire b99f9467de Fix inaccessible buttons 2014-11-27 23:03:04 +01:00
Flamefire 26484ad137 Fix blank screen issue
Also fix some other bugs and improvements (easier party modes, volume fixes, new fields for screens to control volume and popups)
2014-11-27 21:47:02 +01:00
Stephan Sundermann db208cbbec Merge pull request #114 from Flamefire/develop
Handle missing/empty config
2014-11-24 22:24:52 +01:00
Flamefire 36b81e8c1f Don't fake a mouse move and unselect buttons with that on screen change 2014-11-24 22:23:55 +01:00
Flamefire 831cfd9f20 Handle missing/empty config
Make Deserializer handle default values recursively
2014-11-24 22:14:33 +01:00
Stephan Sundermann f1645d22a2 Merge pull request #113 from flokuep/develop
some fixes
2014-11-23 22:23:08 +01:00
Florian Küpper 08cdaac59a Fix showing selected tile. 2014-11-23 15:12:05 +01:00
Stephan Sundermann 0dd7c039f0 Merge pull request #112 from lukeIam/develop
Fix: remote app can't show own profile under some circumstances
2014-11-21 19:22:12 +01:00
lukeIam 3a2b309576 Fix: remote app can't show own profile under some circumstances 2014-11-21 18:55:40 +01:00
Florian Küpper 3a2822d406 Some fixes. 2014-11-21 16:32:04 +01:00
Stephan Sundermann fda418c6dd Merge pull request #111 from Flamefire/develop
Develop
2014-11-19 23:33:16 +01:00
Flamefire 3919a2064d Add modified profiles 2014-11-17 20:13:23 +01:00
Flamefire d5160330c2 Save converted profile 2014-11-17 19:51:42 +01:00
Flamefire dd6b0416b6 Rename XML to lowercase Xml in classes and names for consistency 2014-11-17 19:33:48 +01:00
Flamefire 33618b4c97 Use extra class for xml exception
Add handler class for xml errors
Fix testcases
2014-11-17 19:27:43 +01:00
Flamefire a2aafd4614 Merge branch 'develop' of git://github.com/Vocaluxe/Vocaluxe into XmlSerialization 2014-11-14 21:21:23 +01:00
Stephan Sundermann 5f037e6cf3 Merge pull request #110 from lukeIam/develop
New features for the remote keyboard and some JS fixes
2014-11-13 00:24:55 +01:00
lukeIam 0cdb537424 Added manual key send to the remote keyboard 2014-11-12 21:59:35 +01:00
lukeIam b036aa5d69 Removed an unused translation 2014-11-12 21:27:26 +01:00
lukeIam 29dce6c30a Merge branch 'AllKeysKeyboard' into develop
Conflicts:
	Vocaluxe/Website/js/main.js
2014-11-12 21:03:00 +01:00
lukeIam 2da8b54d67 Fixed: ownProfileId is undefined and some similar "this" problems 2014-11-12 20:52:31 +01:00
Stephan Sundermann 207f1a02f0 Include git hash in version 2014-11-12 00:11:26 +01:00
lukeIam e10de6ca0e Added backspace and Alt, Shift, Ctrl to the remote keyboard 2014-11-11 22:05:43 +01:00
Stephan Sundermann a8371303c8 Merge pull request #109 from lukeIam/develop
Added a simple windows build howto
2014-11-11 20:59:32 +01:00
lukeIam a93f2ac448 Added VS13 git client posiblity 2014-11-11 19:33:58 +01:00
lukeIam f3aebd2619 Fixed typos in HowToBuildWin.md 2
rest will follow..
2014-11-11 18:43:01 +01:00
lukeIam 2a3dceea71 Fixed typos in HowToBuildWin.md 2014-11-11 17:08:27 +01:00
lukeIam b59416b575 Layout HowToBuildWin.md 2014-11-11 17:03:21 +01:00
lukeIam 3b15c3e19b Add images to HowToBuildWin.md 2014-11-11 16:55:54 +01:00
lukeIam 2ba0c8df4f Add extension to HowToBuildWin 2014-11-11 16:46:54 +01:00
lukeIam c001fd9342 Added BuildWinHowTo 2014-11-11 16:43:09 +01:00
Stephan Sundermann e377f75f1d Merge pull request #108 from lukeIam/develop
Refactoring of the JS App part
2014-11-10 11:54:10 +01:00
lukeIam 53153774b7 Fixed: remote keyboard not working in input fields 2014-11-09 21:54:52 +01:00
lukeIam 9773aa31d8 Reactivated and modified text field for keyboard 2014-11-09 21:29:15 +01:00
lukeIam 5e67d9d4db Fixed mixed tabs and spaces 2 2014-11-09 11:50:59 +01:00
lukeIam ee7690228f Fixed mixed tabs and spaces 2014-11-09 11:47:46 +01:00
lukeIam 23a9059ff9 Merge remote-tracking branch 'remotes/origin/APP_Refactored_mainJS' into develop
Conflicts:
	ClientServerLib/ClientServerLib/CServer.cs
	ServerLib/CWebservice.cs
	ServerLib/DataStructs.cs
	ServerLib/ICWebservice.cs

Divided a mixed branch...
2014-11-07 17:18:49 +01:00
Flamefire 7188208b6b Add documentation 2014-10-30 19:21:28 +01:00
Flamefire a318ce12fa Replace remaining usages of CXmlSerializer
(Old theme loading remaining)
2014-10-30 17:54:59 +01:00
Flamefire 12e48d0446 Split serializer/deserializer 2014-10-30 16:49:14 +01:00
Flamefire 3928fee041 Remove old CXmlDeserializer class 2014-10-30 16:35:07 +01:00
Flamefire 0c5dcd9c74 More options to serialize dictionaries 2014-10-30 16:32:39 +01:00
Flamefire 61a0d4fdf1 Serialize Profiles
All writings now done through new serializer
2014-10-29 01:29:02 +01:00
Flamefire f563bae495 Allow unordered xml nodes, Ignore *Specified fields, Convert byte[] to base64 2014-10-29 01:27:48 +01:00
Flamefire 93a415205e Remove Profiles.FileName and use FilePath correctly 2014-10-27 20:02:06 +01:00
Flamefire af88bb2161 Serialize properties 2014-10-27 19:44:23 +01:00
Flamefire 1698c1b027 Serialize playlists 2014-10-27 18:40:47 +01:00
Flamefire 206a6cda35 Cleanup to remove warnings 2014-10-27 18:04:23 +01:00
Flamefire f9e85d8168 Add unit test for serializer 2014-10-27 17:54:31 +01:00
Flamefire e982d7ee6f Serialize to/from string 2014-10-27 17:51:06 +01:00
Flamefire acaf4eadb2 Serialize Themes 2014-10-27 11:10:29 +01:00
Flamefire 092f8df8f5 Put a constraint on fade time 2014-10-27 11:10:15 +01:00
Flamefire 6f873c9785 Include Dictionaries in serializer 2014-10-27 11:09:41 +01:00
Flamefire ebe531e5eb Fix wrong numberformat 2014-10-27 11:08:43 +01:00
Flamefire 7ce9a10126 Make config serializable 2014-10-26 14:03:12 +01:00
Flamefire 99b7989c48 Make Serializer non-static to allow other underlying classes (e.g. for linux)
Allow also arrays and comments
2014-10-26 14:02:48 +01:00
Flamefire 527841b940 Implement serialization 2014-10-25 13:42:46 +02:00
Flamefire 5e789d27a6 Replace Tabs with spaces 2014-10-25 13:42:14 +02:00
Flamefire 4904144ccb Fix indents of /Text tags 2014-10-25 13:21:29 +02:00
Flamefire 3ff7540693 Rename class 2014-10-25 12:13:58 +02:00
Flamefire 9aa9ff9291 Implement caching and extension methods 2014-10-25 00:45:34 +02:00
Flamefire 2452306e6c Add benchmark 2014-10-25 00:37:09 +02:00
Flamefire b044efe50e Add normalized attribute
Allow empty embedded lists
2014-10-24 23:46:45 +02:00
Flamefire c3affed9b1 Fix handling of nullables
Improve error handling
2014-10-24 23:08:15 +02:00
Flamefire d7d6cba5ae Remove enabled attribute from reflection 2014-10-24 23:07:56 +02:00
Flamefire 8ed9f56d30 Make SelText a nullable 2014-10-24 23:00:29 +02:00
Flamefire eca0dd68ca Make SReflection a nullable 2014-10-24 22:54:11 +02:00
Flamefire ad3f01aded Refactoring and fixes for some special cases (mostly lists) 2014-10-24 22:48:47 +02:00
Flamefire 8dda647619 Move Tag 2014-10-24 22:47:54 +02:00
Flamefire dfc4a2c1cc Implement new class for deserialization 2014-10-24 13:58:59 +02:00
Flamefire 31a9ac6afa Change struct of cover file 2014-10-24 13:52:18 +02:00
Flamefire 6001f2f47d Fix exception on shutdown 2014-10-24 13:51:29 +02:00
Flamefire 8ac2ab9a03 Use attributes 2014-10-23 17:30:56 +02:00
Flamefire e01bd5da81 Remove not required covers 2014-10-23 17:14:49 +02:00
Flamefire 8ae1ff3e57 Move enum to enums 2014-10-23 17:06:44 +02:00
Flamefire fe07a2f926 Generate Covers for songs 2014-10-23 17:05:57 +02:00
Flamefire 0a48c6b74b Rename CoverGenerator 2014-10-23 17:05:42 +02:00
Flamefire a51e7c5698 Rename Lyric.SelColor to Lyric.ProcessedColor 2014-10-23 00:48:52 +02:00
Flamefire 10c456cbff Unify name of selected color to SelColor 2014-10-23 00:39:57 +02:00
Flamefire 714b28294f Remove unnecessary tags from themes 2014-10-23 00:30:44 +02:00
Flamefire 2f99cd2560 Make CSingNotes also implement Draw()
Also a bit refactoring
2014-10-22 22:00:25 +02:00
Flamefire 6bf8a5d64c Draw highlighted element 2014-10-22 13:49:41 +02:00
Flamefire 67d081d1c1 Draw background like all other elements
Few fixes
2014-10-22 13:47:26 +02:00
Flamefire 8c3a50c18f More improvements for objectinteractions
Also removes highlight textures and colors
2014-10-22 13:46:34 +02:00
Flamefire d910b944ea Add error check on prescan of gstreamer audio 2014-10-19 18:51:39 +02:00
Flamefire d208f9d7b9 Reformatting
Also adds license headers
2014-10-19 18:51:14 +02:00
Flamefire 4c7013836b Move non-drawing stuff out of Draw methods 2014-10-19 18:37:16 +02:00
Flamefire 432ff4f4f3 Use basic Draw method in ScreenCredits and fix error when shown multiple times 2014-10-19 18:18:50 +02:00
Flamefire 60962e382b Deny changing anything by mouse in songmenu if the options dialog is shown 2014-10-19 17:40:57 +02:00
Flamefire e7d1febe4b Fix Drag&Drop 2014-10-19 17:32:03 +02:00
Flamefire ae7a7fd390 Implement a common Interface for all MenuElements
Also remove CSongMenu and replace it with a factory class
2014-10-19 17:17:39 +02:00
Flamefire 9479f3b3ff Re-add staticScore 2014-10-19 13:32:32 +02:00
Flamefire 63fc406735 More unification of menuelements and fix for screensing theme 2014-10-18 20:46:51 +02:00
Flamefire 1b4f3ced7d Fix theme issues 2014-10-18 18:46:23 +02:00
Flamefire b07d31f697 Unify object interactions 2014-10-18 18:46:13 +02:00
Flamefire d8cce13211 Rename LoadTextures to LoadSkin
(Its also Colors, not only textures!)
2014-10-18 10:42:35 +02:00
mephasor 8e0f4b60d6 Changed the SongLoader to handle UTF-8 Strings properly. 2014-10-17 13:53:11 -03:00
Flamefire 9a699f4cb5 Remove PlayerNDimM 2014-10-17 00:17:49 +02:00
Flamefire 38a19b6adb Allow incomplete colors 2014-10-16 23:57:23 +02:00
Flamefire 13fa20a517 Cancel auto cover creation on shutdown 2014-10-16 23:55:55 +02:00
Flamefire 8109d77ab1 Fix wrong theme stuff 2014-10-16 23:47:52 +02:00
Flamefire 3f76d039b6 Change color representation
Allow missing ARGB values (defaults to 1)
Allow Name+ARGB to easily overwrite some values
2014-10-16 22:40:18 +02:00
Flamefire 87f3271046 Remove copy constructors for structs 2014-10-16 21:38:22 +02:00
Flamefire e04480171e Merge branch 'develop' of git://github.com/flokuep/Vocaluxe into develop 2014-10-16 21:28:14 +02:00
Flamefire 86fb73ca48 Cleanup not required XML attributes 2014-10-16 21:27:09 +02:00
Flamefire f01005ea60 Add changelog for skinsystem 2014-10-16 21:05:31 +02:00
mephasor 9e5e482265 Changed the list view enum entry to use the already existing one. 2014-10-16 15:18:39 -03:00
mephasor 17a2801492 Changed the xml definition of list view to use the already existing one. 2014-10-16 15:17:20 -03:00
mephasor 7c5d5786a6 Added German and English Language entries for the list view. 2014-10-16 14:52:32 -03:00
Flamefire b8bd9bf87b Fix exception on shutdown
Improve error handling during shutdown
2014-10-16 19:08:20 +02:00
Flamefire 2371eb4344 Refactor theme system 2014-10-16 19:00:41 +02:00
mephasor ef111fde2f Added a list style song menu which can be activated in the game menu screen 2014-10-16 13:57:34 -03:00
Flamefire c45b18d133 Fix missing avatar 2014-10-15 18:05:50 +02:00
Flamefire 98601bd7b1 Partially revert commit and fix wrong partymode table for good 2014-10-15 17:57:15 +02:00
Flamefire b988d5f0fe Remove invisible skin 2014-10-15 17:52:03 +02:00
Flamefire aa0579a4f1 Make partymodes reload their themes
Move PartyModeIds into Partymodes
Fix bug where wrong text size is used (CalculatedFont is now used)
Fix bug where text of the main table in partymodes is displayed wrong
2014-10-15 17:25:37 +02:00
Flamefire 5d28b19066 Add partymode path as constructor param 2014-10-15 15:43:48 +02:00
Flamefire e119e46c5a Improve partymode loading (return bool instead of incomplete PM) 2014-10-15 15:32:16 +02:00
Flamefire c1866c0ad5 Add checking for required elements 2014-10-10 02:03:07 +02:00
Flamefire 4efd670747 Move and Rename reading of SColorF 2014-10-09 23:27:32 +02:00
Flamefire a2720c2108 Rename Partymode themes to fit new default style 2014-10-08 22:47:48 +02:00
Flamefire b7ca304322 Fix Color description in Theme
Fix typo
Allow loading themes from file multiple times (e.g. for party modes)
2014-10-08 22:39:48 +02:00
Flamefire ae8a3c61d5 Fix disposed exception on disposing a texture 2014-10-08 22:29:22 +02:00
Flamefire defb2ca6c7 Rewrite Theme Engine 2014-10-08 22:29:02 +02:00
Flamefire 9e5011374f Rename CTheme to CThemes 2014-10-05 17:27:45 +02:00
Flamefire 355d7b4b5f Merge branch 'develop' into Better_Graphics_Handling
Conflicts:
	VocaluxeLib/Menu/CNameSelection.cs
	VocaluxeLib/Menu/CPlaylist.cs
	VocaluxeLib/Menu/CText.cs
	VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs
	VocaluxeLib/Structs.cs
	VocaluxeLib/VocaluxeLib.csproj
	VocaluxeLib/Xml/CXMLReader.cs
2014-10-05 15:09:52 +02:00
Flamefire 6a3bf7b2c0 Introduce CVideoStream for easier video handling (already includes a texture, important for common usage of streams) 2014-10-05 14:20:57 +02:00
Flamefire 89e528c2a6 Factor out CSkin class
Replace usages of GetColor and remove GetColor(..., skinIndex,...)
2014-10-05 13:36:11 +02:00
Flamefire 1c884f3acb Rename Unload to Close to match Init-Close pattern 2014-10-04 11:17:56 +02:00
Flamefire 31863a7788 Speed up slideshow loading 2014-10-04 11:15:37 +02:00
Flamefire 54f97a4928 Fix artifacts on NPOT textures in OGL
Fix reuse check of textures
Introduce Size field for textures (replacing W2, H2)
2014-10-04 10:44:48 +02:00
Flamefire 719c73e6d3 Remove regions
Fix MatrixUsage for rectReflection in OGL
2014-10-04 09:08:36 +02:00
Flamefire 4e17745be0 Fix wrong centering of window 2014-10-04 08:59:53 +02:00
Flamefire 2d99bbd2ed Move Texture handling to new base class 2014-10-04 08:51:25 +02:00
Flamefire 2e25bf6610 Merge branch 'Better_Graphics_Handling' into develop
Conflicts:
	Vocaluxe/Base/Fonts/CFontStyle.cs
2014-10-02 20:46:04 +02:00
Flamefire f1c89b9a8e Merge branch 'Automatic_Covers' into develop
Conflicts:
	Vocaluxe/Base/CBackgroundMusic.cs
	VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs
2014-10-02 20:43:17 +02:00
Flamefire 6ebbf7df6f Introduce example for a more flexible deserialization
Also make the CoverGenerator themes serializeable
Rest is automatic reformatting.
2014-10-01 00:54:04 +02:00
Flamefire 94d3bed471 Move same methods to base class 2014-09-27 16:56:37 +02:00
Flamefire 158117ce31 Use texture alignment to reduce artifacts 2014-09-27 16:50:00 +02:00
Flamefire b48cfa8e77 Handle drawing with bounds in one place
Also reduces drawing code a lot...
2014-09-27 14:09:36 +02:00
Florian Küpper 7f965e0f9b Check for right screen-version. 2014-09-27 13:13:36 +02:00
Flamefire 19f81943d6 Introduce RenderRect for easy access to the full screen rect 2014-09-26 15:05:19 +02:00
Flamefire 25653ee55f Revert "Remove bounds from DrawTextureReflection because it was never used"
This reverts commit f5f1a91481.

Conflicts:
	Vocaluxe/Base/CMain.cs
	Vocaluxe/Screens/CScreenSing.cs
	VocaluxeLib/IBasic.cs
	VocaluxeLib/Menu/CStatic.cs
	VocaluxeLib/Menu/SongMenu/CSongMenuTileBoard.cs
2014-09-26 15:04:08 +02:00
Flamefire 125be98466 Actually dispose queued Bitmaps 2014-09-25 20:07:30 +02:00
Flamefire 467b619f0a Create covers in a task 2014-09-25 20:04:08 +02:00
Flamefire aff7f42c68 Factor out a few functions (GetCover was tooooo big)
Make it return a bitmap (preparation for next step)
2014-09-25 19:59:16 +02:00
Flamefire 2a79f778e6 remove test 2014-09-25 19:43:28 +02:00
Flamefire dd1231ad34 Merge branch 'Better_Graphics_Handling' into Automatic_Covers
Conflicts:
	Vocaluxe/Base/CCover.cs
	Vocaluxe/Base/CGraphics.cs
	Vocaluxe/Base/Fonts/CFontStyle.cs
	Vocaluxe/Base/Fonts/CGlyph.cs
	VocaluxeLib/Menu/CText.cs
	VocaluxeLib/Structs.cs
2014-09-25 19:43:21 +02:00
Florian Küpper fc432f34eb Fixed some bugs with bg-music. 2014-09-25 19:36:16 +02:00
Flamefire 0611148ec4 Handle gstreamer audio init better 2014-09-25 19:11:03 +02:00
Flamefire c156fa69ab Merge branch 'develop' of git://github.com/flokuep/Vocaluxe into Better_Graphics_Handling
Conflicts:
	Vocaluxe/COSFunctions.cs
	VocaluxeLib/CHelper.cs
	VocaluxeLib/Menu/CStatic.cs
	VocaluxeLib/Structs.cs
2014-09-25 18:49:18 +02:00
Flamefire 5364787599 Resize enqueued bmp update in a task 2014-09-25 16:37:48 +02:00
Flamefire a06e5066e9 Fix bug with removing a removed texture reference 2014-09-25 16:22:49 +02:00
Flamefire f0b227798e Increase speed of cover loading 2014-09-25 16:22:29 +02:00
Flamefire 3bce89eecf Fix locking 2014-09-25 13:06:20 +02:00
Flamefire bf7eec4233 Use Resize function in CoverLoader
Add possible multithreading
2014-09-25 12:55:00 +02:00
Flamefire 879176a87f Rename SetRect to something more appropriate and tune it 2014-09-25 12:15:18 +02:00
Flamefire 2ba5f9ee7f Add another benchmark entry and correct one 2014-09-24 19:15:04 +02:00
Flamefire bb146b66a3 Fix wrong position of drawing area 2014-09-24 19:05:51 +02:00
Flamefire 926dda7350 Remove DrawLines (was not working in D3D and can actually be replaced by narrow DrawRects) 2014-09-24 18:54:58 +02:00
Flamefire 538eab9516 Add Assertions for color values and fix some wrong ones 2014-09-24 16:52:11 +02:00
Flamefire cc7d8058e2 Move extension methods to Extensions.cs
Add IsInRange function
2014-09-24 16:40:45 +02:00
Flamefire db4096d57f Improve background drawing
Don't convert to RectangleF for rescaling
Add function for colored fitting of a texture in bounds
Add DrawLine in IDrawing
2014-09-24 16:36:18 +02:00
Flamefire 5f139467ea Make sure we actually add the data to a queued texture 2014-09-24 15:52:38 +02:00
Flamefire 466c443a20 Fix race condition when getting the loader task 2014-09-24 15:33:24 +02:00
Flamefire 649f81494e Fix some race conditions with the texture references
Add queuing of files
Split CEncoding to separate file
2014-09-23 21:37:46 +02:00
Flamefire 1121261a4a Resize textures based on its area rather than on its width and Height
(No need for 2048*2048 textures on a 1280*720 rendering area and also no need to resize a 1280*720 texture to 1024*1024)
2014-09-22 17:32:58 +02:00
Flamefire d1e9fbaff1 Add extension methods for bitmap GetSize and GetRect 2014-09-22 16:27:00 +02:00
Flamefire 016b7627d1 Fix for possible error with mirrored texture drawing 2014-09-22 15:55:48 +02:00
Flamefire f5f1a91481 Remove bounds from DrawTextureReflection because it was never used 2014-09-22 15:55:31 +02:00
Flamefire c9c907e3f0 Add more queue and update functions
Add CopyTexture function
Document CDraw
2014-09-22 15:08:45 +02:00
Florian Küpper 09d0529050 Fix finding gstreamer-lib. 2014-09-22 12:57:23 +02:00
Florian Küpper 025f6542dd Updated installer. Installer checks now which prerequisites are already installed. 2014-09-21 17:12:18 +02:00
Florian Küpper 4eb5872e2f Update installer. Add gstreamer-installer-files manually (don't want to blow up repository) 2014-09-21 16:22:06 +02:00
Florian Küpper 32352e2e1b Merge branch 'develop' of https://github.com/xDarkice/Vocaluxe into develop 2014-09-21 14:33:56 +02:00
Flamefire be67b039d6 Unify and improve texture updating (Do not create new references) 2014-09-20 17:17:34 +02:00
Flamefire 632b90a0e3 Unify Texture data writing 2014-09-20 15:30:48 +02:00
Flamefire 4d197bda9a Remove PBO
It was not used correctly and is actually not really required so save the time fixing it...
2014-09-20 15:09:23 +02:00
Stephan Sundermann 76f5ac93bb Update gstreamer-sharp to 1.4
Removed all native gstreamer libraries from the gstreamer directory. The implementation reads the environment variables from the gstreamer packages to add the gstreamer binaries to the PATH.
The installer can embed the merge module files from gstreamer.
2014-09-20 01:38:47 +02:00
Flamefire 1ce085b49f Use better references to a single texture and unify more stuff
Also encapsulate everything graphic related in the Texture classes and not in the references
2014-09-20 00:50:04 +02:00
Florian Küpper e915e72ce6 Added to zoom-levels to VideoAspect. Toogle on ScreenSing with 'V', saved to song-text if saving is enabled in config.xml. 2014-09-19 16:15:53 +02:00
Florian Küpper 6ea49eeab0 Merge branch 'develop' of github.com:Vocaluxe/Vocaluxe into develop 2014-09-19 12:26:12 +02:00
Florian Küpper 2d6a750b0b Merge branch 'theme' into develop 2014-09-19 12:23:23 +02:00
Florian Küpper f0902a02a0 Language update. 2014-09-19 12:13:54 +02:00
Florian Küpper fef075eeb8 Fixed reflections. 2014-09-19 11:51:29 +02:00
Florian Küpper 30439659b9 Some fixes. 2014-09-19 11:16:34 +02:00
Florian Küpper c59b03df6b Added command-line-parameter to load old-theme-files. We should remove it after next release. 2014-09-19 10:46:05 +02:00
Florian Küpper b1ed316d13 Fixed some reflections. 2014-09-18 15:49:31 +02:00
Florian Küpper 6b8379c081 Fix translation-bug in party-modes. 2014-09-18 15:37:47 +02:00
Florian Küpper c07441bc63 Load complete theme-date with de-serialization. 2014-09-18 15:35:52 +02:00
Florian Küpper 4f8c482645 Remove unneeded constructors. 2014-09-15 19:44:19 +02:00
Florian Küpper 9ab0ea5f34 Update more LoadTextures-methods. Some changes are a bit ugly, but will removed later. 2014-09-15 19:35:00 +02:00
Flamefire cfb6d09d06 Fix typo (leading to graphics bug) 2014-09-15 18:02:55 +02:00
Stephan Sundermann 1a94f3a6f8 Merge pull request #103 from flokuep/develop
sound/song-player
2014-09-13 19:34:54 +02:00
Flamefire 3075006799 Add cache for loaded bitmaps (reduces amount of duplicate textures) 2014-09-13 18:11:08 +02:00
Flamefire 37aa8e5219 Remove textures with no references 2014-09-13 17:58:59 +02:00
Flamefire 7f8e974fe1 Rename CTexture to CTextureRef to reflect it is only a reference 2014-09-13 17:51:55 +02:00
Flamefire 3fe8cdf05c Workaround for OGL bug 2014-09-13 17:49:21 +02:00
Flamefire 46c3353e08 Add better border and alignment handling 2014-09-13 17:44:46 +02:00
Flamefire 9fce9fe962 Faster rendering (most draw calls are without bounds)
Fix for D3D
2014-09-13 16:19:25 +02:00
Flamefire 128abf61b9 Fix initial resize of OGL 2014-09-13 01:22:56 +02:00
Flamefire 4a068f113e Fix missing null check 2014-09-13 01:22:42 +02:00
Flamefire 0796cbaef8 Workaround for Font bug 2014-09-13 01:22:05 +02:00
Florian Küpper d248292fa3 Update LoadTextures for some elements. 2014-09-12 09:34:55 +02:00
Flamefire 76ededf9f3 Unify as much of D3D and OpenGL as possible 2014-09-11 21:58:30 +02:00
Flamefire 46acaf092a Make a common base class for CD3D and COpenGL 2014-09-11 10:59:50 +02:00
Flamefire ad18bec52c Improve CTexture and Drawing stuff related to that
(Don't use an ID queue, store DataSizes of texture data)
2014-09-10 20:58:35 +02:00
Florian Küpper e936fe4126 Added constructors with STheme*-structs, LoadTextures() will be LoadTheme later and set all needed values from theme-struct to object. 2014-09-10 20:44:39 +02:00
Florian Küpper 912cfac8c5 Saved theme (so everything should be right before changing to de-serialization) 2014-09-10 20:26:13 +02:00
Florian Küpper 6d46cbc069 Some renamings. 2014-09-10 20:22:39 +02:00
Flamefire 93a7e70ca3 Add Assertions for empty fontName
Simplify Dispose of fonts
Check for existing fonts when none found
2014-09-10 18:10:34 +02:00
Flamefire 6c7b59ed44 Adapt to changed usage of CFonts 2014-09-10 17:50:30 +02:00
Flamefire eaa709813d Merge branch 'Font_Rewrite' into Automatic_Covers 2014-09-10 17:19:25 +02:00
Florian Küpper 9cca49745a Added constructors to STheme* for copying. 2014-09-10 11:17:36 +02:00
Florian Küpper cea276090d Change serialization. It think it's much better now. 2014-09-09 22:04:52 +02:00
Florian Küpper 96e50f7723 Changed theme-color-handling. 2014-09-09 21:32:07 +02:00
Florian Küpper a55d724620 Merge branch 'develop' of github.com:Flamefire/Vocaluxe into theme 2014-09-08 21:22:57 +02:00
Flamefire e9b584d84c Show an error if no profiles found and disable gaming 2014-09-07 19:33:28 +02:00
Flamefire 64c142345b Disable Buttons also deselects it 2014-09-07 19:31:57 +02:00
Flamefire d327f22741 Fix wrong colors 2014-09-07 19:30:52 +02:00
Flamefire 774035e886 Make GetProfiles return an empty array in case of no profiles 2014-09-07 12:11:42 +02:00
Flamefire e66d108df0 Handle errors in profile files 2014-09-07 11:11:16 +02:00
Flamefire 445d50bcaf Merge branch 'develop' into Font_Rewrite 2014-09-07 10:49:21 +02:00
Flamefire a5ddeeee95 Merge branch 'develop' of git://github.com/flokuep/Vocaluxe into develop 2014-09-07 10:37:37 +02:00
Flamefire 94be5ce97b Use CFont class to define the font to use 2014-09-07 10:35:41 +02:00
Flamefire 7f60e6f321 First Step to make CFonts threadsave 2014-09-06 14:17:27 +02:00
Flamefire 32241a91dc Restructure and simplify Font loading 2014-09-06 12:57:40 +02:00
Flamefire 9f8dfaa50c Add range checks in XMLReader 2014-09-06 12:48:56 +02:00
Florian Küpper d27cbcd7d0 Another fix for bg-music. 2014-08-27 09:05:04 +02:00
Florian Küpper 290f6d024e Serialize complete screens. 2014-08-26 17:37:50 +02:00
Florian Küpper b2102b11d9 Add serialization for all theme-elements. 2014-08-26 16:48:30 +02:00
Florian Küpper 4bbb0bfb14 Try it for background. 2014-08-26 09:29:39 +02:00
Florian Küpper 6b958527ce First try to implement serialisation (for statics). 2014-08-25 17:22:13 +02:00
Florian Küpper abe8987748 Fixed sing-button in bg-popup. 2014-08-24 20:22:38 +02:00
Flamefire b634fb98f9 Add more options and improve splitting of text 2014-08-24 20:07:15 +02:00
Florian Küpper cd7bb322f9 Merge branch 'sound-player' into develop 2014-08-24 18:03:18 +02:00
Florian Küpper dd1fe4402c Draw color instead of texture when changing song (looks better) 2014-08-24 18:01:02 +02:00
Florian Küpper 46544aee82 Fix repeating of bg-music. 2014-08-24 17:38:37 +02:00
Florian Küpper 942c8dca27 Fix showing bg-video on start (if enabled) 2014-08-24 14:34:51 +02:00
Florian Küpper 74654d7fcf More improvements and fixes (nearly stable now) 2014-08-24 13:09:57 +02:00
Florian Küpper 6c4fe011bf Some improvements. 2014-08-24 12:42:05 +02:00
Florian Küpper fddd56c2f9 Fix bug with medley-countdown. 2014-08-23 08:05:49 +02:00
Florian Küpper fb56c5248b Merge branch 'develop' of github.com:Flamefire/Vocaluxe into develop 2014-08-23 08:03:00 +02:00
Florian Küpper 6dda1a38d0 Added background-music-option: "Only selected song". bg-music is played on name/score/highscore screen with selected song. 2014-08-22 21:22:03 +02:00
Florian Küpper b30efb1913 some fixes. 2014-08-22 21:01:24 +02:00
Florian Küpper f926263706 Fix video sync. 2014-08-22 18:05:50 +02:00
Florian Küpper 6f617aa40b Some improvements... 2014-08-22 17:51:47 +02:00
Florian Küpper eef988fcdb Some code-cleanup. 2014-08-20 19:14:20 +02:00
Florian Küpper d0958b69be Some changes to preview-start. 2014-08-20 19:10:13 +02:00
Florian Küpper c6e8854dda Change preview-player. Now it's part of bg-music. 2014-08-20 18:50:27 +02:00
Flamefire 3f4f2776be Add first working implementation of the cover generator
TODO: Speedup
2014-08-14 16:07:49 +02:00
Flamefire 388bd6310f Add GetSong to Categories 2014-08-14 16:07:06 +02:00
Flamefire d20c31ef71 Add additional logging functionality 2014-08-14 16:06:43 +02:00
Flamefire 43fff7f52f Rename FileName to FilePath 2014-08-14 16:03:09 +02:00
Flamefire 8f60d5dae5 Rename LoadCover function 2014-08-10 14:35:02 +02:00
Flamefire cbc3223114 Remove loading of Covers from xml 2014-08-10 14:30:18 +02:00
Florian Küpper 0a7006db43 Small bugfix. 2014-08-09 22:01:01 +02:00
Florian Küpper 8722844646 Merge branch 'develop' of github.com:Flamefire/Vocaluxe into sound-player
Conflicts:
	VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs
2014-08-09 20:04:41 +02:00
Florian Küpper 8e8fdc1277 Play song-preview instead of bg-music (if enabled) on names-, score- and highscore-screen. 2014-08-09 19:50:40 +02:00
Flamefire 41480797e2 Change values of xml argument to xPath only to make it more consistent 2014-08-09 19:49:20 +02:00
Flamefire f7202ee9b0 Rename covers to match correct name and remove them from style file 2014-08-09 19:48:47 +02:00
Flamefire a868f02794 Extract CVideoPlayer.cs 2014-08-09 18:59:28 +02:00
Flamefire 4b348ceec6 Don't show old preview song in category view 2014-08-09 17:59:53 +02:00
Flamefire f021e9a9f7 Unify language of songs 2014-08-09 17:59:15 +02:00
Flamefire 48527a4061 Fix missing songs in categories 2014-08-09 17:58:49 +02:00
Florian Küpper 04c2b85e2b Close stream when finished (*-player) 2014-08-09 17:16:51 +02:00
Florian Küpper 4c01396e46 Added preview-player which is used for playing preview in song-menu. 2014-08-09 17:12:27 +02:00
Flamefire ced12ac064 Fix NPE with few songs in category 2014-08-09 15:27:05 +02:00
Flamefire 09d36ccf60 Fix categories not showing on start 2014-08-09 15:05:34 +02:00
Flamefire 62675821ed Enable hiding the Server QR-Code Popup 2014-08-09 14:35:03 +02:00
Flamefire 51a5165308 Fix Server 2014-08-09 14:34:34 +02:00
Florian Küpper bd41de6dbe Merge branch 'develop' of github.com:Flamefire/Vocaluxe into sound-player
Conflicts:
	PartyModes/PartyModeTicTacToe/CPartyScreenTicTacToeMain.cs
	VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs
2014-08-09 14:13:38 +02:00
Florian Küpper 4b02932bb4 Merge branch 'develop' of github.com:Flamefire/Vocaluxe into develop 2014-08-09 14:04:40 +02:00
Flamefire 75ff5a0291 Remove redundant names in playlist functions
Fix handling of playlist IDs
2014-08-08 23:49:01 +02:00
Flamefire 10e5312579 Fix crash on closing a sound stream 2014-08-08 20:04:50 +02:00
Flamefire b14b47fd33 Fix wrong song name showing in party mode 2014-08-08 20:01:39 +02:00
Florian Küpper b16735bfe0 Merge branch 'develop' of github.com:Flamefire/Vocaluxe into develop 2014-08-08 18:58:19 +02:00
Flamefire d5ae52a8f7 Fix crash at song end 2014-08-08 17:50:41 +02:00
Flamefire faee5fa107 Merge branch 'develop' of git://github.com/Vocaluxe/Vocaluxe into develop 2014-08-08 17:33:21 +02:00
Flamefire 03b9ea8e49 Rename File/Folder name variables to distinguish them from real (full) paths
Make sure full path is used everywhere (if I didn't miss anything)
2014-08-08 17:27:36 +02:00
Flamefire 7b95942653 Better handling of assembly loader 2014-08-08 16:07:27 +02:00
Flamefire cb40cdcd92 Fix medley and short song gamemodes 2014-08-07 20:17:52 +02:00
Flamefire a8f23cb3bf Fix showing/hiding of song menu 2014-08-07 20:07:13 +02:00
Flamefire e1329b4a93 Fix selection changes 2014-08-07 19:45:47 +02:00
Flamefire 029c3f8473 Avoid playing background music in sing screen 2014-08-07 19:35:40 +02:00
Flamefire dd4c3b3cf9 Better name for function 2014-08-07 19:33:26 +02:00
Flamefire fe60f6f5df Simplify Songmenu (only selected and preview numbers)
More consistent handling of mouse and keyboard selection of songs
2014-08-07 19:31:17 +02:00
Stephan Sundermann b279ee74cb Merge pull request #102 from flokuep/develop
Some minor improvements
2014-08-07 00:44:41 +02:00
Florian Küpper c683110a80 Update QRCoder.dll 2014-08-05 15:52:11 +02:00
Florian Küpper 240f47090d Fix for background-music-files. 2014-08-05 11:41:20 +02:00
Florian Küpper 3612b9244b Added sound- and song-player to VocaluxeLib. Use it for Background-Music. 2014-08-05 10:54:34 +02:00
Florian Küpper b2aefe8854 Update installer. 2014-08-03 15:13:20 +02:00
Florian Küpper ed6a845168 Do some cleanup (remove unneeded, old client-server-stuff), another update of .gitignore 2014-08-03 14:56:07 +02:00
Florian Küpper 342731084b Update of .gitignore 2014-08-03 13:13:15 +02:00
Florian Küpper f837c329ec Webserver: Show message if there is a problem with init. 2014-08-02 18:35:22 +02:00
Florian Küpper f43116073d Loads faster if song-folder doesn't exist. 2014-08-02 11:16:35 +02:00
Florian Küpper fcdd58f827 Fix some language-files. 2014-08-02 11:09:25 +02:00
Flamefire f2bd61937f Loop preview song and video 2014-08-01 16:26:21 +02:00
Flamefire ba7627513e Fix wrong argument order for Song loading (fixes wrong song start time in preview) 2014-08-01 16:01:27 +02:00
Flamefire 5d8628d8a0 Fix cursor disappearing 2014-08-01 15:31:49 +02:00
Flamefire f41c97574c Merge branch 'develop' of git://github.com/flokuep/Vocaluxe into develop 2014-08-01 12:40:42 +02:00
Flamefire 64be43911c Merge branch 'develop' of git://github.com/Vocaluxe/Vocaluxe into develop 2014-08-01 12:40:06 +02:00
Florian Küpper 4f38ac66db Language-Update. Thx to all translators! 2014-06-12 13:48:24 +02:00
Florian Küpper eef512ae98 Added config-file for Transifex Client. 2014-06-12 13:47:04 +02:00
Florian Küpper 43113662c1 Merge branch 'develop' of github.com:Flamefire/Vocaluxe into develop 2014-06-12 12:37:18 +02:00
Flamefire e975d0d5c5 Remove OMP usage, it leads to performance issues at runtime on machines with few cores (e.g. 2) 2014-05-10 18:35:52 +02:00
Flamefire ae2672247c Sacrifice a bit of detection accuracy for speed 2014-05-10 18:33:43 +02:00
Stephan Sundermann b3f284c476 Merge pull request #101 from Flamefire/develop
Fix wrong initial language selection
2014-05-10 13:29:16 +02:00
Flamefire c070f8d078 Fix wrong initial language selection 2014-05-10 13:15:23 +02:00
Florian Küpper ed076865bc Merge branch 'develop' of github.com:Flamefire/Vocaluxe into develop 2014-05-07 15:03:57 +02:00
Florian Küpper e59b1f78ac Merge branch 'develop' of github.com:Flamefire/Vocaluxe into develop 2014-05-02 12:11:56 +02:00
Florian Küpper a3fca21b32 Merge remote-tracking branch 'remotes/flamefire/RecordImprovements' into develop 2014-04-26 19:00:11 +02:00
Florian Küpper c191284030 Merge remote-tracking branch 'remotes/flamefire/RecordImprovements' into develop 2014-04-09 08:30:42 +02:00
lukeIam 6a1b3567f4 Fix: removed a ; 2014-03-02 12:46:23 +01:00
lukeIam 7680aad78c Mod: Refactored main.js for better structure and readability (grouped methods, which belongs together) 2014-03-02 12:18:51 +01:00
lukeIam 3350eb16de Fix: sometimes there is no back button in app 2014-03-02 12:14:38 +01:00
lukeIam c93262fc54 Fix: can't show own profile 2014-03-02 12:02:30 +01:00
lukeIam 3144ea24b9 Implemented a per player comunicationsystem for the app. 2014-03-01 15:43:02 +01:00
lukeIam 35cdd55c49 Use auto-properties in CServer 2014-02-18 16:37:41 +01:00
1097 changed files with 45855 additions and 51637 deletions

No files matched your search

+9
View File
@@ -0,0 +1,9 @@
Write-Host "Deployment finished -> do en empty commit on the gh-pages branch to update the page"
cd ..
git clone -q "https://github.com/Vocaluxe/Vocaluxe.git" -b "gh-pages" --single-branch "VocaluxeWeb"
cd VocaluxeWeb
git config --global user.email "noreply@vocaluxe.org"
git config --global user.name "VocaluxeBuildBot"
git commit --allow-empty -m "Trigger page update after a new publish (triggered by $Env:APPVEYOR_REPO_COMMIT_MESSAGE [$Env:APPVEYOR_REPO_COMMIT])"
git push -q "https://$($Env:GitHubKey):x-oauth-basic@github.com/Vocaluxe/Vocaluxe.git" "gh-pages"
cd ..\Vocaluxe
+63
View File
@@ -0,0 +1,63 @@
if($Env:APPVEYOR_PULL_REQUEST_NUMBER)
{
$Env:VersionTag = "0.0.0-na-PR_$Env:APPVEYOR_PULL_REQUEST_NUMBER"
Return $Env:VersionTag
}
$currentCommitSha = $Env:CurrentCommitSha
$githubRepoApiUri = $Env:githubRepoApiUri #"https://api.github.com/repos/:user/:repo/"
$Env:VersionTag = ""
$gitApiAuthHeader = @{
Authorization = 'Basic ' + [Convert]::ToBase64String(
[Text.Encoding]::ASCII.GetBytes($Env:GitHubKey + ":x-oauth-basic"));
};
# Inline-if helper function
Function IIf($If, $Right, $Wrong) {If ($If) {$Right} Else {$Wrong}}
try{
$result = Invoke-RestMethod -Uri "$($githubRepoApiUri)git/refs/tags" -Method 'GET' -Headers $gitApiAuthHeader
}
catch [System.Net.WebException]
{
# Error getting tags
$statusCode = [int]$_.Exception.Response.StatusCode
$html = $_.Exception.Response.StatusDescription
Write-Host "Error getting tags ($html)"
Return ;
}
# Get tag info
try{
$tagsInfo = ($result | % { "$($githubRepoApiUri)git/tags/$($_.object.sha)" ;} | % { try { Invoke-RestMethod -Method 'GET' -Uri $($_) -Headers $gitApiAuthHeader} catch {}})
}
catch [System.Net.WebException]
{
# Error getting tags
$statusCode = [int]$_.Exception.Response.StatusCode
$html = $_.Exception.Response.StatusDescription
Write-Host "Error getting info for tags ($html)"
Return ;
}
# Compare taged commits with current commit
try{
$commitTagComp = $tagsInfo | select sha, tag, tagger, @{n='dist';e={[int](Invoke-RestMethod -Method 'GET' -Uri "$($githubRepoApiUri)compare/$($_.object.sha)...$currentCommitSha" -Headers $gitApiAuthHeader | % { (IIf ($_.status -ne "diverged") ($_.ahead_by) (-1))})}}
}
catch [System.Net.WebException]
{
# Error comparing tags
$statusCode = [int]$_.Exception.Response.StatusCode
$html = $_.Exception.Response.StatusDescription
Write-Host "Error comparing tags with current commit ($html)"
Return ;
}
$latestTag = $commitTagComp | where {$_.dist -ge 0} | sort-object -property @{Expression="dist";Descending=$false}, @{Expression="tag";Descending=$false} | Select-Object -first 1
if(!$latestTag){
Write-Host "Commit not describable"
Return ;
}
$Env:VersionTag = "$($latestTag.tag)-$($latestTag.dist)-g$($currentCommitSha.Substring(0,7))"
Return $Env:VersionTag
+19
View File
@@ -0,0 +1,19 @@
if($Env:APPVEYOR_REPO_TAG -ne "true" -and (-not $Env:APPVEYOR_PULL_REQUEST_NUMBER)) {
Write-Host "Push without tag detected"
if($Env:APPVEYOR_REPO_BRANCH -eq "develop"){
Write-Host "Nightly build branch was detected"
$targetTag = "Nightly"
$Env:NIGHTLY_BUILD = true
}
else{
Write-Host "No special branch found"
Return
}
Write-Host "Moving tag $targetTag to $Env:APPVEYOR_REPO_BRANCH"
git config --global user.email "noreply@vocaluxe.org";
git config --global user.name "VocaluxeBuildBot";
git tag "$targetTag" -f;
git push -q -f "https://$($Env:GitHubKey):x-oauth-basic@github.com/Vocaluxe/Vocaluxe.git" "$targetTag";
Write-Host "Tag $targetTag points now to the head of branch $Env:APPVEYOR_REPO_BRANCH"
}
+17
View File
@@ -0,0 +1,17 @@
if($Env:APPVEYOR_REPO_TAG -eq "true") {
Write-Host "Taged commit detected"
$targetTag = $Env:APPVEYOR_REPO_TAG_NAME
Write-Host "Tag=$targetTag"
$Env:NIGHTLY_BUILD = "false"
if($targetTag -eq "Nightly") {
$Env:NIGHTLY_BUILD = "true"
Write-Host "This is a nightly build"
}
else
{
Write-Host "This is NOT a nightly build"
}
}
else{
Return;
}
+66
View File
@@ -0,0 +1,66 @@
if($Env:APPVEYOR_REPO_TAG -eq "true") {
$targetTag = $Env:APPVEYOR_REPO_TAG_NAME
Write-Host "Deploy for tag $targetTag"
}
else{
Write-Host "No tag found: no preparation required"
Return;
}
$Env:IS_BETA_RELEASE = ($Env:APPVEYOR_REPO_TAG_NAME -match "beta")
$getRelaseInfoParams = @{
Uri = "https://api.github.com/repos/Vocaluxe/Vocaluxe/releases/tags/$targetTag";
Method = 'GET';
Headers = @{
Authorization = 'Basic ' + [Convert]::ToBase64String(
[Text.Encoding]::ASCII.GetBytes($Env:GitHubKey + ":x-oauth-basic"));
}
}
try{
$result = Invoke-RestMethod @getRelaseInfoParams
}
catch [System.Net.WebException]
{
# No Release found for this tag
$statusCode = [int]$_.Exception.Response.StatusCode
$html = $_.Exception.Response.StatusDescription
Write-Host "No Release found for this tag ($html): $targetTag"
Return;
}
$releaseId = $result.id
if(!$releaseId){
# No matching release found in this release
Write-Host "No matching release found"
Return;
}
if($result.body -match $Env:APPVEYOR_REPO_COMMIT){
# An other build already recreated the release
Write-Host "An other build already recreated the release"
Return;
}
$deleteAssetParams = @{
Uri = "https://api.github.com/repos/Vocaluxe/Vocaluxe/releases/$releaseId";
Method = 'DELETE';
Headers = @{
Authorization = 'Basic ' + [Convert]::ToBase64String(
[Text.Encoding]::ASCII.GetBytes($Env:GitHubKey + ":x-oauth-basic"));
}
}
try{
$result = Invoke-RestMethod @deleteAssetParams
Write-Host "Successfully deleted release for: $targetTag"
}
catch [System.Net.WebException]
{
# Could not delete release
$statusCode = [int]$_.Exception.Response.StatusCode
$html = $_.Exception.Response.StatusDescription
Write-Host "Could not delete release ($html) for: $targetTag"
Return;
}
+8
View File
@@ -0,0 +1,8 @@
#!/bin/sh
PROJECT=$1
cd $PROJECT
sed -i -r -e 's/AssemblyInformationalVersion\(".*?"\)/AssemblyInformationalVersion("GITVERSION")/' $PROJECT/Properties/AssemblyInfo.cs
sed -i -r -e 's/AssemblyVersion\(".*?"\)/AssemblyVersion("SHORTVERSION")/' $PROJECT/Properties/AssemblyInfo.cs
sed -i -r -e 's/AssemblyFileVersion\(".*?"\)/AssemblyFileVersion("SHORTVERSION")/' $PROJECT/Properties/AssemblyInfo.cs
sed -i -r -e 's/AssemblyTitle\(".*?"\)/AssemblyTitle("FULLVERSION")/' $PROJECT/Properties/AssemblyInfo.cs
sed -i -e 's/var matchingServerVersion = "";/var matchingServerVersion = "'$(git describe --long)'";/' $PROJECT/../Output/Website/js/main.js
+29
View File
@@ -0,0 +1,29 @@
#!/bin/sh
PROJECT=$1
cd $PROJECT
arch=$2
version=$(git describe --long)
shortVersion=${version%%-*}
shortVersionClean=$(echo $shortVersion | sed -e 's/alpha/0/' -e 's/beta/1/' -e 's/rc/2/' -e 's/[[:alpha:]]//g')
case ${shortVersion##*.} in
alpha*)
releaseType='Alpha'
;;
beta*)
releaseType='Beta'
;;
rc*)
releaseType='RC'
;;
*)
releaseType='Release'
;;
esac
versionName=$(grep -oP "\"${shortVersionClean%.*}.\" *: *\"\K([^\"]+)(?=\")" ../.build/versionNames.json)
fullVersionName="Vocaluxe $([ "$versionName" == "" ] && echo "" || echo "'$versionName' ")$shortVersion ($arch) $([ "$releaseType" == "Release" ] && echo "" || echo "$releaseType ")($version)"
sed -i -e s/GITVERSION/$(git describe --long)/ $PROJECT/Properties/AssemblyInfo.cs
sed -i -e s/SHORTVERSION/"$shortVersionClean"/ $PROJECT/Properties/AssemblyInfo.cs
sed -i -e s/FULLVERSION/"$fullVersionName"/ $PROJECT/Properties/AssemblyInfo.cs
+7
View File
@@ -0,0 +1,7 @@
{
"0.0.": "Unversioned Build",
"0.1.": "Rising Start",
"0.2.": "Sparkling Sky",
"0.3.": "Shining Heaven",
"0.4.": "Blue Sunrise"
}
+23
View File
@@ -0,0 +1,23 @@
param(
[Parameter(Mandatory=$true)]
[String]$ProjectDir
)
if($Env:GIT_VERSION_TAG)
{
$version = $Env:GIT_VERSION_TAG;
}
else
{
$version = git describe --long;
}
(Get-Content -Encoding UTF8 "$($ProjectDir)..\Output\Website\js\main.js") `
| Foreach-Object {$_ -replace '(?<=var *matchingServerVersion * = *\")\w*(?=\" *;)', "$version"} `
| Set-Content -Encoding UTF8 "$($ProjectDir)..\Output\Website\js\main.js"
(Get-Content -Encoding UTF8 "$($ProjectDir)Properties\AssemblyInfo.cs") `
| Foreach-Object {$_ -replace '(?<=AssemblyInformationalVersion\(\").*(?=\")', 'GITVERSION'} `
| Foreach-Object {$_ -replace '(?<=(AssemblyVersion|AssemblyFileVersion)\(\").*(?=\")', 'SHORTVERSION'} `
| Foreach-Object {$_ -replace '(?<=AssemblyTitle\(\").*(?=\")', 'FULLVERSION'} `
| Set-Content -Encoding UTF8 "$($ProjectDir)Properties\AssemblyInfo.cs"
+40
View File
@@ -0,0 +1,40 @@
param(
[Parameter(Mandatory=$true)]
[String]$ProjectDir,
[Parameter(Mandatory=$true)]
[String]$Arch
)
if($Env:GIT_VERSION_TAG)
{
$version = $Env:GIT_VERSION_TAG;
}
else
{
$version = git describe --long;
}
$shortVersion = $version.Split('-')[0];
[System.Reflection.Assembly]::LoadWithPartialName("System.Web.Extensions")
$versionName = (New-Object System.Web.Script.Serialization.JavaScriptSerializer).Deserialize((Get-Content "$($ProjectDir)..\.build\versionNames.json"), `
[System.Collections.Hashtable])[([regex]"[0-9]+\.[0-9]+\.").Match($shortVersion).Value]
$releaseType = switch -wildcard ($shortVersion.Split('.')[2])
{
"alpha*" {"Alpha"}
"beta*" {"Beta"}
"rc*" {"RC"}
default {"Release"}
};
$fullVersionName = "Vocaluxe $(if($versionName) {"'"+$versionName+"' "} else {''})$shortVersion ($Arch) $(if($releaseType -ne "Release") {'$releaseType '} else {''})($version)"
(Get-Content -Encoding UTF8 "$($ProjectDir)Properties\AssemblyInfo.cs") `
| Foreach-Object {$_ `
-replace '(?<=AssemblyInformationalVersion\(").*(?=")', $version `
-replace '(?<=(AssemblyVersion|AssemblyFileVersion)\(").*(?=")', `
($version.Split('-')[0].replace('alpha','0').replace('beta','1').replace('rc','2') -replace "[a-zA-Z]+","")`
-replace '(?<=AssemblyTitle\(").*(?=")', $fullVersionName `
-replace '(?<=AssemblyCopyright\(".*)[0-9]+(?=")', (Get-Date).Year} `
| Set-Content -Encoding UTF8 "$($ProjectDir)Properties\AssemblyInfo.cs"
+44 -33
View File
@@ -1,26 +1,15 @@
obj
Output/Songs
PitchTracker.dll
Thumbs.db
.transifexrc
.vs
tx.exe
*.mp4
*.pdb
/Output/Benchmark.log
/Output/CoverDB.sqlite
/Output/HighscoreDB.sqlite
/Output/PartyModes/*/Code/*
/Output/Vocaluxe.exe*
/Output/Vocaluxe.vshost.exe*
/Output/VocaluxeLib.dll
*.psess
/*.vsp
/*.ctl
/Output/Registration.xml
/Vocaluxe.suo
*.csproj.user
*.vcxproj.user
/Output/Config.xml
*.ipch
*.log
/Output/Playlists/*.xml
GstreamerHelper.dll
*.tlog
*.suo
*.obj
@@ -35,28 +24,50 @@ GstreamerHelper.dll
*.codeanalysis*
*.nativecodeanalysis*
*.lastcodeanalysissucceeded
/PartyModes/*/*/*.dll
*.Cache
/GstreamerHelper/bin/*
/VocaluxeLib/bin
ClientServerLib.dll
ClientTest.exe
*.psess
*.vshost.*
*.userprefs
AndroidRemote.dll.mdb
/ClientServerLib/AndroidRemote/bin/Newtonsoft.Json.MonoDroid.dll
/ClientServerLib/AndroidRemote/bin/AndroidRemote.dll
/ClientServerLib/ClientTest/bin/Debug/Newtonsoft.Json.dll
*.apk
*.user
*.VC.db
*.VC.opendb
*.dll.config
/*.vsp
/*.ctl
/Output/Config.xml
/Output/CoverDB.sqlite
/Output/HighscoreDB.sqlite
/Output/ClientServerLib.dll
Installer/VocaluxeSetup_0.3.0Beta.exe
Output/Vocaluxe_x64.exe
/WebserverInitalConfig/bin/Release
/Output/Vocaluxe.exe*
/Output/Vocaluxe_x64.exe*
/Output/Vocaluxe.vshost.exe*
/Output/VocaluxeLib.dll
/Output/VocaluxeServerConfig.exe
/Output/VocaluxeServerConfig.exe.config
/Output/Photos
/Output/Screenshots
/Output/Website
/Output/VocaluxeServerConfig.exe
/Output/VocaluxeServerConfig.exe.config
/Output/Songs
/Output/Playlists/*.xml
/Output/Profiles/*.xml
/Output/Profiles/*.png
/Output/PartyModes/*/Code/*
/PartyModes/*/*/*.dll
/VocaluxeLib/bin
/ServerLib/bin/ClientServerLib.dll
/Installer/setup-cache
/Installer/Files
/Installer/log.txt
/Installer/setup-cache
/Installer/Setup Files
/WebserverInitalConfig/bin
/PhoneGap/
/Output/Profiles
PitchTracker.dll
/TestResults
/VocaluxeTests/bin
/Output/libs
/Output/Themes/*.mp4
/packages
/Output/x64
/Output/x86
/PitchTracker/bin
/PitchTracker/obj
+39
View File
@@ -0,0 +1,39 @@
[main]
host = https://www.transifex.com
minimum_perc = 25
[vocaluxe.challenge]
file_filter = Output/PartyModes/Challenge/Languages/<lang>.xml
source_file = Output/PartyModes/Challenge/Languages/English.xml
source_lang = English
lang_map = en:English, cs:Czech, de:German, es:Spanish, fr:French, sv:Swedish, nl:Dutch, ast:Asturian, tr:Turkish, hu:Hungarian, it:Italian, ca:Catalan, pt:Portuguese, pl_PL:Polish, da_DK:Danish
type = ANDROID
[vocaluxe.challenge-medley]
file_filter = Output/PartyModes/ChallengeMedley/Languages/<lang>.xml
source_file = Output/PartyModes/ChallengeMedley/Languages/English.xml
source_lang = English
lang_map = en:English, cs:Czech, de:German, es:Spanish, fr:French, sv:Swedish, nl:Dutch, ast:Asturian, tr:Turkish, hu:Hungarian, it:Italian, ca:Catalan, pt:Portuguese, pl_PL:Polish, da_DK:Danish
type = ANDROID
[vocaluxe.game]
file_filter = Output/Languages/<lang>.xml
source_file = Output/Languages/English.xml
source_lang = English
lang_map = en:English, cs:Czech, de:German, es:Spanish, fr:French, sv:Swedish, nl:Dutch, ast:Asturian, tr:Turkish, hu:Hungarian, it:Italian, ca:Catalan, pt:Portuguese, pl_PL:Polish, da_DK:Danish
type = ANDROID
[vocaluxe.tictactoe]
file_filter = Output/PartyModes/TicTacToe/Languages/<lang>.xml
source_file = Output/PartyModes/TicTacToe/Languages/English.xml
source_lang = English
lang_map = en:English, cs:Czech, de:German, es:Spanish, fr:French, sv:Swedish, nl:Dutch, ast:Asturian, tr:Turkish, hu:Hungarian, it:Italian, ca:Catalan, pt:Portuguese, pl_PL:Polish, da_DK:Danish
type = ANDROID
[vocaluxe.webinterface]
file_filter = Vocaluxe/Website/locales/<lang>.json
source_file = Vocaluxe/Website/locales/en.json
source_lang = en
lang_map = en:English, cs:Czech, de:German, es:Spanish, fr:French, sv:Swedish, nl:Dutch, ast:Asturian, tr:Turkish, hu:Hungarian, it:Italian, ca:Catalan, pt:Portuguese, pl_PL:Polish, da_DK:Danish
type = KEYVALUEJSON
-24
View File
@@ -1,24 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Vocaluxe App", "AndroidRemote\Vocaluxe App.csproj", "{D97EF6F3-7C3F-439F-B022-647948E206D2}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D97EF6F3-7C3F-439F-B022-647948E206D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D97EF6F3-7C3F-439F-B022-647948E206D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D97EF6F3-7C3F-439F-B022-647948E206D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D97EF6F3-7C3F-439F-B022-647948E206D2}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
StartupItem = AndroidRemote\Vocaluxe App.csproj
Policies = $0
$0.DotNetNamingPolicy = $1
$1.DirectoryNamespaceAssociation = None
$1.ResourceNamePolicy = FileFormatDefault
EndGlobalSection
EndGlobal
@@ -1,285 +0,0 @@
using System;
using System.Collections.Generic;
using Android.App;
using Android.Content;
using Android.Content.PM;
using Android.Graphics;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Android.Provider;
using ClientServerLib;
using Vocaluxe.Base.Server;
namespace org.vocaluxe.app
{
[Activity (Label = "Vocaluxe App", MainLauncher = true, ConfigurationChanges=Android.Content.PM.ConfigChanges.Orientation)]
public class Activity1 : Activity
{
private readonly int REQUEST_TAKE_PICTURE = 1;
private readonly int REQUEST_PICK_PICTURE = 2;
CClient client = new CClient();
CDiscover discover;
Button bConnect;
Button bSendAvatar;
Button bSendProfile;
TextView tIP;
TextView tPassword;
ProgressDialog pDialog;
byte[] fileBytes;
Java.IO.File file;
Java.IO.File file2;
Java.IO.File dir;
System.IO.FileStream fs;
bool sendProfile;
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
SetContentView (Resource.Layout.Main);
pDialog = new ProgressDialog (this);
pDialog.SetCancelable (false);
bConnect = FindViewById<Button> (Resource.Id.btConnect);
bConnect.Click += delegate { Connect(); };
Button bDiscover = FindViewById<Button> (Resource.Id.btDiscover);
bDiscover.Click += delegate { Discover(); };
bSendAvatar = FindViewById<Button> (Resource.Id.btSendAvatar);
bSendAvatar.Click += SendAvatar;
bSendProfile = FindViewById<Button> (Resource.Id.btSendProfile);
bSendProfile.Click += SendProfile;
tIP = FindViewById<TextView> (Resource.Id.tbIP);
tPassword = FindViewById<TextView> (Resource.Id.tbPassword);
sendProfile = false;
discover = new CDiscover(3000, CCommands.BroadcastKeyword);
Discover ();
}
protected override void OnStop ()
{
base.OnStop();
//client.Close();
}
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
//base.OnActivityResult(requestCode, resultCode, data);
if (resultCode != Result.Ok)
return;
if (requestCode == REQUEST_TAKE_PICTURE)
{
// make it available in the gallery
//Intent mediaScanIntent = new Intent(Intent.ActionMediaScannerScanFile);
Android.Net.Uri contentUri = Android.Net.Uri.FromFile(file);
//mediaScanIntent.SetData(contentUri);
//SendBroadcast(mediaScanIntent);
Java.IO.File dir2 = new Java.IO.File(Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures), Resources.GetString(Resource.String.app_name));
if (!dir.Exists())
{
dir.Mkdirs();
}
file2 = new Java.IO.File(dir, String.Format("myPhoto_{0}.jpg", Guid.NewGuid()));
Intent picker = new Intent ("com.android.camera.action.CROP");
//Intent picker = new Intent (Intent.ActionGetContent, contentUri);
picker.SetDataAndType (contentUri, "image/*");
picker.PutExtra ("crop", "true");
picker.PutExtra ("aspectX", 1);
picker.PutExtra ("aspectY", 1);
picker.PutExtra ("outputX", 512);
picker.PutExtra ("outputY", 512);
picker.PutExtra ("return-data", false);
//picker.PutExtra ("outputFormat", Bitmap.CompressFormat.Jpeg.ToString ());
picker.PutExtra ("noFaceDetection", true);
picker.PutExtra (MediaStore.ExtraOutput, Android.Net.Uri.FromFile(file2));
StartActivityForResult (picker, REQUEST_PICK_PICTURE);
}
if (requestCode == REQUEST_PICK_PICTURE)
{
if (data.Extras != null)
{
System.IO.FileInfo fi = new System.IO.FileInfo(file2.Path);
fs = new System.IO.FileStream(file2.Path, System.IO.FileMode.Open);
fileBytes = new byte[fi.Length];
fs.BeginRead (fileBytes, 0, (int)fi.Length, new AsyncCallback(OnFileRead), null);
fi = null;
}
}
}
private void OnFileRead(IAsyncResult ar)
{
if (fileBytes == null)
return;
fs.Flush();
fs.Close();
if (file != null)
file.Delete ();
if (file2 != null)
file2.Delete ();
if (sendProfile)
{
sendProfile = false;
TextView tv = FindViewById<TextView>(Resource.Id.tbPlayerName);
if (tv.Text == String.Empty)
return;
client.SendMessage (CCommands.CreateCommandSendProfile(fileBytes, tv.Text, 0), OnResponse);
}
else
client.SendMessage (CCommands.CreateCommandSendAvatarPictureJpg(fileBytes), OnResponse);
}
private bool IsThereAnAppToTakePictures()
{
Intent intent = new Intent(MediaStore.ActionImageCapture);
IList<ResolveInfo> availableActivities = PackageManager.QueryIntentActivities(intent, PackageInfoFlags.MatchDefaultOnly);
return availableActivities != null && availableActivities.Count > 0;
}
private void SendAvatar(object sender, EventArgs eventArgs)
{
_TakePicture (false);
}
private void SendProfile(object sender, EventArgs eventArgs)
{
_TakePicture (true);
}
private void _TakePicture(bool SendProfile)
{
sendProfile = SendProfile;
if (!IsThereAnAppToTakePictures())
return;
Intent intent = new Intent(MediaStore.ActionImageCapture);
dir = new Java.IO.File(Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures), Resources.GetString(Resource.String.app_name));
if (!dir.Exists())
{
dir.Mkdirs();
}
file = new Java.IO.File(dir, String.Format("myPhoto_{0}.jpg", Guid.NewGuid()));
intent.PutExtra(MediaStore.ExtraOutput, Android.Net.Uri.FromFile(file));
StartActivityForResult(intent, REQUEST_TAKE_PICTURE);
}
private void Connect()
{
if (!client.Connected)
{
pDialog.SetMessage ("Connecting for Server...");
pDialog.Show ();
client.Connect(tIP.Text, 3000, tPassword.Text, OnConnectionChanged);
}
else
{
pDialog.Hide ();
client.Disconnect();
}
}
private void Discover()
{
pDialog.SetMessage ("Searching for Server...");
pDialog.Show ();
discover.Discover (_OnDiscovered);
}
private void OnConnectionChanged(bool Connected)
{
RunOnUiThread (() => UpdateConnectionStatus(Connected));
}
private void OnResponse(byte[] Message)
{
if (Message == null)
return;
if (Message.Length < 4)
return;
int command = BitConverter.ToInt32(Message, 0);
switch (command)
{
case CCommands.ResponseOK:
RunOnUiThread (() => Toast.MakeText(this, Resources.GetString(Resource.String.message_ok), ToastLength.Short).Show());
break;
case CCommands.ResponseNOK:
RunOnUiThread (() => Toast.MakeText(this, Resources.GetString(Resource.String.message_nok), ToastLength.Short).Show());
break;
default:
break;
}
}
private void _OnDiscovered(string Address, string HostName)
{
RunOnUiThread (() =>
{
if (Address != CDiscover.sTimeout && Address != CDiscover.sFinished)
{
tIP.Text = Address;
Connect ();
}
else if (Address == CDiscover.sTimeout)
{
pDialog.Hide ();
Toast.MakeText(this, "Cant't find any Vocaluxe Server", ToastLength.Short).Show();
}
});
}
private void UpdateConnectionStatus(bool Connected)
{
if (Connected)
{
pDialog.Hide ();
bConnect.Text = Resources.GetString(Resource.String.button_disconnect);
Toast.MakeText(this, Resource.String.message_connected, ToastLength.Short).Show();
bSendAvatar.Enabled = true;
bSendProfile.Enabled = true;
}
else
{
pDialog.Hide ();
client.Disconnect();
bConnect.Text = Resources.GetString(Resource.String.button_connect);
bSendAvatar.Enabled = false;
bSendProfile.Enabled = false;
Toast.MakeText(this, Resources.GetString(Resource.String.message_disconnected), ToastLength.Short).Show();
}
}
}
}
@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="0.1" package="org.vocaluxe.app">
<uses-sdk />
<application android:label="Vocaluxe App" android:icon="@drawable/icon"></application>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
@@ -1,28 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using Android.App;
// Information about this assembly is defined by the following attributes.
// Change them to the values specific to your project.
[assembly: AssemblyTitle("Vocaluxe App")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("Alex")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
// and "{Major}.{Minor}.{Build}.*" will update just the revision.
[assembly: AssemblyVersion("1.0.0")]
// The following attributes are used to specify the signing key for the assembly,
// if desired. See the Mono documentation for more information about signing.
//[assembly: AssemblyDelaySign(false)]
//[assembly: AssemblyKeyFile("")]
@@ -1,44 +0,0 @@
Images, layout descriptions, binary blobs and string dictionaries can be included
in your application as resource files. Various Android APIs are designed to
operate on the resource IDs instead of dealing with images, strings or binary blobs
directly.
For example, a sample Android app that contains a user interface layout (main.axml),
an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png)
would keep its resources in the "Resources" directory of the application:
Resources/
drawable/
icon.png
layout/
main.axml
values/
strings.xml
In order to get the build system to recognize Android resources, set the build action to
"AndroidResource". The native Android APIs do not operate directly with filenames, but
instead operate on resource IDs. When you compile an Android application that uses resources,
the build system will package the resources for distribution and generate a class called "R"
(this is an Android convention) that contains the tokens for each one of the resources
included. For example, for the above Resources layout, this is what the R class would expose:
public class R {
public class drawable {
public const int icon = 0x123;
}
public class layout {
public const int main = 0x456;
}
public class strings {
public const int first_string = 0xabc;
public const int second_string = 0xbcd;
}
}
You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main
to reference the layout/main.axml file, or R.strings.first_string to reference the first
string in the dictionary file values/strings.xml.
@@ -1,175 +0,0 @@
#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
// Dieser Code wurde von einem Tool generiert.
// Laufzeitversion:4.0.30319.18047
//
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
// der Code erneut generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------
[assembly: global::Android.Runtime.ResourceDesignerAttribute("org.vocaluxe.app.Resource", IsApplication=true)]
namespace org.vocaluxe.app
{
[System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
public partial class Resource
{
static Resource()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
public static void UpdateIdValues()
{
}
public partial class Attribute
{
static Attribute()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Attribute()
{
}
}
public partial class Drawable
{
// aapt resource value: 0x7f020000
public const int Icon = 2130837504;
static Drawable()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Drawable()
{
}
}
public partial class Id
{
// aapt resource value: 0x7f050004
public const int btConnect = 2131034116;
// aapt resource value: 0x7f050005
public const int btDiscover = 2131034117;
// aapt resource value: 0x7f050006
public const int btSendAvatar = 2131034118;
// aapt resource value: 0x7f050009
public const int btSendProfile = 2131034121;
// aapt resource value: 0x7f050001
public const int tbIP = 2131034113;
// aapt resource value: 0x7f050003
public const int tbPassword = 2131034115;
// aapt resource value: 0x7f050008
public const int tbPlayerName = 2131034120;
// aapt resource value: 0x7f050000
public const int textView1 = 2131034112;
// aapt resource value: 0x7f050002
public const int textView2 = 2131034114;
// aapt resource value: 0x7f050007
public const int textView3 = 2131034119;
static Id()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Id()
{
}
}
public partial class Layout
{
// aapt resource value: 0x7f030000
public const int Main = 2130903040;
static Layout()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Layout()
{
}
}
public partial class String
{
// aapt resource value: 0x7f040000
public const int app_name = 2130968576;
// aapt resource value: 0x7f040001
public const int button_connect = 2130968577;
// aapt resource value: 0x7f040002
public const int button_disconnect = 2130968578;
// aapt resource value: 0x7f040003
public const int button_send_avatar = 2130968579;
// aapt resource value: 0x7f040004
public const int button_send_profile = 2130968580;
// aapt resource value: 0x7f04000c
public const int ip_address = 2130968588;
// aapt resource value: 0x7f040005
public const int message_connected = 2130968581;
// aapt resource value: 0x7f040006
public const int message_disconnected = 2130968582;
// aapt resource value: 0x7f040008
public const int message_nok = 2130968584;
// aapt resource value: 0x7f040007
public const int message_ok = 2130968583;
// aapt resource value: 0x7f04000d
public const int password = 2130968589;
// aapt resource value: 0x7f040009
public const int text_ip_address = 2130968585;
// aapt resource value: 0x7f04000a
public const int text_password = 2130968586;
// aapt resource value: 0x7f04000b
public const int text_player_name = 2130968587;
static String()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private String()
{
}
}
}
}
#pragma warning restore 1591
Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

@@ -1,71 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:text="@string/text_ip_address"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView1"
android:layout_margin="3dp"
android:linksClickable="false" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tbIP"
android:layout_margin="3dp"
android:text="@string/ip_address" />
<TextView
android:text="@string/text_password"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="3dp"
android:id="@+id/textView2" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/tbPassword"
android:layout_margin="3dp"
android:text="@string/password" />
<Button
android:text="@string/button_connect"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="3dp"
android:id="@+id/btConnect" />
<Button
android:text="Discover"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="3dp"
android:id="@+id/btDiscover" />
<Button
android:text="@string/button_send_avatar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/btSendAvatar"
android:layout_margin="3dp"
android:enabled="false" />
<TextView
android:text="@string/text_player_name"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="3dp"
android:id="@+id/textView3" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="3dp"
android:id="@+id/tbPlayerName" />
<Button
android:text="@string/button_send_profile"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/btSendProfile"
android:layout_margin="3dp"
android:enabled="false" />
</LinearLayout>
@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Vocaluxe App</string>
<string name="button_connect">Connect</string>
<string name="button_disconnect">Disconnect</string>
<string name="button_send_avatar">Send Avatar Picture</string>
<string name="button_send_profile">Send Profile</string>
<string name="message_connected">Connected</string>
<string name="message_disconnected">Disconnected</string>
<string name="message_ok">Success</string>
<string name="message_nok">Error</string>
<string name="text_ip_address">IP Address of Vocaluxe Server:</string>
<string name="text_password">Password:</string>
<string name="text_player_name">Player Name:</string>
<string name="ip_address"></string>
<string name="password">vocaluxe</string>
</resources>
@@ -1,163 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>10.0.0</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{D97EF6F3-7C3F-439F-B022-647948E206D2}</ProjectGuid>
<ProjectTypeGuids>{EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<RootNamespace>org.vocaluxe.app</RootNamespace>
<MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
<MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
<AndroidResgenClass>Resource</AndroidResgenClass>
<AndroidApplication>True</AndroidApplication>
<AndroidResgenFile>Resources\Resource.designer.cs</AndroidResgenFile>
<AssemblyName>VocaluxeApp</AssemblyName>
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>DEBUG;MONO</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<AndroidLinkMode>None</AndroidLinkMode>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>none</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AndroidUseSharedRuntime>false</AndroidUseSharedRuntime>
<ConsolePause>false</ConsolePause>
<DefineConstants>MONO</DefineConstants>
<EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="Mono.Android" />
<Reference Include="Newtonsoft.Json.MonoDroid">
<HintPath>Newtonsoft.Json.MonoDroid.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="MainActivity.cs" />
<Compile Include="Resources\Resource.designer.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="..\ClientServerLib\CClient.cs">
<Link>ClientServerLib\CClient.cs</Link>
</Compile>
<Compile Include="..\ClientServerLib\CConnection.cs">
<Link>ClientServerLib\CConnection.cs</Link>
</Compile>
<Compile Include="..\ClientServerLib\Structs.cs">
<Link>ClientServerLib\Structs.cs</Link>
</Compile>
<Compile Include="..\ClientServerLib\DeffieHellman\BigInt.cs">
<Link>ClientServerLib\DeffieHellman\BigInt.cs</Link>
</Compile>
<Compile Include="..\ClientServerLib\DeffieHellman\DeffieHellman.cs">
<Link>ClientServerLib\DeffieHellman\DeffieHellman.cs</Link>
</Compile>
<Compile Include="..\ClientServerLib\DeffieHellman\StrongNumberProvider.cs">
<Link>ClientServerLib\DeffieHellman\StrongNumberProvider.cs</Link>
</Compile>
<Compile Include="..\ClientServerLib\CDiscover.cs">
<Link>ClientServerLib\CDiscover.cs</Link>
</Compile>
<Compile Include="..\..\Vocaluxe\Base\Server\CCommands.cs">
<Link>ClientServerLib\Server\CCommands.cs</Link>
</Compile>
<Compile Include="..\..\Vocaluxe\Base\Server\VocaluxeStructs.cs">
<Link>ClientServerLib\Server\VocaluxeStructs.cs</Link>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="Resources\AboutResources.txt" />
<None Include="Properties\AndroidManifest.xml" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\layout\Main.axml" />
<AndroidResource Include="Resources\values\Strings.xml" />
<AndroidResource Include="Resources\drawable\Icon.png" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Novell\Novell.MonoDroid.CSharp.targets" />
<ItemGroup>
<Folder Include="ClientServerLib\" />
<Folder Include="Assets\" />
<Folder Include="ClientServerLib\Vocaluxe\" />
<Folder Include="ClientServerLib\Server\" />
</ItemGroup>
<ProjectExtensions>
<MonoDevelop>
<Properties>
<Policies>
<TextStylePolicy TabsToSpaces="False" inheritsSet="VisualStudio" inheritsScope="text/plain" scope="text/plain" />
<NameConventionPolicy>
<Rules>
<NamingRule Name="Namespaces" AffectedEntity="Namespace" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
<NamingRule Name="Types" AffectedEntity="Class, Struct, Enum, Delegate" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
<NamingRule Name="Interfaces" AffectedEntity="Interface" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True">
<RequiredPrefixes>
<String>I</String>
</RequiredPrefixes>
</NamingRule>
<NamingRule Name="Attributes" AffectedEntity="CustomAttributes" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True">
<RequiredSuffixes>
<String>Attribute</String>
</RequiredSuffixes>
</NamingRule>
<NamingRule Name="Event Arguments" AffectedEntity="CustomEventArgs" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True">
<RequiredSuffixes>
<String>EventArgs</String>
</RequiredSuffixes>
</NamingRule>
<NamingRule Name="Exceptions" AffectedEntity="CustomExceptions" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True">
<RequiredSuffixes>
<String>Exception</String>
</RequiredSuffixes>
</NamingRule>
<NamingRule Name="Methods" AffectedEntity="Methods" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
<NamingRule Name="Static Readonly Fields" AffectedEntity="ReadonlyField" VisibilityMask="Internal, Protected, Public" NamingStyle="PascalCase" IncludeInstanceMembers="False" IncludeStaticEntities="True" />
<NamingRule Name="Fields (Non Private)" AffectedEntity="Field" VisibilityMask="Internal, Protected, Public" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
<NamingRule Name="ReadOnly Fields (Non Private)" AffectedEntity="ReadonlyField" VisibilityMask="Internal, Protected, Public" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="False" />
<NamingRule Name="Fields (Private)" AffectedEntity="Field, ReadonlyField" VisibilityMask="Private" NamingStyle="CamelCase" IncludeInstanceMembers="True" IncludeStaticEntities="False">
<AllowedPrefixes>
<String>_</String>
<String>m_</String>
</AllowedPrefixes>
</NamingRule>
<NamingRule Name="Static Fields (Private)" AffectedEntity="Field" VisibilityMask="Private" NamingStyle="CamelCase" IncludeInstanceMembers="False" IncludeStaticEntities="True" />
<NamingRule Name="ReadOnly Fields (Private)" AffectedEntity="ReadonlyField" VisibilityMask="Private" NamingStyle="CamelCase" IncludeInstanceMembers="True" IncludeStaticEntities="False">
<AllowedPrefixes>
<String>_</String>
<String>m_</String>
</AllowedPrefixes>
</NamingRule>
<NamingRule Name="Constant Fields" AffectedEntity="ConstantField" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
<NamingRule Name="Properties" AffectedEntity="Property" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
<NamingRule Name="Events" AffectedEntity="Event" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
<NamingRule Name="Enum Members" AffectedEntity="EnumMember" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
<NamingRule Name="Parameters" AffectedEntity="Parameter" VisibilityMask="VisibilityMask" NamingStyle="CamelCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
<NamingRule Name="Type Parameters" AffectedEntity="TypeParameter" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True">
<RequiredPrefixes>
<String>T</String>
</RequiredPrefixes>
</NamingRule>
</Rules>
</NameConventionPolicy>
<VersionControlPolicy inheritsSet="Mono" />
<ChangeLogPolicy inheritsSet="Mono" />
</Policies>
</Properties>
</MonoDevelop>
</ProjectExtensions>
</Project>
-42
View File
@@ -1,42 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual C# Express 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClientServerLib", "ClientServerLib\ClientServerLib.csproj", "{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClientTest", "ClientTest\ClientTest.csproj", "{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|Mixed Platforms = Release|Mixed Platforms
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Debug|x86.ActiveCfg = Debug|Any CPU
{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Release|Any CPU.Build.0 = Release|Any CPU
{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Release|x86.ActiveCfg = Release|Any CPU
{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Debug|Any CPU.ActiveCfg = Debug|x86
{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Debug|Mixed Platforms.Build.0 = Debug|x86
{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Debug|x86.ActiveCfg = Debug|x86
{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Debug|x86.Build.0 = Debug|x86
{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Release|Any CPU.ActiveCfg = Release|x86
{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Release|Mixed Platforms.ActiveCfg = Release|x86
{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Release|Mixed Platforms.Build.0 = Release|x86
{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Release|x86.ActiveCfg = Release|x86
{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
@@ -1,137 +0,0 @@
#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 <http://www.gnu.org/licenses/>.
#endregion
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Timers;
namespace ServerLib
{
public delegate void OnServerDiscovered(string ipAddress, string hostname);
public class CDiscover
{
public const string Timeout = "Timeout";
public const string Finished = "Finished";
private readonly string _Keyword;
private readonly string _BroadcastAddress;
private readonly int _Port;
private Thread _DiscoverThread;
private bool _DiscoverRunning;
private OnServerDiscovered _OnDiscovered;
private readonly System.Timers.Timer _BroadcastTimer;
public CDiscover(int port, string keyword, string broadcastAddress = "255.255.255.255")
{
_BroadcastAddress = broadcastAddress;
_Port = port;
_Keyword = keyword;
_DiscoverRunning = false;
_BroadcastTimer = new System.Timers.Timer();
_BroadcastTimer.Elapsed += _OnBroadcastEvent;
_BroadcastTimer.Interval = 2500;
}
public void StartBroadcasting()
{
_BroadcastTimer.Start();
}
public void Stop()
{
_BroadcastTimer.Stop();
_DiscoverRunning = false;
}
public void Discover(OnServerDiscovered onDiscovered, int timeout = 5000)
{
if (_DiscoverRunning)
return;
_DiscoverRunning = true;
_DiscoverThread = new Thread(() => _Discover(timeout)) {Name = "Client discover"};
_OnDiscovered = onDiscovered;
_DiscoverThread.Start();
}
private void _OnBroadcastEvent(object source, ElapsedEventArgs e)
{
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp) {EnableBroadcast = true};
IPAddress broadcast = IPAddress.Parse(_BroadcastAddress);
byte[] sendbuf = Encoding.UTF8.GetBytes(_Keyword);
IPEndPoint ep = new IPEndPoint(broadcast, _Port);
s.SendTo(sendbuf, ep);
s.Close();
}
private void _Discover(int timeout)
{
UdpClient listener = null;
Stopwatch timer = new Stopwatch();
List<string> knownServer = new List<string>();
bool foundSomething = false;
timer.Start();
while (_DiscoverRunning && timer.ElapsedMilliseconds < timeout * 2)
{
try
{
listener = new UdpClient(_Port);
IPEndPoint groupEp = new IPEndPoint(IPAddress.Any, _Port);
listener.Client.ReceiveTimeout = timeout;
byte[] bytes = listener.Receive(ref groupEp);
string message = Encoding.UTF8.GetString(bytes, 0, bytes.Length);
foundSomething = true;
if (!knownServer.Contains(groupEp.Address.ToString()))
{
knownServer.Add(groupEp.Address.ToString());
if (_OnDiscovered != null)
{
IPHostEntry e = Dns.GetHostEntry(groupEp.Address);
string hostname = e.HostName;
_OnDiscovered(groupEp.Address.ToString(), hostname);
}
}
listener.Close();
}
catch (Exception)
{
if (listener != null)
listener.Close();
}
}
_DiscoverRunning = false;
if (_OnDiscovered != null)
_OnDiscovered(!foundSomething ? Timeout : Finished, String.Empty);
}
}
}
-211
View File
@@ -1,211 +0,0 @@
#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 <http://www.gnu.org/licenses/>.
#endregion
using System;
using System.Diagnostics;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Net;
namespace ServerLib
{
public class CServer
{
private ServiceHost _Host;
private Uri _BaseAddress;
private bool _Encrypted;
public static SendKeyEventDelegate SendKeyEvent { internal get; set; }
#region profile
public static GetProfileDataDelegate GetProfileData { internal get; set; }
public static SendProfileDataDelegate SendProfileData { internal get; set; }
public static GetProfileListDelegate GetProfileList { internal get; set; }
#endregion
#region photo
public static SendPhotoDelegate SendPhoto { get; set; }
#endregion
#region website
public static GetSiteFileDelegate GetSiteFile { internal get; set; }
public static GetDelayedImageDelegate GetDelayedImage { internal get; set; }
#endregion
#region songs
public static GetSongDelegate GetSong { internal get; set; }
public static GetAllSongsDelegate GetAllSongs { internal get; set; }
public static GetCurrentSongIdDelegate GetCurrentSongId { internal get; set; }
#endregion
#region playlist
public static GetPlaylistsDelegate GetPlaylists { internal get; set; }
public static GetPlaylistDelegate GetPlaylist { internal get; set; }
public static AddSongToPlaylistDelegate AddSongToPlaylist { internal get; set; }
public static RemoveSongFromPlaylistDelegate RemoveSongFromPlaylist { internal get; set; }
public static MoveSongInPlaylistDelegate MoveSongInPlaylist { internal get; set; }
public static PlaylistContainsSongDelegate PlaylistContainsSong { internal get; set; }
public static GetPlaylistSongsDelegate GetPlaylistSongs { internal get; set; }
public static RemovePlaylistDelegate RemovePlaylist { internal get; set; }
public static AddPlaylistDelegate AddPlaylist { internal get; set; }
#endregion
#region user management
public static ValidatePasswordDelegate ValidatePassword { internal get; set; }
public static GetUserRoleDelegate GetUserRole { internal get; set; }
public static SetUserRoleDelegate SetUserRole { internal get; set; }
public static GetUserIdFromUsernameDelegate GetUserIdFromUsername { internal get; set; }
#endregion
public CServer(int port, bool encrypted)
{
_Init(port, encrypted);
}
public string GetBaseAddress()
{
return _BaseAddress.AbsoluteUri;
/*IPAddress[] ips = Dns.GetHostAddresses(Dns.GetHostName());
foreach (IPAddress ip in ips)
{
if (ip.AddressFamily == AddressFamily.InterNetwork)
return ip.ToString();
}
return "";*/
}
public bool IsRunning()
{
return _Host.State == CommunicationState.Opened;
}
#region server control
private void _Init(int port, bool encrypted)
{
string hostname = Dns.GetHostName();
string protocol = (encrypted) ? "https" : "http";
_BaseAddress = new Uri(protocol + "://" + hostname + ":" + port + "/");
_Encrypted = encrypted;
_Host = new WebServiceHost(typeof(CWebservice), _BaseAddress);
WebHttpBinding wb = new WebHttpBinding
{
MaxReceivedMessageSize = 10485760,
MaxBufferSize = 10485760,
MaxBufferPoolSize = 10485760,
ReaderQuotas = {MaxStringContentLength = 10485760, MaxArrayLength = 10485760, MaxBytesPerRead = 10485760}
};
if (encrypted)
{
wb.Security.Mode = WebHttpSecurityMode.Transport;
wb.Security.Transport = new HttpTransportSecurity {ClientCredentialType = HttpClientCredentialType.None};
}
_Host.AddServiceEndpoint(typeof(ICWebservice), wb, "");
}
public void Start()
{
try
{
/*ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
smb.HttpGetEnabled = true;
host.Description.Behaviors.Add(smb);*/
_RegisterUrlAndCert(_BaseAddress.Port, false);
_Host.Open();
}
catch (CommunicationException e)
{
if (e is AddressAccessDeniedException || e is AddressAlreadyInUseException)
{
_RegisterUrlAndCert(_BaseAddress.Port, true);
try
{
_Host.Abort();
_Init(_BaseAddress.Port, _Encrypted);
_Host.Open();
}
catch (CommunicationException)
{
_Host.Abort();
}
}
else
_Host.Abort();
}
}
public void Stop()
{
try
{
_Host.Close();
}
catch (CommunicationException)
{
_Host.Abort();
}
}
private void _RegisterUrlAndCert(int port, bool reserve)
{
#if WIN
ProcessStartInfo info = new ProcessStartInfo
{
FileName = "VocaluxeServerConfig.exe",
WorkingDirectory = Environment.CurrentDirectory,
Arguments = port + " " + (_Encrypted ? "true" : "false") + (reserve ? " reserve" : ""),
UseShellExecute = true,
CreateNoWindow = true,
WindowStyle = ProcessWindowStyle.Hidden,
};
try
{
using (Process p = Process.Start(info))
{
p.WaitForExit();
p.Close();
}
}
catch (Exception) {}
#else
//Required?
#endif
}
#endregion
}
}
@@ -1,179 +0,0 @@
#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 <http://www.gnu.org/licenses/>.
#endregion
using System;
using System.Linq;
using System.Runtime.Serialization;
using System.Drawing;
using System.IO;
using System.Drawing.Imaging;
using System.Text.RegularExpressions;
namespace ServerLib
{
public delegate bool SendKeyEventDelegate(string key);
#region profile
public delegate SProfileData GetProfileDataDelegate(int profileId, bool isReadonly);
public delegate bool SendProfileDataDelegate(SProfileData profile);
public delegate SProfileData[] GetProfileListDelegate();
[DataContract]
public struct SProfileData
{
[DataMember] public CBase64Image Avatar;
[DataMember] public string PlayerName;
[DataMember] public int Type;
[DataMember] public int Difficulty;
[DataMember] public int ProfileId;
[DataMember] public bool IsEditable;
[DataMember] public string Password;
}
#endregion
#region photo
public delegate bool SendPhotoDelegate(SPhotoData photo);
[DataContract]
public struct SPhotoData
{
[DataMember] public CBase64Image Photo;
//Add infomation about the user who took this image??
}
#endregion
#region website
public delegate byte[] GetSiteFileDelegate(string filename);
public delegate CBase64Image GetDelayedImageDelegate(string hashedFilename);
#endregion
[DataContract]
public class CBase64Image
{
[DataMember] private string base64Data = "";
[DataMember] private string imageId = "";
public CBase64Image(Image img, ImageFormat format)
{
MemoryStream ms = new MemoryStream();
img.Save(ms, format);
string formatString = ImageCodecInfo.GetImageEncoders().FirstOrDefault(x => x.FormatID == format.Guid).FilenameExtension.Replace("*.", "").ToLower();
base64Data = "data:image/" + formatString + ";base64," + Convert.ToBase64String(ms.ToArray());
}
public CBase64Image(string imageId)
{
this.imageId = imageId;
}
public Image GetImage()
{
string onlyBase64Data = base64Data.Substring(base64Data.IndexOf(";base64,") + (";base64,").Length);
byte[] imageData = Convert.FromBase64String(onlyBase64Data);
MemoryStream ms = new MemoryStream(imageData, 0, imageData.Length);
ms.Write(imageData, 0, imageData.Length);
Image image = Image.FromStream(ms, true);
return image;
}
public string GetImageType()
{
Match match = Regex.Match(base64Data, "(?<=data:image/)[a-zA-Z]+(?=;base64)");
return match.Success ? match.Groups[0].Value : "";
}
}
#region songs
public delegate SSongInfo GetSongDelegate(int songId);
public delegate SSongInfo[] GetAllSongsDelegate();
public delegate int GetCurrentSongIdDelegate();
[DataContract]
public struct SSongInfo
{
[DataMember] public string Title;
[DataMember] public string Artist;
[DataMember] public CBase64Image Cover;
[DataMember]
public string Genre { get; set; }
[DataMember]
public string Language { get; set; }
[DataMember]
public string Year { get; set; }
[DataMember]
public bool IsDuet { get; set; }
[DataMember]
public int SongId { get; set; }
}
#endregion
#region playlists
public delegate SPlaylistInfo[] GetPlaylistsDelegate();
public delegate SPlaylistInfo GetPlaylistDelegate(int playlistId);
public delegate void AddSongToPlaylistDelegate(int songId, int playlistId, bool allowDuplicates);
public delegate void RemoveSongFromPlaylistDelegate(int position, int playlistId, int songId);
public delegate void MoveSongInPlaylistDelegate(int newPosition, int playlistId, int songId);
public delegate bool PlaylistContainsSongDelegate(int songId, int playlistId);
public delegate SPlaylistSongInfo[] GetPlaylistSongsDelegate(int playlistId);
public delegate void RemovePlaylistDelegate(int playlistId);
public delegate int AddPlaylistDelegate(string playlistName);
[DataContract]
public struct SPlaylistSongInfo
{
[DataMember] public SSongInfo Song;
[DataMember] public int PlaylistId;
[DataMember] public int PlaylistPosition;
[DataMember] public int GameMode;
}
[DataContract]
public struct SPlaylistInfo
{
[DataMember] public int PlaylistId;
[DataMember] public string PlaylistName;
[DataMember] public int SongCount;
[DataMember] public string LastChanged;
}
#endregion
#region user management
public delegate void SetPasswordDelegate(int profileId, string newPassword);
public delegate bool ValidatePasswordDelegate(int profileId, string password);
public delegate int GetUserRoleDelegate(int profileId);
public delegate void SetUserRoleDelegate(int profileId, int userRole);
public delegate int GetUserIdFromUsernameDelegate(string username);
#endregion
}
@@ -1,56 +0,0 @@
#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 <http://www.gnu.org/licenses/>.
#endregion
using System.Reflection;
using System.Runtime.InteropServices;
// Allgemeine Informationen über eine Assembly werden über die folgenden
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
// die mit einer Assembly verknüpft sind.
[assembly: AssemblyTitle("ClientServerLib")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ClientServerLib")]
[assembly: AssemblyCopyright("Copyright © 2013")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar
// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von
// COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest.
[assembly: ComVisible(false)]
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
[assembly: Guid("53f89645-1948-420f-b64a-7dc705ca8820")]
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
//
// Hauptversion
// Nebenversion
// Buildnummer
// Revision
//
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
// übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
@@ -1,89 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ServerLib</RootNamespace>
<AssemblyName>ClientServerLib</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'DebugWin|AnyCPU'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>..\..\Output\</OutputPath>
<DefineConstants>TRACE;DEBUG;WIN;</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'DebugLinux|AnyCPU'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>..\..\Output\</OutputPath>
<DefineConstants>TRACE;DEBUG;LINUX;</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'ReleaseWin|AnyCPU'">
<OutputPath>..\..\Output\</OutputPath>
<DefineConstants>TRACE;WIN;</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'ReleaseLinux|AnyCPU'">
<OutputPath>..\..\Output\</OutputPath>
<DefineConstants>TRACE;LINUX;</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.ServiceModel.Web" />
<Reference Include="System.Web.Services" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="CDiscover.cs" />
<Compile Include="CServer.cs" />
<Compile Include="CWebservice.cs" />
<Compile Include="DataStructs.cs" />
<Compile Include="ICWebservice.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Session.cs" />
<Compile Include="SessionControl.cs" />
<Compile Include="UserRights.cs" />
<Compile Include="UserRoleControl.cs" />
<Compile Include="UserRoles.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
-337
View File
@@ -1,337 +0,0 @@
namespace ClientTest
{
partial class ClientTest
{
/// <summary>
/// Erforderliche Designervariable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Verwendete Ressourcen bereinigen.
/// </summary>
/// <param name="disposing">True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Vom Windows Form-Designer generierter Code
/// <summary>
/// Erforderliche Methode für die Designerunterstützung.
/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
/// </summary>
private void InitializeComponent()
{
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.lbConnectionStatus = new System.Windows.Forms.ToolStripStatusLabel();
this.lbConnectionStatusText = new System.Windows.Forms.ToolStripStatusLabel();
this.tbDataSending = new System.Windows.Forms.TextBox();
this.lbDateSending = new System.Windows.Forms.Label();
this.lbDataReceiving = new System.Windows.Forms.Label();
this.tbDataReceiving = new System.Windows.Forms.TextBox();
this.lbPort = new System.Windows.Forms.Label();
this.tbPort = new System.Windows.Forms.TextBox();
this.tbServerIP = new System.Windows.Forms.TextBox();
this.btConnect = new System.Windows.Forms.Button();
this.lbServerIP = new System.Windows.Forms.Label();
this.tbPassword = new System.Windows.Forms.TextBox();
this.lbPassword = new System.Windows.Forms.Label();
this.btLeft = new System.Windows.Forms.Button();
this.btRight = new System.Windows.Forms.Button();
this.btUp = new System.Windows.Forms.Button();
this.btDown = new System.Windows.Forms.Button();
this.btSendAvatar = new System.Windows.Forms.Button();
this.btSendProfile = new System.Windows.Forms.Button();
this.btDiscover = new System.Windows.Forms.Button();
this.tbDiscoveredServer = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.statusStrip1.SuspendLayout();
this.SuspendLayout();
//
// statusStrip1
//
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.lbConnectionStatus,
this.lbConnectionStatusText});
this.statusStrip1.Location = new System.Drawing.Point(0, 528);
this.statusStrip1.Name = "statusStrip1";
this.statusStrip1.Size = new System.Drawing.Size(1008, 22);
this.statusStrip1.TabIndex = 4;
this.statusStrip1.Text = "statusStrip1";
//
// lbConnectionStatus
//
this.lbConnectionStatus.Name = "lbConnectionStatus";
this.lbConnectionStatus.Size = new System.Drawing.Size(107, 17);
this.lbConnectionStatus.Text = "Connection Status:";
//
// lbConnectionStatusText
//
this.lbConnectionStatusText.Name = "lbConnectionStatusText";
this.lbConnectionStatusText.Size = new System.Drawing.Size(79, 17);
this.lbConnectionStatusText.Text = "Disconnected";
//
// tbDataSending
//
this.tbDataSending.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tbDataSending.Location = new System.Drawing.Point(12, 25);
this.tbDataSending.Multiline = true;
this.tbDataSending.Name = "tbDataSending";
this.tbDataSending.Size = new System.Drawing.Size(810, 120);
this.tbDataSending.TabIndex = 7;
//
// lbDateSending
//
this.lbDateSending.AutoSize = true;
this.lbDateSending.Location = new System.Drawing.Point(12, 9);
this.lbDateSending.Name = "lbDateSending";
this.lbDateSending.Size = new System.Drawing.Size(75, 13);
this.lbDateSending.TabIndex = 6;
this.lbDateSending.Text = "Data Sending:";
//
// lbDataReceiving
//
this.lbDataReceiving.AutoSize = true;
this.lbDataReceiving.Location = new System.Drawing.Point(12, 197);
this.lbDataReceiving.Name = "lbDataReceiving";
this.lbDataReceiving.Size = new System.Drawing.Size(84, 13);
this.lbDataReceiving.TabIndex = 8;
this.lbDataReceiving.Text = "Data Receiving:";
//
// tbDataReceiving
//
this.tbDataReceiving.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tbDataReceiving.Location = new System.Drawing.Point(12, 213);
this.tbDataReceiving.Multiline = true;
this.tbDataReceiving.Name = "tbDataReceiving";
this.tbDataReceiving.Size = new System.Drawing.Size(810, 120);
this.tbDataReceiving.TabIndex = 9;
//
// lbPort
//
this.lbPort.AutoSize = true;
this.lbPort.Location = new System.Drawing.Point(828, 41);
this.lbPort.Name = "lbPort";
this.lbPort.Size = new System.Drawing.Size(29, 13);
this.lbPort.TabIndex = 1;
this.lbPort.Text = "Port:";
//
// tbPort
//
this.tbPort.Location = new System.Drawing.Point(910, 38);
this.tbPort.Name = "tbPort";
this.tbPort.Size = new System.Drawing.Size(86, 20);
this.tbPort.TabIndex = 3;
this.tbPort.Text = "3000";
//
// tbServerIP
//
this.tbServerIP.Location = new System.Drawing.Point(910, 12);
this.tbServerIP.Name = "tbServerIP";
this.tbServerIP.Size = new System.Drawing.Size(86, 20);
this.tbServerIP.TabIndex = 2;
this.tbServerIP.Text = "127.0.0.1";
//
// btConnect
//
this.btConnect.Location = new System.Drawing.Point(831, 90);
this.btConnect.Name = "btConnect";
this.btConnect.Size = new System.Drawing.Size(165, 23);
this.btConnect.TabIndex = 5;
this.btConnect.Text = "Connect";
this.btConnect.UseVisualStyleBackColor = true;
this.btConnect.Click += new System.EventHandler(this.btConnect_Click);
//
// lbServerIP
//
this.lbServerIP.AutoSize = true;
this.lbServerIP.Location = new System.Drawing.Point(828, 15);
this.lbServerIP.Name = "lbServerIP";
this.lbServerIP.Size = new System.Drawing.Size(54, 13);
this.lbServerIP.TabIndex = 0;
this.lbServerIP.Text = "Server IP:";
//
// tbPassword
//
this.tbPassword.Location = new System.Drawing.Point(910, 64);
this.tbPassword.Name = "tbPassword";
this.tbPassword.Size = new System.Drawing.Size(86, 20);
this.tbPassword.TabIndex = 6;
this.tbPassword.UseSystemPasswordChar = true;
//
// lbPassword
//
this.lbPassword.AutoSize = true;
this.lbPassword.Location = new System.Drawing.Point(828, 67);
this.lbPassword.Name = "lbPassword";
this.lbPassword.Size = new System.Drawing.Size(56, 13);
this.lbPassword.TabIndex = 7;
this.lbPassword.Text = "Password:";
//
// btLeft
//
this.btLeft.Enabled = false;
this.btLeft.Location = new System.Drawing.Point(831, 238);
this.btLeft.Name = "btLeft";
this.btLeft.Size = new System.Drawing.Size(69, 23);
this.btLeft.TabIndex = 10;
this.btLeft.Text = "Left";
this.btLeft.UseVisualStyleBackColor = true;
this.btLeft.Click += new System.EventHandler(this.btLeft_Click);
//
// btRight
//
this.btRight.Enabled = false;
this.btRight.Location = new System.Drawing.Point(927, 238);
this.btRight.Name = "btRight";
this.btRight.Size = new System.Drawing.Size(69, 23);
this.btRight.TabIndex = 11;
this.btRight.Text = "Right";
this.btRight.UseVisualStyleBackColor = true;
this.btRight.Click += new System.EventHandler(this.brRight_Click);
//
// btUp
//
this.btUp.Enabled = false;
this.btUp.Location = new System.Drawing.Point(877, 209);
this.btUp.Name = "btUp";
this.btUp.Size = new System.Drawing.Size(69, 23);
this.btUp.TabIndex = 12;
this.btUp.Text = "Up";
this.btUp.UseVisualStyleBackColor = true;
this.btUp.Click += new System.EventHandler(this.btUp_Click);
//
// btDown
//
this.btDown.Enabled = false;
this.btDown.Location = new System.Drawing.Point(877, 267);
this.btDown.Name = "btDown";
this.btDown.Size = new System.Drawing.Size(69, 23);
this.btDown.TabIndex = 13;
this.btDown.Text = "Down";
this.btDown.UseVisualStyleBackColor = true;
this.btDown.Click += new System.EventHandler(this.btDown_Click);
//
// btSendAvatar
//
this.btSendAvatar.Enabled = false;
this.btSendAvatar.Location = new System.Drawing.Point(831, 310);
this.btSendAvatar.Name = "btSendAvatar";
this.btSendAvatar.Size = new System.Drawing.Size(165, 23);
this.btSendAvatar.TabIndex = 14;
this.btSendAvatar.Text = "Send Avatar";
this.btSendAvatar.UseVisualStyleBackColor = true;
this.btSendAvatar.Click += new System.EventHandler(this.btSendAvatar_Click);
//
// btSendProfile
//
this.btSendProfile.Enabled = false;
this.btSendProfile.Location = new System.Drawing.Point(831, 339);
this.btSendProfile.Name = "btSendProfile";
this.btSendProfile.Size = new System.Drawing.Size(165, 23);
this.btSendProfile.TabIndex = 15;
this.btSendProfile.Text = "Send Profile";
this.btSendProfile.UseVisualStyleBackColor = true;
this.btSendProfile.Click += new System.EventHandler(this.btSendProfile_Click);
//
// btDiscover
//
this.btDiscover.Location = new System.Drawing.Point(831, 502);
this.btDiscover.Name = "btDiscover";
this.btDiscover.Size = new System.Drawing.Size(165, 23);
this.btDiscover.TabIndex = 16;
this.btDiscover.Text = "Discover";
this.btDiscover.UseVisualStyleBackColor = true;
this.btDiscover.Click += new System.EventHandler(this.btDiscover_Click);
//
// tbDiscoveredServer
//
this.tbDiscoveredServer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tbDiscoveredServer.Location = new System.Drawing.Point(15, 405);
this.tbDiscoveredServer.Multiline = true;
this.tbDiscoveredServer.Name = "tbDiscoveredServer";
this.tbDiscoveredServer.Size = new System.Drawing.Size(810, 120);
this.tbDiscoveredServer.TabIndex = 17;
this.tbDiscoveredServer.WordWrap = false;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 389);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(41, 13);
this.label1.TabIndex = 18;
this.label1.Text = "Server:";
//
// ClientTest
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1008, 550);
this.Controls.Add(this.label1);
this.Controls.Add(this.tbDiscoveredServer);
this.Controls.Add(this.btDiscover);
this.Controls.Add(this.btSendProfile);
this.Controls.Add(this.btSendAvatar);
this.Controls.Add(this.btDown);
this.Controls.Add(this.btUp);
this.Controls.Add(this.btRight);
this.Controls.Add(this.btLeft);
this.Controls.Add(this.tbDataReceiving);
this.Controls.Add(this.lbPassword);
this.Controls.Add(this.lbDataReceiving);
this.Controls.Add(this.tbPassword);
this.Controls.Add(this.lbDateSending);
this.Controls.Add(this.lbServerIP);
this.Controls.Add(this.tbDataSending);
this.Controls.Add(this.btConnect);
this.Controls.Add(this.tbServerIP);
this.Controls.Add(this.statusStrip1);
this.Controls.Add(this.tbPort);
this.Controls.Add(this.lbPort);
this.Name = "ClientTest";
this.Text = "ClientTest";
this.statusStrip1.ResumeLayout(false);
this.statusStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.StatusStrip statusStrip1;
private System.Windows.Forms.ToolStripStatusLabel lbConnectionStatus;
private System.Windows.Forms.ToolStripStatusLabel lbConnectionStatusText;
private System.Windows.Forms.TextBox tbDataSending;
private System.Windows.Forms.Label lbDateSending;
private System.Windows.Forms.Label lbDataReceiving;
private System.Windows.Forms.TextBox tbDataReceiving;
private System.Windows.Forms.Label lbPort;
private System.Windows.Forms.TextBox tbPort;
private System.Windows.Forms.TextBox tbServerIP;
private System.Windows.Forms.Button btConnect;
private System.Windows.Forms.Label lbServerIP;
private System.Windows.Forms.TextBox tbPassword;
private System.Windows.Forms.Label lbPassword;
private System.Windows.Forms.Button btLeft;
private System.Windows.Forms.Button btRight;
private System.Windows.Forms.Button btUp;
private System.Windows.Forms.Button btDown;
private System.Windows.Forms.Button btSendAvatar;
private System.Windows.Forms.Button btSendProfile;
private System.Windows.Forms.Button btDiscover;
private System.Windows.Forms.TextBox tbDiscoveredServer;
private System.Windows.Forms.Label label1;
}
}
-284
View File
@@ -1,284 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Net;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
using ClientServerLib;
using Vocaluxe.Base.Server;
namespace ClientTest
{
public partial class ClientTest : Form
{
CClient client;
CDiscover discover;
private bool loggedIn;
public ClientTest()
{
client = new CClient();
loggedIn = false;
discover = new CDiscover(3000, CCommands.BroadcastKeyword);
InitializeComponent();
}
protected override void OnClosing(CancelEventArgs e)
{
client.Close();
discover.Stop();
base.OnClosing(e);
}
private void btConnect_Click(object sender, EventArgs e)
{
if (!client.Connected)
Connect();
else
Disconnect();
}
private void btLogin_Click(object sender, EventArgs e)
{
if (!client.Connected)
return;
client.SendMessage(CCommands.CreateCommandLogin(tbPassword.Text), OnResponse);
}
private void Connect()
{
int port = 3000;
if (!int.TryParse(tbPort.Text, out port))
{
MessageBox.Show("Error parsing port number", "Port Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
IPAddress ip;
if (!IPAddress.TryParse(tbServerIP.Text, out ip))
{
MessageBox.Show("Error parsing ip address", "IP Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
lbConnectionStatusText.Text = "Connecting...";
client.Connect(tbServerIP.Text, port, tbPassword.Text, OnConnectionChanged, OnSend, OnReceived);
}
private void Disconnect()
{
client.Disconnect();
}
private void OnResponse(byte[] Message)
{
if (Message == null)
return;
if (Message.Length < 4)
return;
int command = BitConverter.ToInt32(Message, 0);
switch (command)
{
case CCommands.ResponseLoginFailed:
MessageBox.Show("Unknown Error on login", "Login Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
break;
case CCommands.ResponseLoginWrongPassword:
MessageBox.Show("Wrong Password", "Login Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
break;
case CCommands.ResponseLoginOK:
loggedIn = true;
this.Invoke((MethodInvoker)delegate
{
lbConnectionStatusText.Text = "Logged in";
});
break;
default:
break;
}
}
private void OnConnectionChanged(bool Connected)
{
if (Connected)
{
this.Invoke((MethodInvoker)delegate
{
lbConnectionStatusText.Text = "Connected";
btConnect.Text = "Disconnect";
btUp.Enabled = true;
btDown.Enabled = true;
btLeft.Enabled = true;
btRight.Enabled = true;
btSendAvatar.Enabled = true;
btSendProfile.Enabled = true;
});
}
else
{
this.Invoke((MethodInvoker)delegate
{
client.Disconnect();
lbConnectionStatusText.Text = "Disconnected";
btConnect.Text = "Connect";
loggedIn = false;
btUp.Enabled = false;
btDown.Enabled = false;
btLeft.Enabled = false;
btRight.Enabled = false;
btSendAvatar.Enabled = false;
btSendProfile.Enabled = false;
});
}
}
private void OnSend(byte[] Message)
{
if (Message == null)
return;
string text = String.Empty;
int max = Message.Length;
if (max > 1000)
max = 1000;
for (int i = 0; i < max; i++)
{
text += Message[i].ToString() + " ";
}
this.Invoke((MethodInvoker)delegate
{
tbDataSending.Text = text;
});
}
private void OnReceived(byte[] Message)
{
if (Message == null)
return;
string text = String.Empty;
int max = Message.Length;
if (max > 1000)
max = 1000;
for (int i = 0; i < max; i++)
{
text += Message[i].ToString() + " ";
}
this.Invoke((MethodInvoker)delegate
{
tbDataReceiving.Text = text;
});
}
private void btUp_Click(object sender, EventArgs e)
{
if (!client.Connected || !loggedIn)
return;
client.SendMessage(CCommands.CreateCommandWithoutParams(CCommands.CommandSendKeyUp), null);
}
private void btLeft_Click(object sender, EventArgs e)
{
if (!client.Connected || !loggedIn)
return;
client.SendMessage(CCommands.CreateCommandWithoutParams(CCommands.CommandSendKeyLeft), null);
}
private void btDown_Click(object sender, EventArgs e)
{
if (!client.Connected || !loggedIn)
return;
client.SendMessage(CCommands.CreateCommandWithoutParams(CCommands.CommandSendKeyDown), null);
}
private void brRight_Click(object sender, EventArgs e)
{
if (!client.Connected || !loggedIn)
return;
client.SendMessage(CCommands.CreateCommandWithoutParams(CCommands.CommandSendKeyRight), null);
}
private void btSendAvatar_Click(object sender, EventArgs e)
{
if (!client.Connected || !loggedIn)
return;
byte[] data = new byte[512 * 512 * 4];
for (int i = 0; i < data.Length; i++)
{
data[i] = (byte) (i % 255);
}
client.SendMessage(CCommands.CreateCommandSendAvatarPicture(512, 512, data), OnResponse);
}
private void btSendProfile_Click(object sender, EventArgs e)
{
if (!client.Connected || !loggedIn)
return;
if (!File.Exists("test.jpg"))
{
byte[] data = new byte[512 * 512 * 4];
for (int i = 0; i < data.Length; i++)
{
data[i] = (byte)(i % 255);
}
Bitmap bmp = new Bitmap(512, 512);
BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb);
Marshal.Copy(data, 0, bmpData.Scan0, data.Length);
bmp.UnlockBits(bmpData);
bmp.Save("test.jpg", ImageFormat.Jpeg);
bmp.Dispose();
}
if (File.Exists("test.jpg"))
{
byte[] data = File.ReadAllBytes("test.jpg");
if (data == null)
return;
client.SendMessage(CCommands.CreateCommandSendProfile(data, "TestUser", 0), OnResponse);
}
}
private void btDiscover_Click(object sender, EventArgs e)
{
tbDiscoveredServer.Text = "Searching for Vocaluxe Server:\r\n";
discover.Discover(_OnDiscovered);
}
private void _OnDiscovered(string Address, string HostName)
{
this.Invoke((MethodInvoker)delegate
{
if (Address != "Timeout")
tbDiscoveredServer.Text += "IP = " + Address + "; HostName = " + HostName + "\r\n";
else
tbDiscoveredServer.Text += "Timeout" + "\r\n";
});
}
}
}
@@ -1,103 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ClientTest</RootNamespace>
<AssemblyName>ClientTest</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\ClientServerLib\bin\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\..\Vocaluxe\Base\Server\CCommands.cs">
<Link>CCommands.cs</Link>
</Compile>
<Compile Include="..\..\Vocaluxe\Base\Server\VocaluxeStructs.cs">
<Link>VocaluxeStructs.cs</Link>
</Compile>
<Compile Include="ClientTest.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="ClientTest.Designer.cs">
<DependentUpon>ClientTest.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="ClientTest.resx">
<DependentUpon>ClientTest.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ClientServerLib\ClientServerLib.csproj">
<Project>{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}</Project>
<Name>ClientServerLib</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
-123
View File
@@ -1,123 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>
-21
View File
@@ -1,21 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace ClientTest
{
static class Program
{
/// <summary>
/// Der Haupteinstiegspunkt für die Anwendung.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new ClientTest());
}
}
}
@@ -1,71 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Dieser Code wurde von einem Tool generiert.
// Laufzeitversion:4.0.30319.18034
//
// Änderungen an dieser Datei können fehlerhaftes Verhalten verursachen und gehen verloren, wenn
// der Code neu generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------
namespace ClientTest.Properties
{
/// <summary>
/// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
/// </summary>
// Diese Klasse wurde von der StronglyTypedResourceBuilder-Klasse
// über ein Tool wie ResGen oder Visual Studio automatisch generiert.
// Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
// mit der Option /str erneut aus, oder erstellen Sie Ihr VS-Projekt neu.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
/// <summary>
/// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ClientTest.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
/// Ressourcenlookups, die diese stark typisierte Ressourcenklasse verwenden.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}
@@ -1,117 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
@@ -1,30 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.18034
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace ClientTest.Properties
{
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default
{
get
{
return defaultInstance;
}
}
}
}
@@ -1,7 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>
+4
View File
@@ -0,0 +1,4 @@
# Build Vocaluxe - HowTo (Linux)
* Clone the repository (see [this](https://github.com/Vocaluxe/Vocaluxe/blob/develop/HowToBuildWin.md) for help)
* Navigate to the cloned repository and execute `make`. Make sure that all dependencies are installed and the process completes without errors.
+58
View File
@@ -0,0 +1,58 @@
# Build Vocaluxe - HowTo (Windows)
* Navigate to the right repository: usually [Vocaluxe Main](https://github.com/Vocaluxe/Vocaluxe)
* Navigate to the right branch: usually [develop](https://github.com/Vocaluxe/Vocaluxe/tree/develop) (The main branch of Vocaluxe)
![branch](https://cloud.githubusercontent.com/assets/5115160/4995706/bc5aa536-69c2-11e4-8534-b64573624a33.PNG)
* Copy the `URL` of the corresponding git file
![url](https://cloud.githubusercontent.com/assets/5115160/4995708/bc5af234-69c2-11e4-91d1-112972f35f01.PNG)
* Make sure [Visual Studio 2012/2013(?)](http://www.visualstudio.com/downloads/download-visual-studio-vs#d-express-windows-desktop) is installed
* Clone the repository and open it
**Method A: Use Visual Studio (2013+)'s git client:**
* Start Visual Studio
* `VIEW`->`Team Explorer`
* Click on the `Connect to a Team Project` button inside the `Team Explorer`
* Click on `Clone` under `Local Git Repositories`
* Enter `[theCopiedGitUrl]` in the first field
* Enter a target folder in the second field
* Click clone
![vsclone](https://cloud.githubusercontent.com/assets/5115160/4998350/de81ca76-69d7-11e4-983d-d2886aa9faa0.png)
**Method B: Use commandline git client:**
* Make sure git is installed [git-scm](http://git-scm.com/)
* Open a `git bash` (there should be a link in the start menu)
or a normal commandline if you have added git to the `PATH` variable
* Navigate to the folder where git should create the Vocaluxe project folder
```
cd [PathToYourFolder]
```
* Clone the repository (could take some time...)
```
git clone [theCopiedGitUrl]
```
![clone](https://cloud.githubusercontent.com/assets/5115160/4995707/bc5aa6da-69c2-11e4-95cb-71ac7b0c3fc8.png)
* Now you should find a Folder `Vocaluxe` in the given directory -> navigate into it
* Open the file `Vocaluxe.sln` with Visual Studio
* Configure the build target to `ReleaseWin` and `x86` or `x64` (if unsure -> select `x86`)
* Build the projects by clicking `"Build"->"Build solution"` or just press `Control`+`Shift`+`B`
![build](https://cloud.githubusercontent.com/assets/5115160/4995709/bc5b3474-69c2-11e4-9d9b-b49f8a3b315d.png)
* Check if your build was successful
![buildsuccess](https://cloud.githubusercontent.com/assets/5115160/4995710/bc5b4fe0-69c2-11e4-8b0f-4acaeffbc568.png)
* YOUR build should have appeared here:
```
[PathToYourFolder]\Vocaluxe\Output
```
* Run `Vocaluxe.exe` or copy the whole folder to a location of your choice
* Have fun!
Binary file not shown.
-14
View File
@@ -1,14 +0,0 @@
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
+74
View File
@@ -0,0 +1,74 @@
:: Build script for vocaluxe installer (x86 and x64 versions)
::
:: Requirements
:: - wget.exe: http://gnuwin32.sourceforge.net/packages/wget.htm
:: - unzip.exe: http://gnuwin32.sourceforge.net/packages/unzip.htm
:: - nuget.exe: https://www.nuget.org/downloads
:: - Visual Studio with devenv.exe (should be located in somewhere in Visual Studio folder, e.g. C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE)
:: - AdvancedInstaller
@ECHO OFF
echo Cloning vocaluxe from github and checkout master
if exist "Files" (
cd Files
git checkout -q develop >> log.txt
git pull -q >> log.txt
cd ../
) else (
git clone -q https://github.com/Vocaluxe/Vocaluxe.git Files > log.txt
cd Files
git checkout -q develop >> log.txt
cd ../
)
echo - Done
echo.
echo Download ambient videos and move them to themes folder
wget --append-output=log.txt -q -O videos.zip https://github.com/lukeIam/VocaluxeDependencies/blob/master/zips/themes/vocaluxe.themes.ambient.video.zip?raw=true || goto :error
unzip -q -o -d Files/Output videos.zip || goto :error
del /q videos.zip >> log.txt || goto :error
echo - Done
echo.
echo Delete lib-folder to prevent packing wrong dlls
del /q Files\Output\libs >> log.txt || goto :error
echo - Done
echo.
echo Restore dependencies and build x64
nuget restore Files/Vocaluxe.sln >> log.txt || goto :error
devenv Files/Vocaluxe.sln /Build "InstallerWin|x64" >> log.txt || goto :error
echo - Done
echo.
echo Build x64 installer
AdvancedInstaller.com /rebuild setup.aip -buildslist x64 >> log.txt || goto :error
echo - Done
echo.
echo Delete lib-folder to prevent packing wrong dlls
del /q Files\Output\libs >> log.txt || goto :error
echo - Done
echo.
echo Restore dependencies and build x86
nuget restore Files/Vocaluxe.sln >> log.txt || goto :error
devenv Files/Vocaluxe.sln /Build "InstallerWin|x86" >> log.txt || goto :error
echo - Done
echo.
echo Build x86 installer
AdvancedInstaller.com /rebuild setup.aip -buildslist x86 >> log.txt || goto :error
echo - Done
echo.
echo Everything is done!
pause
goto :EOF
:error
echo Failed with error #%errorlevel%.
echo See log.txt for more details.
pause
exit /b %errorlevel%
-20
View File
@@ -1,20 +0,0 @@
@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\*"
+3858 -1706
View File
File diff suppressed because it is too large. Load diff
+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
<add key="Vocaluxe" value="https://www.myget.org/F/vocaluxe/api/v2" />
</packageSources>
<activePackageSource>
<add key="Vocaluxe" value="https://www.myget.org/F/vocaluxe/api/v2" />
</activePackageSource>
<disabledPackageSources>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
</disabledPackageSources>
</configuration>
Binary file not shown.
Binary file not shown.
Binary file not shown.
+166
View File
@@ -0,0 +1,166 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<Info>
<Name>Ambient Blue</Name>
<Folder>Ambient Blue</Folder>
<Author>flokuep</Author>
</Info>
<!--Cover definitions when a category is missing a cover-->
<!--Possible types are: Default, Song, Artist, Letter, Edition, Genre, Language, Year, Decade, Date -->
<CoverGenerator Type="Default">
<Text>
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
<Text>%TEXT%</Text>
<Font>
<Name>Normal</Name>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Size> Maximum size of the text in px-->
<Size>550</Size>
</Font>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>
<R>0.675</R>
<G>0.890</G>
<B>0.969</B>
<A>0.8</A>
</Color>
<!--<Margin>: Spacing of the text from the borders of the image in px-->
<Margin Default="24">
<Left>24</Left>
</Margin>
<!--<Indent>: Indentation of the text for multiple lines-->
<Indent>100</Indent>
</Text>
<BackgroundColor>
<R>1</R>
<G>1</G>
<B>1</B>
<A>1</A>
</BackgroundColor>
<!--<Image>: Background image for the cover-->
<Image>Normal.png</Image>
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
<ImageAlpha>1.0</ImageAlpha>
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
<ShowFirstCover>True</ShowFirstCover>
</CoverGenerator>
<CoverGenerator Type="Year">
<Text>
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
<Text>%TEXT%</Text>
<Font>
<Name>Normal</Name>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Size> Maximum size of the text in px-->
<Size>550</Size>
</Font>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>
<R>0.675</R>
<G>0.890</G>
<B>0.969</B>
<A>0.8</A>
</Color>
<!--<Margin>: Spacing of the text from the borders of the image in px-->
<Margin Default="24">
<Top>-150</Top>
</Margin>
<!--<Indent>: Indentation of the text for multiple lines-->
<Indent>100</Indent>
</Text>
<BackgroundColor>
<R>1</R>
<G>1</G>
<B>1</B>
<A>1</A>
</BackgroundColor>
<!--<Image>: Background image for the cover-->
<Image>Normal.png</Image>
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
<ImageAlpha>1.0</ImageAlpha>
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
<ShowFirstCover>True</ShowFirstCover>
</CoverGenerator>
<CoverGenerator Type="Artist">
<Text>
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
<Text>%TEXT%</Text>
<Font>
<Name>Normal</Name>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Size> Maximum size of the text in px-->
<Size>550</Size>
</Font>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>
<R>0.675</R>
<G>0.890</G>
<B>0.969</B>
<A>0.8</A>
</Color>
<!--<Margin>: Spacing of the text from the borders of the image in px-->
<Margin Default="24">
<Bottom>150</Bottom>
</Margin>
<!--<Indent>: Indentation of the text for multiple lines-->
<Indent>100</Indent>
</Text>
<BackgroundColor>
<R>1</R>
<G>1</G>
<B>1</B>
<A>1</A>
</BackgroundColor>
<!--<Image>: Background image for the cover-->
<Image>Normal.png</Image>
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
<ImageAlpha>1.0</ImageAlpha>
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
<ShowFirstCover>True</ShowFirstCover>
</CoverGenerator>
<CoverGenerator Type="Date">
<Text>
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
<Text>%TEXT%</Text>
<Font>
<Name>Normal</Name>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Size> Maximum size of the text in px-->
<Size>120</Size>
</Font>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>
<R>0.675</R>
<G>0.890</G>
<B>0.969</B>
<A>0.8</A>
</Color>
<!--<Margin>: Spacing of the text from the borders of the image in px-->
<Margin Default="5">
<Top>-150</Top>
</Margin>
<!--<Indent>: Indentation of the text for multiple lines-->
<Indent>100</Indent>
</Text>
<BackgroundColor>
<R>1</R>
<G>1</G>
<B>1</B>
<A>1</A>
</BackgroundColor>
<!--<Image>: Background image for the cover-->
<Image>Normal.png</Image>
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
<ImageAlpha>1.0</ImageAlpha>
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
<ShowFirstCover>True</ShowFirstCover>
</CoverGenerator>
</root>
Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.
+166
View File
@@ -0,0 +1,166 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<Info>
<Name>Ambient Green</Name>
<Folder>Ambient Green</Folder>
<Author>flokuep</Author>
</Info>
<!--Cover definitions when a category is missing a cover-->
<!--Possible types are: Default, Song, Artist, Letter, Edition, Genre, Language, Year, Decade, Date -->
<CoverGenerator Type="Default">
<Text>
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
<Text>%TEXT%</Text>
<Font>
<Name>Normal</Name>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Size> Maximum size of the text in px-->
<Size>550</Size>
</Font>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>
<R>0.709</R>
<G>0.968</G>
<B>0.674</B>
<A>0.9</A>
</Color>
<!--<Margin>: Spacing of the text from the borders of the image in px-->
<Margin Default="24">
<Left>24</Left>
</Margin>
<!--<Indent>: Indentation of the text for multiple lines-->
<Indent>100</Indent>
</Text>
<BackgroundColor>
<R>1</R>
<G>1</G>
<B>1</B>
<A>1</A>
</BackgroundColor>
<!--<Image>: Background image for the cover-->
<Image>Normal.png</Image>
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
<ImageAlpha>1.0</ImageAlpha>
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
<ShowFirstCover>True</ShowFirstCover>
</CoverGenerator>
<CoverGenerator Type="Year">
<Text>
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
<Text>%TEXT%</Text>
<Font>
<Name>Normal</Name>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Size> Maximum size of the text in px-->
<Size>550</Size>
</Font>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>
<R>0.709</R>
<G>0.968</G>
<B>0.674</B>
<A>0.9</A>
</Color>
<!--<Margin>: Spacing of the text from the borders of the image in px-->
<Margin Default="24">
<Top>-150</Top>
</Margin>
<!--<Indent>: Indentation of the text for multiple lines-->
<Indent>100</Indent>
</Text>
<BackgroundColor>
<R>1</R>
<G>1</G>
<B>1</B>
<A>1</A>
</BackgroundColor>
<!--<Image>: Background image for the cover-->
<Image>Normal.png</Image>
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
<ImageAlpha>1.0</ImageAlpha>
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
<ShowFirstCover>True</ShowFirstCover>
</CoverGenerator>
<CoverGenerator Type="Artist">
<Text>
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
<Text>%TEXT%</Text>
<Font>
<Name>Normal</Name>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Size> Maximum size of the text in px-->
<Size>550</Size>
</Font>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>
<R>0.709</R>
<G>0.968</G>
<B>0.674</B>
<A>0.9</A>
</Color>
<!--<Margin>: Spacing of the text from the borders of the image in px-->
<Margin Default="24">
<Bottom>150</Bottom>
</Margin>
<!--<Indent>: Indentation of the text for multiple lines-->
<Indent>100</Indent>
</Text>
<BackgroundColor>
<R>1</R>
<G>1</G>
<B>1</B>
<A>1</A>
</BackgroundColor>
<!--<Image>: Background image for the cover-->
<Image>Normal.png</Image>
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
<ImageAlpha>1.0</ImageAlpha>
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
<ShowFirstCover>True</ShowFirstCover>
</CoverGenerator>
<CoverGenerator Type="Date">
<Text>
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
<Text>%TEXT%</Text>
<Font>
<Name>Normal</Name>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Size> Maximum size of the text in px-->
<Size>120</Size>
</Font>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>
<R>0.709</R>
<G>0.968</G>
<B>0.674</B>
<A>0.9</A>
</Color>
<!--<Margin>: Spacing of the text from the borders of the image in px-->
<Margin Default="5">
<Top>-150</Top>
</Margin>
<!--<Indent>: Indentation of the text for multiple lines-->
<Indent>100</Indent>
</Text>
<BackgroundColor>
<R>1</R>
<G>1</G>
<B>1</B>
<A>1</A>
</BackgroundColor>
<!--<Image>: Background image for the cover-->
<Image>Normal.png</Image>
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
<ImageAlpha>1.0</ImageAlpha>
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
<ShowFirstCover>True</ShowFirstCover>
</CoverGenerator>
</root>
Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.
+166
View File
@@ -0,0 +1,166 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<Info>
<Name>Ambient Red</Name>
<Folder>Ambient Red</Folder>
<Author>flokuep</Author>
</Info>
<!--Cover definitions when a category is missing a cover-->
<!--Possible types are: Default, Song, Artist, Letter, Edition, Genre, Language, Year, Decade, Date -->
<CoverGenerator Type="Default">
<Text>
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
<Text>%TEXT%</Text>
<Font>
<Name>Normal</Name>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Size> Maximum size of the text in px-->
<Size>550</Size>
</Font>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>
<R>0.968</R>
<G>0.674</G>
<B>0.674</B>
<A>0.9</A>
</Color>
<!--<Margin>: Spacing of the text from the borders of the image in px-->
<Margin Default="24">
<Left>24</Left>
</Margin>
<!--<Indent>: Indentation of the text for multiple lines-->
<Indent>100</Indent>
</Text>
<BackgroundColor>
<R>1</R>
<G>1</G>
<B>1</B>
<A>1</A>
</BackgroundColor>
<!--<Image>: Background image for the cover-->
<Image>Normal.png</Image>
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
<ImageAlpha>1.0</ImageAlpha>
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
<ShowFirstCover>True</ShowFirstCover>
</CoverGenerator>
<CoverGenerator Type="Year">
<Text>
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
<Text>%TEXT%</Text>
<Font>
<Name>Normal</Name>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Size> Maximum size of the text in px-->
<Size>550</Size>
</Font>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>
<R>0.968</R>
<G>0.674</G>
<B>0.674</B>
<A>0.9</A>
</Color>
<!--<Margin>: Spacing of the text from the borders of the image in px-->
<Margin Default="24">
<Top>-150</Top>
</Margin>
<!--<Indent>: Indentation of the text for multiple lines-->
<Indent>100</Indent>
</Text>
<BackgroundColor>
<R>1</R>
<G>1</G>
<B>1</B>
<A>1</A>
</BackgroundColor>
<!--<Image>: Background image for the cover-->
<Image>Normal.png</Image>
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
<ImageAlpha>1.0</ImageAlpha>
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
<ShowFirstCover>True</ShowFirstCover>
</CoverGenerator>
<CoverGenerator Type="Artist">
<Text>
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
<Text>%TEXT%</Text>
<Font>
<Name>Normal</Name>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Size> Maximum size of the text in px-->
<Size>550</Size>
</Font>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>
<R>0.968</R>
<G>0.674</G>
<B>0.674</B>
<A>0.9</A>
</Color>
<!--<Margin>: Spacing of the text from the borders of the image in px-->
<Margin Default="24">
<Bottom>150</Bottom>
</Margin>
<!--<Indent>: Indentation of the text for multiple lines-->
<Indent>100</Indent>
</Text>
<BackgroundColor>
<R>1</R>
<G>1</G>
<B>1</B>
<A>1</A>
</BackgroundColor>
<!--<Image>: Background image for the cover-->
<Image>Normal.png</Image>
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
<ImageAlpha>1.0</ImageAlpha>
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
<ShowFirstCover>True</ShowFirstCover>
</CoverGenerator>
<CoverGenerator Type="Date">
<Text>
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
<Text>%TEXT%</Text>
<Font>
<Name>Normal</Name>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Size> Maximum size of the text in px-->
<Size>120</Size>
</Font>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>
<R>0.968</R>
<G>0.674</G>
<B>0.674</B>
<A>0.9</A>
</Color>
<!--<Margin>: Spacing of the text from the borders of the image in px-->
<Margin Default="5">
<Top>-150</Top>
</Margin>
<!--<Indent>: Indentation of the text for multiple lines-->
<Indent>100</Indent>
</Text>
<BackgroundColor>
<R>1</R>
<G>1</G>
<B>1</B>
<A>1</A>
</BackgroundColor>
<!--<Image>: Background image for the cover-->
<Image>Normal.png</Image>
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
<ImageAlpha>1.0</ImageAlpha>
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
<ShowFirstCover>True</ShowFirstCover>
</CoverGenerator>
</root>
Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.
+166
View File
@@ -0,0 +1,166 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<Info>
<Name>Ambient Yellow</Name>
<Folder>Ambient Yellow</Folder>
<Author>flokuep</Author>
</Info>
<!--Cover definitions when a category is missing a cover-->
<!--Possible types are: Default, Song, Artist, Letter, Edition, Genre, Language, Year, Decade, Date -->
<CoverGenerator Type="Default">
<Text>
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
<Text>%TEXT%</Text>
<Font>
<Name>Normal</Name>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Size> Maximum size of the text in px-->
<Size>550</Size>
</Font>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>
<R>0.968</R>
<G>0.956</G>
<B>0.674</B>
<A>0.9</A>
</Color>
<!--<Margin>: Spacing of the text from the borders of the image in px-->
<Margin Default="24">
<Left>24</Left>
</Margin>
<!--<Indent>: Indentation of the text for multiple lines-->
<Indent>100</Indent>
</Text>
<BackgroundColor>
<R>1</R>
<G>1</G>
<B>1</B>
<A>1</A>
</BackgroundColor>
<!--<Image>: Background image for the cover-->
<Image>Normal.png</Image>
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
<ImageAlpha>1.0</ImageAlpha>
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
<ShowFirstCover>True</ShowFirstCover>
</CoverGenerator>
<CoverGenerator Type="Year">
<Text>
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
<Text>%TEXT%</Text>
<Font>
<Name>Normal</Name>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Size> Maximum size of the text in px-->
<Size>550</Size>
</Font>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>
<R>0.968</R>
<G>0.956</G>
<B>0.674</B>
<A>0.9</A>
</Color>
<!--<Margin>: Spacing of the text from the borders of the image in px-->
<Margin Default="24">
<Top>-150</Top>
</Margin>
<!--<Indent>: Indentation of the text for multiple lines-->
<Indent>100</Indent>
</Text>
<BackgroundColor>
<R>1</R>
<G>1</G>
<B>1</B>
<A>1</A>
</BackgroundColor>
<!--<Image>: Background image for the cover-->
<Image>Normal.png</Image>
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
<ImageAlpha>1.0</ImageAlpha>
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
<ShowFirstCover>True</ShowFirstCover>
</CoverGenerator>
<CoverGenerator Type="Artist">
<Text>
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
<Text>%TEXT%</Text>
<Font>
<Name>Outline</Name>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Size> Maximum size of the text in px-->
<Size>550</Size>
</Font>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>
<R>0.968</R>
<G>0.956</G>
<B>0.674</B>
<A>0.9</A>
</Color>
<!--<Margin>: Spacing of the text from the borders of the image in px-->
<Margin Default="24">
<Bottom>150</Bottom>
</Margin>
<!--<Indent>: Indentation of the text for multiple lines-->
<Indent>100</Indent>
</Text>
<BackgroundColor>
<R>1</R>
<G>1</G>
<B>1</B>
<A>1</A>
</BackgroundColor>
<!--<Image>: Background image for the cover-->
<Image>Normal.png</Image>
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
<ImageAlpha>1.0</ImageAlpha>
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
<ShowFirstCover>True</ShowFirstCover>
</CoverGenerator>
<CoverGenerator Type="Date">
<Text>
<!--<Text>: Text to be shown, %TEXT% will be replaced by the category or song name-->
<Text>%TEXT%</Text>
<Font>
<Name>Normal</Name>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Size> Maximum size of the text in px-->
<Size>120</Size>
</Font>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>
<R>0.968</R>
<G>0.956</G>
<B>0.674</B>
<A>0.9</A>
</Color>
<!--<Margin>: Spacing of the text from the borders of the image in px-->
<Margin Default="5">
<Top>-150</Top>
</Margin>
<!--<Indent>: Indentation of the text for multiple lines-->
<Indent>100</Indent>
</Text>
<BackgroundColor>
<R>1</R>
<G>1</G>
<B>1</B>
<A>1</A>
</BackgroundColor>
<!--<Image>: Background image for the cover-->
<Image>Normal.png</Image>
<!--<ImageAlpha>Alpha value of the image in case the first cover is shown(optional)-->
<ImageAlpha>1.0</ImageAlpha>
<!--<ShowFirstCover>Whether the first cover of a category should be shown(optional)-->
<ShowFirstCover>True</ShowFirstCover>
</CoverGenerator>
</root>
Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.
-234
View File
@@ -1,234 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Info>
<Name>Blue</Name>
<Folder>Blue</Folder>
<Author>flokuep</Author>
</Info>
<Cover>
<Cover1>
<Name>NoCover</Name>
<Path>NoCover.png</Path>
</Cover1>
<Cover2>
<Name>A</Name>
<Path>A.png</Path>
</Cover2>
<Cover3>
<Name>B</Name>
<Path>B.png</Path>
</Cover3>
<Cover4>
<Name>C</Name>
<Path>C.png</Path>
</Cover4>
<Cover5>
<Name>D</Name>
<Path>D.png</Path>
</Cover5>
<Cover6>
<Name>E</Name>
<Path>E.png</Path>
</Cover6>
<Cover7>
<Name>F</Name>
<Path>F.png</Path>
</Cover7>
<Cover8>
<Name>G</Name>
<Path>G.png</Path>
</Cover8>
<Cover9>
<Name>H</Name>
<Path>H.png</Path>
</Cover9>
<Cover10>
<Name>I</Name>
<Path>I.png</Path>
</Cover10>
<Cover11>
<Name>J</Name>
<Path>J.png</Path>
</Cover11>
<Cover12>
<Name>K</Name>
<Path>K.png</Path>
</Cover12>
<Cover13>
<Name>L</Name>
<Path>L.png</Path>
</Cover13>
<Cover14>
<Name>M</Name>
<Path>M.png</Path>
</Cover14>
<Cover15>
<Name>N</Name>
<Path>N.png</Path>
</Cover15>
<Cover16>
<Name>O</Name>
<Path>O.png</Path>
</Cover16>
<Cover17>
<Name>P</Name>
<Path>P.png</Path>
</Cover17>
<Cover18>
<Name>Q</Name>
<Path>Q.png</Path>
</Cover18>
<Cover19>
<Name>R</Name>
<Path>R.png</Path>
</Cover19>
<Cover20>
<Name>S</Name>
<Path>S.png</Path>
</Cover20>
<Cover21>
<Name>T</Name>
<Path>T.png</Path>
</Cover21>
<Cover22>
<Name>U</Name>
<Path>U.png</Path>
</Cover22>
<Cover23>
<Name>V</Name>
<Path>V.png</Path>
</Cover23>
<Cover24>
<Name>W</Name>
<Path>W.png</Path>
</Cover24>
<Cover25>
<Name>X</Name>
<Path>X.png</Path>
</Cover25>
<Cover26>
<Name>Y</Name>
<Path>Y.png</Path>
</Cover26>
<Cover27>
<Name>Z</Name>
<Path>Z.png</Path>
</Cover27>
<Cover28>
<Name>#</Name>
<Path>#.png</Path>
</Cover28>
<Cover29>
<Name>No Year</Name>
<Path>NoYear.png</Path>
</Cover29>
<Cover30>
<Name>Ohne Jahr</Name>
<Path>OhneJahr.png</Path>
</Cover30>
<Cover31>
<Name>1900 - 1909</Name>
<Path>1900er.png</Path>
</Cover31>
<Cover32>
<Name>1910 - 1919</Name>
<Path>1910er.png</Path>
</Cover32>
<Cover33>
<Name>1920 - 1929</Name>
<Path>20er.png</Path>
</Cover33>
<Cover34>
<Name>1930 - 1939</Name>
<Path>30er.png</Path>
</Cover34>
<Cover35>
<Name>1940 - 1949</Name>
<Path>40er.png</Path>
</Cover35>
<Cover36>
<Name>1950 - 1959</Name>
<Path>50er.png</Path>
</Cover36>
<Cover37>
<Name>1960 - 1969</Name>
<Path>60er.png</Path>
</Cover37>
<Cover38>
<Name>1970 - 1979</Name>
<Path>70er.png</Path>
</Cover38>
<Cover39>
<Name>1980 - 1989</Name>
<Path>80er.png</Path>
</Cover39>
<Cover40>
<Name>1990 - 1999</Name>
<Path>90er.png</Path>
</Cover40>
<Cover41>
<Name>2000 - 2009</Name>
<Path>2000er.png</Path>
</Cover41>
<Cover42>
<Name>2010 - 2019</Name>
<Path>2010er.png</Path>
</Cover42>
<Cover43>
<Name>No Language</Name>
<Path>NoLanguage.png</Path>
</Cover43>
<Cover44>
<Name>Ohne Sprache</Name>
<Path>OhneSprache.png</Path>
</Cover44>
<Cover45>
<Name>German</Name>
<Path>German.png</Path>
</Cover45>
<Cover46>
<Name>English</Name>
<Path>English.png</Path>
</Cover46>
<Cover47>
<Name>French</Name>
<Path>French.png</Path>
</Cover47>
<Cover48>
<Name>Italian</Name>
<Path>Italian.png</Path>
</Cover48>
<Cover49>
<Name>Spanish</Name>
<Path>Spanish.png</Path>
</Cover49>
<Cover50>
<Name>Polish</Name>
<Path>Polish.png</Path>
</Cover50>
<Cover51>
<Name>No Edition</Name>
<Path>NoEdition.png</Path>
</Cover51>
<Cover52>
<Name>Ohne Edition</Name>
<Path>OhneEdition.png</Path>
</Cover52>
<Cover53>
<Name>No Genre</Name>
<Path>NoGenre.png</Path>
</Cover53>
<Cover54>
<Name>Ohne Genre</Name>
<Path>OhneGenre.png</Path>
</Cover54>
<Cover55>
<Name>All Songs</Name>
<Path>AllSongs.png</Path>
</Cover55>
<Cover56>
<Name>Alle Songs</Name>
<Path>AlleSongs.png</Path>
</Cover56>
</Cover>
</root>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 260 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 254 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 260 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 239 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 249 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 228 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 251 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 KiB

Loaded 100 of 1097 files, more files were not shown because too many files have changed in this diff. Show more