Compare commits
168
Commits
0.4.0.beta1
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
81c323363a | ||
|
|
1356b61383 | ||
|
|
3806c77d98 | ||
|
|
a6c5766138 | ||
|
|
3bbcb2d56a | ||
|
|
25fd140b3e | ||
|
|
5e481878f5 | ||
|
|
c05f2ab548 | ||
|
|
919ab803d1 | ||
|
|
dd7be5c575 | ||
|
|
546ccf4748 | ||
|
|
d457c6c66f | ||
|
|
cfc6bfa738 | ||
|
|
de80eeb823 | ||
|
|
2bb2819b33 | ||
|
|
c0e2281b74 | ||
|
|
9e8952157a | ||
|
|
e2dcbc2ecf | ||
|
|
4c76c88074 | ||
|
|
890e6d84fb | ||
|
|
cd5ab37afd | ||
|
|
5adde7b9c4 | ||
|
|
61dcfc3aeb | ||
|
|
342123dc4e | ||
|
|
c55f779dba | ||
|
|
675edce193 | ||
|
|
f9e71693ea | ||
|
|
e99f1adfae | ||
|
|
330f755c44 | ||
|
|
4ceac098ab | ||
|
|
9599c1a616 | ||
|
|
5ec3f9a8a7 | ||
|
|
60a6f8d347 | ||
|
|
533a7e64d2 | ||
|
|
2d13c3a834 | ||
|
|
064b5412a6 | ||
|
|
2f4067c374 | ||
|
|
7f3d9c5f41 | ||
|
|
e9abec565d | ||
|
|
5296627f8d | ||
|
|
7fdbd8780b | ||
|
|
feb5c1eaed | ||
|
|
1baed149af | ||
|
|
d7e924b72b | ||
|
|
b8fb0d7549 | ||
|
|
7dbd2363db | ||
|
|
081ca63d85 | ||
|
|
06d6be528a | ||
|
|
ce4529325b | ||
|
|
52f1b8f546 | ||
|
|
79bbcbdccb | ||
|
|
a92353c9a2 | ||
|
|
3e0eec8294 | ||
|
|
ceaa77ffe7 | ||
|
|
c87016c4f8 | ||
|
|
4d754c0876 | ||
|
|
8244fd638b | ||
|
|
85ad6050f8 | ||
|
|
df34766f35 | ||
|
|
ad5ffd7578 | ||
|
|
4784e57370 | ||
|
|
41cf7a5ac2 | ||
|
|
d94868f466 | ||
|
|
01fa98adaf | ||
|
|
7594ea6bad | ||
|
|
6fbe545d32 | ||
|
|
b39db0361e | ||
|
|
2959e82daa | ||
|
|
63e533f456 | ||
|
|
ef20b30d68 | ||
|
|
836aeeba92 | ||
|
|
53f204740e | ||
|
|
a284b0f2b9 | ||
|
|
a2b98e1e47 | ||
|
|
acef61a26e | ||
|
|
0d0789d091 | ||
|
|
dfd5650d2b | ||
|
|
29375e9b80 | ||
|
|
519682e2cb | ||
|
|
8d4718166b | ||
|
|
60a27fbf27 | ||
|
|
6e39633a87 | ||
|
|
1fa744e763 | ||
|
|
1b504482e8 | ||
|
|
57aa36c24e | ||
|
|
e9e9b6c790 | ||
|
|
e8f0a9b4c4 | ||
|
|
9e7d47d39d | ||
|
|
0981d101a3 | ||
|
|
63abc5f7cf | ||
|
|
1b616398a9 | ||
|
|
21d7d3de60 | ||
|
|
ddea7f7cc4 | ||
|
|
e348c33e92 | ||
|
|
e2575e2395 | ||
|
|
9f77b456f1 | ||
|
|
ec038f9fc3 | ||
|
|
7dc2a28af9 | ||
|
|
f69543c5db | ||
|
|
fa51af770e | ||
|
|
cfab637a71 | ||
|
|
0fd01ca59a | ||
|
|
91d8d6d9fd | ||
|
|
9e2ce90de2 | ||
|
|
7231a62a92 | ||
|
|
66a9dc1ce1 | ||
|
|
34ddc1623a | ||
|
|
7ae2e33024 | ||
|
|
f1354b6099 | ||
|
|
6128f0a0f8 | ||
|
|
b8ad13e682 | ||
|
|
6073d68b6e | ||
|
|
ecc8142325 | ||
|
|
16d26cea8a | ||
|
|
71859619f9 | ||
|
|
9ffedef52a | ||
|
|
d1d7f04757 | ||
|
|
1c6c090360 | ||
|
|
90aa0176f6 | ||
|
|
c8bc280e5b | ||
|
|
c5074c187a | ||
|
|
c90c2ae89b | ||
|
|
10c3cebc2e | ||
|
|
a9250559d2 | ||
|
|
45c8eb2e9b | ||
|
|
133de2cf61 | ||
|
|
9738bc513a | ||
|
|
03268ecab4 | ||
|
|
bcc79b77d8 | ||
|
|
8d6ddf6d26 | ||
|
|
90d4b35741 | ||
|
|
f53e6fbe33 | ||
|
|
b33fe92e8a | ||
|
|
220a969ddb | ||
|
|
f59393d343 | ||
|
|
2e6b3880c1 | ||
|
|
badb8bea7d | ||
|
|
5a9141b25c | ||
|
|
152be5d8ad | ||
|
|
afc9172f97 | ||
|
|
b8b8141cfe | ||
|
|
6bb67f218a | ||
|
|
0eb28b1bc9 | ||
|
|
290c4463fa | ||
|
|
ab50362496 | ||
|
|
e2bfdd6877 | ||
|
|
795c8705c4 | ||
|
|
f7c3a317f8 | ||
|
|
7c0b318fe1 | ||
|
|
67dafcc63e | ||
|
|
d7207b1fea | ||
|
|
f743980fb9 | ||
|
|
195df07e5f | ||
|
|
c5ad1a3f95 | ||
|
|
85ef00956a | ||
|
|
c899d9e7e9 | ||
|
|
a75c4101e3 | ||
|
|
2dcf20c8c8 | ||
|
|
f2b0fb7f6a | ||
|
|
9699aaf00c | ||
|
|
2f7d2f98e8 | ||
|
|
e4deacf0b6 | ||
|
|
078687934a | ||
|
|
674a987e2a | ||
|
|
be3d27adfb | ||
|
|
216375ab10 | ||
|
|
f069f9fd9b | ||
|
|
165abd5fe6 |
No files matched your search
@@ -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
|
||||
@@ -7,6 +7,8 @@ else{
|
||||
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';
|
||||
@@ -23,20 +25,26 @@ 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): $($Env:APPVEYOR_REPO_TAG_NAME)"
|
||||
Write-Host "No Release found for this tag ($html): $targetTag"
|
||||
Return;
|
||||
}
|
||||
|
||||
$assetId = ($result.assets | where {$_.name -EQ "Vocaluxe_$($Env:APPVEYOR_REPO_TAG_NAME)_Windows_$($Env:PLATFORM).zip" } | Select-Object -first 1 ).id
|
||||
$releaseId = $result.id
|
||||
|
||||
if(!$assetId){
|
||||
# No matching asset found in this release
|
||||
Write-Host "No matching asset found in this release: Vocaluxe_$($Env:APPVEYOR_REPO_TAG_NAME)_Windows_$($Env:PLATFORM).zip"
|
||||
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/assets/$assetId";
|
||||
Uri = "https://api.github.com/repos/Vocaluxe/Vocaluxe/releases/$releaseId";
|
||||
Method = 'DELETE';
|
||||
Headers = @{
|
||||
Authorization = 'Basic ' + [Convert]::ToBase64String(
|
||||
@@ -45,14 +53,14 @@ $deleteAssetParams = @{
|
||||
}
|
||||
try{
|
||||
$result = Invoke-RestMethod @deleteAssetParams
|
||||
Write-Host "Successfully deleted asset: Vocaluxe_$($Env:APPVEYOR_REPO_TAG_NAME)_Windows_$($Env:PLATFORM).zip"
|
||||
Write-Host "Successfully deleted release for: $targetTag"
|
||||
}
|
||||
catch [System.Net.WebException]
|
||||
{
|
||||
# Could not delete asset
|
||||
# Could not delete release
|
||||
$statusCode = [int]$_.Exception.Response.StatusCode
|
||||
$html = $_.Exception.Response.StatusDescription
|
||||
Write-Host "Could not delete asset ($html): Vocaluxe_$($Env:APPVEYOR_REPO_TAG_NAME)_Windows_$($Env:PLATFORM).zip"
|
||||
Write-Host "Could not delete release ($html) for: $targetTag"
|
||||
Return;
|
||||
}
|
||||
|
||||
Executable → Regular
+1
@@ -4,4 +4,5 @@ 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
|
||||
@@ -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
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"0.0.": "Unversioned Build",
|
||||
"0.1.": "Rising Start",
|
||||
"0.2.": "Sparkling Sky",
|
||||
"0.3.": "Shining Heaven",
|
||||
"0.4.": "Blue Sunrise"
|
||||
}
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
+7
-5
@@ -2,6 +2,7 @@ obj
|
||||
PitchTracker.dll
|
||||
Thumbs.db
|
||||
.transifexrc
|
||||
.vs
|
||||
tx.exe
|
||||
*.mp4
|
||||
*.pdb
|
||||
@@ -30,6 +31,7 @@ tx.exe
|
||||
*.user
|
||||
*.VC.db
|
||||
*.VC.opendb
|
||||
*.dll.config
|
||||
/*.vsp
|
||||
/*.ctl
|
||||
/Output/Config.xml
|
||||
@@ -48,16 +50,16 @@ tx.exe
|
||||
/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/setup-SetupFiles
|
||||
/Installer/vocaluxe-*-setup.exe
|
||||
/Installer/Vocaluxe*.rar
|
||||
/Installer/Prerequisites/GStreamer x64/gstreamer-1.0-x86_64-1.4.1.msi
|
||||
/Installer/Prerequisites/GStreamer x86/gstreamer-1.0-x86-1.4.1.msi
|
||||
/Installer/Files
|
||||
/Installer/log.txt
|
||||
/Installer/setup-cache
|
||||
/Installer/Setup Files
|
||||
/WebserverInitalConfig/bin
|
||||
/PhoneGap/
|
||||
/TestResults
|
||||
|
||||
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -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
|
||||
@@ -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%
|
||||
@@ -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\*"
|
||||
+3865
-847
File diff suppressed because it is too large.
Load diff
@@ -1,55 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="language">Asturianu</string>
|
||||
<string name="TR_PROGRAM_NAME">Vocaluxe</string>
|
||||
<string name="TR_GENERAL_AND">y</string>
|
||||
<string name="TR_BUTTON_EXIT">Colar</string>
|
||||
<string name="TR_BUTTON_SAVE">Atroxar</string>
|
||||
<string name="TR_BUTTON_BACK">Tornar</string>
|
||||
<string name="TR_BUTTON_START">Entamar</string>
|
||||
<string name="TR_DEBUG_TEXTURES">Testures</string>
|
||||
<string name="TR_DEBUG_MAX_VOLUME">Volume máximu</string>
|
||||
<string name="TR_DEBUG_SONGS">Sones cargaes</string>
|
||||
<string name="TR_DEBUG_MOUSE">Mur</string>
|
||||
<string name="TR_GAMEMODE_NORMAL">Normal</string>
|
||||
<string name="TR_GAMEMODE_DUET">Duetu</string>
|
||||
<string name="TR_GAMEMODE_SHORTSONG">Versión curtia</string>
|
||||
<string name="TR_RATING_SUPERSTAR">Super estrella</string>
|
||||
<string name="TR_RATING_LEAD_SINGER">Cantante llider</string>
|
||||
<string name="TR_RATING_RISING_STAR">Estrella n\'ascensu</string>
|
||||
<string name="TR_RATING_HOPEFUL">Esperanzáu</string>
|
||||
<string name="TR_RATING_AMATEUR">Amateur</string>
|
||||
<string name="TR_CONFIG_SOFTWARE">Software</string>
|
||||
<string name="TR_CONFIG_OPENGL">OpenGL</string>
|
||||
<string name="TR_CONFIG_TEXTURE_LOWEST">Lowest</string>
|
||||
<string name="TR_CONFIG_TEXTURE_LOW">Baxo</string>
|
||||
<string name="TR_CONFIG_TEXTURE_MEDIUM">Medio</string>
|
||||
<string name="TR_CONFIG_TEXTURE_HIGH">Alto</string>
|
||||
<string name="TR_CONFIG_TEXTURE_HIGHEST">Llo más alto</string>
|
||||
<string name="TR_CONFIG_OFF">Apagáu</string>
|
||||
<string name="TR_CONFIG_ON">Enceso</string>
|
||||
<string name="TR_CONFIG_ONLY_FPS">Solo FPS</string>
|
||||
<string name="TR_CONFIG_LEVEL1">Nivel 1</string>
|
||||
<string name="TR_CONFIG_LEVEL2">Nivel 2</string>
|
||||
<string name="TR_CONFIG_LEVEL3">NIvel 3</string>
|
||||
<string name="TR_CONFIG_LEVEL_MAX">Max</string>
|
||||
<string name="TR_CONFIG_LIST">Llista</string>
|
||||
<string name="TR_CONFIG_COVERLOADING_ATSTART">Nel aniciu</string>
|
||||
<string name="TR_CONFIG_RANDOM">Al debalu</string>
|
||||
<string name="TR_CONFIG_FOLDER">Carpeta</string>
|
||||
<string name="TR_CONFIG_ARTIST">Artista</string>
|
||||
<string name="TR_CONFIG_ARTIST_LETTER">Lletra l\'artista</string>
|
||||
<string name="TR_CONFIG_TITLE_LETTER">Títulu la lletra</string>
|
||||
<string name="TR_CONFIG_EDITION">Edición</string>
|
||||
<string name="TR_CONFIG_GENRE">Xéneru</string>
|
||||
<string name="TR_CONFIG_YEAR">Añu</string>
|
||||
<string name="TR_CONFIG_DECADE">Década</string>
|
||||
<string name="TR_CONFIG_LANGUAGE">Llingua</string>
|
||||
<string name="TR_CONFIG_EASY">Cenciello</string>
|
||||
<string name="TR_CONFIG_NORMAL">Normal</string>
|
||||
<string name="TR_CONFIG_HARD">Difícil</string>
|
||||
<string name="TR_CONFIG_TIMERMODE_CURRENT">Anguaño</string>
|
||||
<string name="TR_CONFIG_TIMERMODE_REMAINING">Faltante</string>
|
||||
<string name="TR_CONFIG_TIMERMODE_TOTAL">Total</string>
|
||||
<string name="TR_CONFIG_TIMERLOOK_NORMAL">Normal</string>
|
||||
</resources>
|
||||
+29
-14
@@ -1,6 +1,6 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="language"> čeština</string>
|
||||
<string name="language">Čeština</string>
|
||||
<string name="TR_PROGRAM_NAME">Vocaluxe</string>
|
||||
<string name="TR_GENERAL_AND">a</string>
|
||||
<string name="TR_BUTTON_EXIT">Ukončit</string>
|
||||
@@ -11,7 +11,7 @@
|
||||
<string name="TR_DEBUG_VIDEO_STREAMS">Obrazové proudy</string>
|
||||
<string name="TR_DEBUG_TEXTURES">Textury</string>
|
||||
<string name="TR_DEBUG_TONE_ABS">ToneAbs</string>
|
||||
<string name="TR_DEBUG_MAX_VOLUME">Nevětší hlasitost</string>
|
||||
<string name="TR_DEBUG_MAX_VOLUME">Největší hlasitost</string>
|
||||
<string name="TR_DEBUG_SONGS">Nahrané písně</string>
|
||||
<string name="TR_DEBUG_MOUSE">Myš</string>
|
||||
<string name="TR_DEBUG_MEMORY">Využití paměti</string>
|
||||
@@ -28,7 +28,7 @@
|
||||
<string name="TR_RATING_AMATEUR">Amatér</string>
|
||||
<string name="TR_RATING_TONE_DEAF">Neumětel - nemající hudební sluch</string>
|
||||
<string name="TR_USERROLE_GUEST">Host</string>
|
||||
<string name="TR_USERROLE_NORMAL">Obyčejný uživatel</string>
|
||||
<string name="TR_USERROLE_NORMAL">Normální uživatel</string>
|
||||
<string name="TR_USERROLE_ADMIN">Správce</string>
|
||||
<string name="TR_USERROLE_KEYBOARDUSER">Uživatel klávesnice</string>
|
||||
<string name="TR_CONFIG_SOFTWARE">Software</string>
|
||||
@@ -46,6 +46,7 @@
|
||||
<string name="TR_CONFIG_LEVEL2">Úroveň 2</string>
|
||||
<string name="TR_CONFIG_LEVEL3">Úroveň 3</string>
|
||||
<string name="TR_CONFIG_LEVEL_MAX">Nejvíce</string>
|
||||
<string name="TR_CONFIG_LIST">Seznam</string>
|
||||
<string name="TR_CONFIG_DREIDEL">Drejdl (čtyřboká kostka)</string>
|
||||
<string name="TR_CONFIG_TILE_BOARD">Herní deska</string>
|
||||
<string name="TR_CONFIG_BOOK">Kniha</string>
|
||||
@@ -72,6 +73,8 @@
|
||||
<string name="TR_CONFIG_TIMERMODE_TOTAL">Celkem</string>
|
||||
<string name="TR_CONFIG_TIMERLOOK_NORMAL">Normální</string>
|
||||
<string name="TR_CONFIG_TIMERLOOK_EXPANDED">Rozšířené</string>
|
||||
<string name="TR_CONFIG_HIGHSCORE_LIST_ALL">Uvést vše</string>
|
||||
<string name="TR_CONFIG_HIGHSCORE_LIST_BEST">Uvést nejlepší</string>
|
||||
<string name="TR_CONFIG_OWN_MUSIC">Vlastní hudba a hudba na pozadí</string>
|
||||
<string name="TR_CONFIG_NO_OWN_MUSIC">Žádná vlastní hudba</string>
|
||||
<string name="TR_CONFIG_ONLY_OWN_MUSIC">Pouze vlastní hudba</string>
|
||||
@@ -79,6 +82,10 @@
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_ALL">Vše</string>
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_INFO">Pouze jména a zastupující obrázky</string>
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_OFF">Nic</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_FILL">Vyplnit</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_JUMP">Skočit</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_SLIDE">Sklouznout</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_ZOOM">Zvětšení</string>
|
||||
<string name="TR_CONFIG_LYRICSPOSITION_BOTTOM">Dole</string>
|
||||
<string name="TR_CONFIG_LYRICSPOSITION_TOP">Nahoře</string>
|
||||
<string name="TR_CONFIG_LYRICSPOSITION_BOTH">Nahoře a dole</string>
|
||||
@@ -107,12 +114,12 @@
|
||||
<string name="TR_SCREENPARTY_NUMPLAYERS">Počet hráčů</string>
|
||||
<string name="TR_SCREENNAMES_MENU">Výběr hráče</string>
|
||||
<string name="TR_SCREENNAMES_PLAYER">Hráč</string>
|
||||
<string name="TR_SCREENNAMES_1PLAYER">Hráč 1</string>
|
||||
<string name="TR_SCREENNAMES_2PLAYER">Hráč 2</string>
|
||||
<string name="TR_SCREENNAMES_3PLAYER">Hráč 3</string>
|
||||
<string name="TR_SCREENNAMES_4PLAYER">Hráč 4</string>
|
||||
<string name="TR_SCREENNAMES_5PLAYER">Hráč 5</string>
|
||||
<string name="TR_SCREENNAMES_6PLAYER">Hráč 6</string>
|
||||
<string name="TR_SCREENNAMES_1PLAYER">1 hráč</string>
|
||||
<string name="TR_SCREENNAMES_2PLAYER">2 hráči</string>
|
||||
<string name="TR_SCREENNAMES_3PLAYER">3 hráči</string>
|
||||
<string name="TR_SCREENNAMES_4PLAYER">4 hráči</string>
|
||||
<string name="TR_SCREENNAMES_5PLAYER">5 hráčů</string>
|
||||
<string name="TR_SCREENNAMES_6PLAYER">6 hráčů</string>
|
||||
<string name="TR_SCREENNAMES_WARNING_MICS_SG">Varování: Hráči %v není přiřazen žádný mikrofon!</string>
|
||||
<string name="TR_SCREENNAMES_WARNING_MICS_PL">Varování: Hráčům %v nejsou přiřazeny žádné mikrofony!</string>
|
||||
<string name="TR_SCREENNAMES_WARNING_PROFILES_SG">Varování: Hráči %v není přiřazen žádný profil!</string>
|
||||
@@ -162,7 +169,7 @@
|
||||
<string name="TR_SCREENPROFILES_BUTTON_SAVESNAPSHOT">Uložit snímek obrazovky</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_DISCARDSNAPSHOT">Smazat snímek obrazovky</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_WEBCAM">Kamera</string>
|
||||
<string name="TR_SCREENO_OPTIONS">Nastavení nabídky</string>
|
||||
<string name="TR_SCREENO_OPTIONS">Nastavení</string>
|
||||
<string name="TR_SCREENO_BUTTON_GAME">Hra</string>
|
||||
<string name="TR_SCREENO_BUTTON_SOUND">Zvuk</string>
|
||||
<string name="TR_SCREENO_BUTTON_RECORD">Nahrávání</string>
|
||||
@@ -178,9 +185,16 @@
|
||||
<string name="TR_SCREENOGAME_TABS">Karty</string>
|
||||
<string name="TR_SCREENOGAME_DIFFICULTY">Obtížnost hry</string>
|
||||
<string name="TR_SCREENOGAME_TIMERMODE">Režim časomíry</string>
|
||||
<string name="TR_SCREENOGAME_HIGHSCORESTYLE">Styl pro nejlepší výsledky</string>
|
||||
<string name="TR_SCREENORECORD_OPTIONS">Nastavení nahrávání</string>
|
||||
<string name="TR_SCREENORECORD_DEVICE">Zařízení</string>
|
||||
<string name="TR_SCREENORECORD_INPUT">Vstup</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_1">Hráč 1</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_2">Hráč 2</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_3">Hráč 3</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_4">Hráč 4</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_5">Hráč 5</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_6">Hráč 6</string>
|
||||
<string name="TR_SCREENORECORD_MIC_DELAY">Zpoždění mikrofonu</string>
|
||||
<string name="TR_SCREENORECORD_MIC_WARNING">Varování: Alespoň jeden hráčům je přiřazen ke dvěma mikrofonům.</string>
|
||||
<string name="TR_SCREENORECORD_BUTTON_DELAYTEST">Zkouška zpoždění</string>
|
||||
@@ -190,17 +204,18 @@
|
||||
<string name="TR_SCREENOSOUND_BACKGROUNDMUSICSOURCE">Zdroj hudby na pozadí</string>
|
||||
<string name="TR_SCREENOSOUND_PREVIEWMUSICVOLUME">Hlasitost ukázky</string>
|
||||
<string name="TR_SCREENOSOUND_GAMEMUSICVOLUME">Hlasitost hry</string>
|
||||
<string name="TR_SCREENOSOUND_KARAOKEEFFECT">Efekt Karaoke</string>
|
||||
<string name="TR_SCREENOTHEME_OPTIONS">Nastavení tématu</string>
|
||||
<string name="TR_SCREENOTHEME_THEME">Téma</string>
|
||||
<string name="TR_SCREENOTHEME_SKIN">Vzhled</string>
|
||||
<string name="TR_SCREENOTHEME_COVERTHEME">Téma obalu</string>
|
||||
<string name="TR_SCREENOTHEME_NOTELINES">Ukázat notové linky</string>
|
||||
<string name="TR_SCREENOTHEME_TONEHELPER">Ukázat pomocníka s tónem</string>
|
||||
<string name="TR_SCREENOTHEME_TIMERLOOK">Vzhled časomíry</string>
|
||||
<string name="TR_SCREENOTHEME_FADEINFO">Zesílit/Zeslabit informace přehrávače</string>
|
||||
<string name="TR_SCREENOTHEME_TIMERLOOK">Režim časomíry</string>
|
||||
<string name="TR_SCREENOTHEME_FADEINFO">Prolínat informace přehrávače</string>
|
||||
<string name="TR_SCREENOTHEME_COVERLOADING">Chování nahrávání obalu</string>
|
||||
<string name="TR_SCREENOLYRICS_OPTIONS">Nastavení textu písně</string>
|
||||
<string name="TR_SCREENOLYRICS_STYLE">Styl</string>
|
||||
<string name="TR_SCREENOLYRICS_STYLE">Styl animace</string>
|
||||
<string name="TR_SCREENOLYRICS_POSITION">Poloha textu písně</string>
|
||||
<string name="TR_SCREENOVIDEO_OPTIONS">Nastavení obrazu</string>
|
||||
<string name="TR_SCREENOVIDEO_VIDEOBACKGROUNDS">Pozadí obrazu</string>
|
||||
@@ -210,7 +225,7 @@
|
||||
<string name="TR_SCREENOVIDEO_WEBCAMDEVICES">Kamery</string>
|
||||
<string name="TR_SCREENOVIDEO_WEBCAMRESOLUTION">Rozlišení kamery</string>
|
||||
<string name="TR_SCREENOVIDEO_BUTTON_ADJUSTMENTS">Přizpůsobení obrazovky</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTES">Stiskněte Ctrl + Alt (+ Shift) + šipky|\"+\" pro upravení obrazovky</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTES">Stiskněte Ctrl + Alt (+ Shift) + šipky pro upravení obrazovky</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTESRESET">Ctrl + Alt + 0 pro vrácení úprav zpět na výchozí hodnoty</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_TOPLEFT">Nahoře vlevo</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_TOPRIGHT">Nahoře vpravo</string>
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
<string name="TR_CONFIG_LEVEL2">Niveau 2</string>
|
||||
<string name="TR_CONFIG_LEVEL3">Niveau 3</string>
|
||||
<string name="TR_CONFIG_LEVEL_MAX">Max</string>
|
||||
<string name="TR_CONFIG_LIST">Liste</string>
|
||||
<string name="TR_CONFIG_DREIDEL">Dreidel</string>
|
||||
<string name="TR_CONFIG_TILE_BOARD">Tegels</string>
|
||||
<string name="TR_CONFIG_BOOK">Boek</string>
|
||||
@@ -181,6 +182,12 @@
|
||||
<string name="TR_SCREENORECORD_OPTIONS">Opname-opties</string>
|
||||
<string name="TR_SCREENORECORD_DEVICE">Apparaat</string>
|
||||
<string name="TR_SCREENORECORD_INPUT">Input</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_1">Speler 1</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_2">Speler 2</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_3">Speler 3</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_4">Speler 4</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_5">Speler 5</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_6">Speler 6</string>
|
||||
<string name="TR_SCREENORECORD_MIC_DELAY">Microfoonvertraging</string>
|
||||
<string name="TR_SCREENORECORD_MIC_WARNING">Waarschuwing: Ten minste één speler is toegewezen aan twee microfoons.</string>
|
||||
<string name="TR_SCREENORECORD_BUTTON_DELAYTEST">Vertragingstest</string>
|
||||
@@ -210,7 +217,7 @@
|
||||
<string name="TR_SCREENOVIDEO_WEBCAMDEVICES">Webcams</string>
|
||||
<string name="TR_SCREENOVIDEO_WEBCAMRESOLUTION">Webcam resolutie</string>
|
||||
<string name="TR_SCREENOVIDEO_BUTTON_ADJUSTMENTS">Beeldscherm aanpassingen</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTES">Druk Ctrl+ Alt (+ Shift) + pijltjestoetsen|\"+\" om het scherm aan te passen.</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTES">Druk Ctrl+ Alt (+ Shift) + pijltjestoetsen|"+" om het scherm aan te passen.</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTESRESET">Ctrl + Alt + 0 om te herstellen</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_TOPLEFT">Top links</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_TOPRIGHT">Top rechts</string>
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
<string name="TR_SCREENPARTY_DESCRIPTION">Description</string>
|
||||
<string name="TR_SCREENPARTY_AUTHOR">Author</string>
|
||||
<string name="TR_SCREENPARTY_VERSION">Version</string>
|
||||
<string name="TR_SCREENPARTY_ERROR">Can\'t load this party-mode.</string>
|
||||
<string name="TR_SCREENPARTY_ERROR">Can't load this party-mode.</string>
|
||||
<string name="TR_SCREENPARTY_ERROR_MICS">There are no mics configured!</string>
|
||||
<string name="TR_SCREENPARTY_ERROR_MIC_NUM">%d mics are required for this party-mode!</string>
|
||||
<string name="TR_SCREENPARTY_TARGETAUDIENCE">Target audience</string>
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
<string name="TR_CONFIG_LEVEL2">Niveau 2</string>
|
||||
<string name="TR_CONFIG_LEVEL3">Niveau 3</string>
|
||||
<string name="TR_CONFIG_LEVEL_MAX">Max</string>
|
||||
<string name="TR_CONFIG_LIST">Afficher</string>
|
||||
<string name="TR_CONFIG_DREIDEL">Caroussel</string>
|
||||
<string name="TR_CONFIG_TILE_BOARD">Damier</string>
|
||||
<string name="TR_CONFIG_BOOK">Livre</string>
|
||||
@@ -56,7 +57,7 @@
|
||||
<string name="TR_CONFIG_RANDOM">Aléatoire</string>
|
||||
<string name="TR_CONFIG_FOLDER">Dossier</string>
|
||||
<string name="TR_CONFIG_ARTIST">Artiste</string>
|
||||
<string name="TR_CONFIG_ARTIST_LETTER">Initiale d'Artiste</string>
|
||||
<string name="TR_CONFIG_ARTIST_LETTER">Initiale d'Artist</string>
|
||||
<string name="TR_CONFIG_TITLE_LETTER">Initiale de Titre</string>
|
||||
<string name="TR_CONFIG_EDITION">Edition</string>
|
||||
<string name="TR_CONFIG_GENRE">Genre</string>
|
||||
@@ -72,6 +73,8 @@
|
||||
<string name="TR_CONFIG_TIMERMODE_TOTAL">Total</string>
|
||||
<string name="TR_CONFIG_TIMERLOOK_NORMAL">Normal</string>
|
||||
<string name="TR_CONFIG_TIMERLOOK_EXPANDED">Développé</string>
|
||||
<string name="TR_CONFIG_HIGHSCORE_LIST_ALL">Tout afficher</string>
|
||||
<string name="TR_CONFIG_HIGHSCORE_LIST_BEST">Afficher les meilleurs</string>
|
||||
<string name="TR_CONFIG_OWN_MUSIC">Musique personnelle et Musique de fond</string>
|
||||
<string name="TR_CONFIG_NO_OWN_MUSIC">Pas de Musique personnelle</string>
|
||||
<string name="TR_CONFIG_ONLY_OWN_MUSIC">Seulement la Musique personnelle</string>
|
||||
@@ -79,6 +82,10 @@
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_ALL">Tout</string>
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_INFO">Seulement noms et avatars</string>
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_OFF">Rien</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_FILL">Remplir</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_JUMP">Sauter</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_SLIDE">Glisser</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_ZOOM">Zoomer</string>
|
||||
<string name="TR_CONFIG_LYRICSPOSITION_BOTTOM">En bas</string>
|
||||
<string name="TR_CONFIG_LYRICSPOSITION_TOP">En haut</string>
|
||||
<string name="TR_CONFIG_LYRICSPOSITION_BOTH">En haut et en bas</string>
|
||||
@@ -178,9 +185,16 @@
|
||||
<string name="TR_SCREENOGAME_TABS">Dossiers</string>
|
||||
<string name="TR_SCREENOGAME_DIFFICULTY">Difficulté du Jeu</string>
|
||||
<string name="TR_SCREENOGAME_TIMERMODE">Mode du Minuteur</string>
|
||||
<string name="TR_SCREENOGAME_HIGHSCORESTYLE">Style meilleur score</string>
|
||||
<string name="TR_SCREENORECORD_OPTIONS">Options d'Enregistrement</string>
|
||||
<string name="TR_SCREENORECORD_DEVICE">Appareil</string>
|
||||
<string name="TR_SCREENORECORD_INPUT">Entrée</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_1">Joueur 1</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_2">Joueur 2</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_3">Joueur 3</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_4">Joueur 4</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_5">Joueur 5</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_6">Joueur 6</string>
|
||||
<string name="TR_SCREENORECORD_MIC_DELAY">Retard du Micro</string>
|
||||
<string name="TR_SCREENORECORD_MIC_WARNING">Attention: Au moins un des joueurs est assigné à 2 micros.</string>
|
||||
<string name="TR_SCREENORECORD_BUTTON_DELAYTEST">Test du Retard</string>
|
||||
@@ -190,6 +204,7 @@
|
||||
<string name="TR_SCREENOSOUND_BACKGROUNDMUSICSOURCE">Source de la Musique de fond</string>
|
||||
<string name="TR_SCREENOSOUND_PREVIEWMUSICVOLUME">Volume de la Musique de prévisualisation</string>
|
||||
<string name="TR_SCREENOSOUND_GAMEMUSICVOLUME">Volume de la Musique du jeu</string>
|
||||
<string name="TR_SCREENOSOUND_KARAOKEEFFECT">Effet Karaoké</string>
|
||||
<string name="TR_SCREENOTHEME_OPTIONS">Options du Thème</string>
|
||||
<string name="TR_SCREENOTHEME_THEME">Thème</string>
|
||||
<string name="TR_SCREENOTHEME_SKIN">Environnement graphique</string>
|
||||
@@ -209,7 +224,7 @@
|
||||
<string name="TR_SCREENOVIDEO_VIDEOSTOBACKGROUND">Afficher la vidéo de la musique de fond</string>
|
||||
<string name="TR_SCREENOVIDEO_WEBCAMDEVICES">Webcams</string>
|
||||
<string name="TR_SCREENOVIDEO_WEBCAMRESOLUTION">Résolution de la Webcam</string>
|
||||
<string name="TR_SCREENOVIDEO_BUTTON_ADJUSTMENTS">Ajustements de l'écran</string>
|
||||
<string name="TR_SCREENOVIDEO_BUTTON_ADJUSTMENTS">Ajustements de l'écra</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTES">Appuyer sur CTRL + ALT (+ Maj) + Flèches|"+" pour ajuster l'écran</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTESRESET">CTRL + ALT + 0 pour annuler</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_TOPLEFT">Haut gauche</string>
|
||||
|
||||
+39
-31
@@ -11,7 +11,7 @@
|
||||
<string name="TR_DEBUG_VIDEO_STREAMS">Video-Streams</string>
|
||||
<string name="TR_DEBUG_TEXTURES">Textures</string>
|
||||
<string name="TR_DEBUG_TONE_ABS">ToneAbs</string>
|
||||
<string name="TR_DEBUG_MAX_VOLUME">Max. Volume</string>
|
||||
<string name="TR_DEBUG_MAX_VOLUME">Max Lautstärke</string>
|
||||
<string name="TR_DEBUG_SONGS">Geladene Songs</string>
|
||||
<string name="TR_DEBUG_MOUSE">Maus</string>
|
||||
<string name="TR_DEBUG_MEMORY">Speicherverbrauch</string>
|
||||
@@ -30,7 +30,7 @@
|
||||
<string name="TR_USERROLE_GUEST">Gast</string>
|
||||
<string name="TR_USERROLE_NORMAL">Normaler Benutzer</string>
|
||||
<string name="TR_USERROLE_ADMIN">Administrator</string>
|
||||
<string name="TR_USERROLE_KEYBOARDUSER">Tastatur</string>
|
||||
<string name="TR_USERROLE_KEYBOARDUSER">Tastatur Benutzer</string>
|
||||
<string name="TR_CONFIG_SOFTWARE">Software</string>
|
||||
<string name="TR_CONFIG_OPENGL">OpenGL</string>
|
||||
<string name="TR_CONFIG_DIRECT3D">Direct3D</string>
|
||||
@@ -46,19 +46,19 @@
|
||||
<string name="TR_CONFIG_LEVEL2">Level 2</string>
|
||||
<string name="TR_CONFIG_LEVEL3">Level 3</string>
|
||||
<string name="TR_CONFIG_LEVEL_MAX">Maximal</string>
|
||||
<string name="TR_CONFIG_LIST">Song-Liste</string>
|
||||
<string name="TR_CONFIG_LIST">Liste</string>
|
||||
<string name="TR_CONFIG_DREIDEL">Dreidel</string>
|
||||
<string name="TR_CONFIG_TILE_BOARD">TileBoard</string>
|
||||
<string name="TR_CONFIG_TILE_BOARD">Kacheln</string>
|
||||
<string name="TR_CONFIG_BOOK">Book</string>
|
||||
<string name="TR_CONFIG_COVERLOADING_ONDEMAND">Bei Bedarf</string>
|
||||
<string name="TR_CONFIG_COVERLOADING_ATSTART">Bei Programmstart</string>
|
||||
<string name="TR_CONFIG_COVERLOADING_ONDEMAND">Auf Abruf</string>
|
||||
<string name="TR_CONFIG_COVERLOADING_ATSTART">Beim Start</string>
|
||||
<string name="TR_CONFIG_COVERLOADING_DYNAMIC">Dynamisch</string>
|
||||
<string name="TR_CONFIG_NONE">Keine</string>
|
||||
<string name="TR_CONFIG_RANDOM">Zufällig</string>
|
||||
<string name="TR_CONFIG_FOLDER">Ordner</string>
|
||||
<string name="TR_CONFIG_ARTIST">Artist</string>
|
||||
<string name="TR_CONFIG_ARTIST_LETTER">Artist Buchstabe</string>
|
||||
<string name="TR_CONFIG_TITLE_LETTER">Titel Buchstabe</string>
|
||||
<string name="TR_CONFIG_ARTIST_LETTER">Artist-Buchstabe</string>
|
||||
<string name="TR_CONFIG_TITLE_LETTER">Titel-Buchstabe</string>
|
||||
<string name="TR_CONFIG_EDITION">Edition</string>
|
||||
<string name="TR_CONFIG_GENRE">Genre</string>
|
||||
<string name="TR_CONFIG_YEAR">Jahr</string>
|
||||
@@ -73,6 +73,8 @@
|
||||
<string name="TR_CONFIG_TIMERMODE_TOTAL">Gesamt</string>
|
||||
<string name="TR_CONFIG_TIMERLOOK_NORMAL">Normal</string>
|
||||
<string name="TR_CONFIG_TIMERLOOK_EXPANDED">Erweitert</string>
|
||||
<string name="TR_CONFIG_HIGHSCORE_LIST_ALL">Alle auflisten</string>
|
||||
<string name="TR_CONFIG_HIGHSCORE_LIST_BEST">Bester Spieler-Score</string>
|
||||
<string name="TR_CONFIG_OWN_MUSIC">Eigene Musik und Hintergrundmusik</string>
|
||||
<string name="TR_CONFIG_NO_OWN_MUSIC">Keine eigene Musik</string>
|
||||
<string name="TR_CONFIG_ONLY_OWN_MUSIC">Nur eigene Musik</string>
|
||||
@@ -80,6 +82,10 @@
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_ALL">Alle</string>
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_INFO">Nur Namen und Avatar</string>
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_OFF">Keine</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_FILL">Füllen</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_JUMP">Springen</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_SLIDE">Schieben</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_ZOOM">Zoom</string>
|
||||
<string name="TR_CONFIG_LYRICSPOSITION_BOTTOM">Unten</string>
|
||||
<string name="TR_CONFIG_LYRICSPOSITION_TOP">Oben</string>
|
||||
<string name="TR_CONFIG_LYRICSPOSITION_BOTH">Oben und Unten</string>
|
||||
@@ -133,7 +139,7 @@
|
||||
<string name="TR_SCREENSONG_NEWPLAYLIST">Neue Playlist</string>
|
||||
<string name="TR_SCREENSONG_SONGOPTIONS">Lied-Optionen</string>
|
||||
<string name="TR_SCREENSONG_SEARCH">Suche:</string>
|
||||
<string name="TR_SCREENSONG_NOLANGUAGE">Ohne Sprache</string>
|
||||
<string name="TR_SCREENSONG_NOLANGUAGE">Keine Sprache</string>
|
||||
<string name="TR_SCREENSONG_NOYEAR">Ohne Jahr</string>
|
||||
<string name="TR_SCREENSONG_NOGENRE">Ohne Genre</string>
|
||||
<string name="TR_SCREENSONG_NOEDITION">Ohne Edition</string>
|
||||
@@ -152,16 +158,16 @@
|
||||
<string name="TR_SCREENSCORE_OVERALLSCORE">Gesamtpunktzahl</string>
|
||||
<string name="TR_SCREENHIGHSCORE_HIGHSCORE">Highscore</string>
|
||||
<string name="TR_SCREENPROFILES_PROFILES">Profile</string>
|
||||
<string name="TR_SCREENPROFILES_PLAYERNAME">Spieler-Name</string>
|
||||
<string name="TR_SCREENPROFILES_PLAYERNAME">Spielername</string>
|
||||
<string name="TR_SCREENPROFILES_GAMEDIFFICULTY">Schwierigkeit</string>
|
||||
<string name="TR_SCREENPROFILES_AVATAR">Avatar</string>
|
||||
<string name="TR_SCREENPROFILES_USERROLE">Benutzerrolle</string>
|
||||
<string name="TR_SCREENPROFILES_ACTIVE">Aktiv</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_NEW">Neu</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_DELETE">Löschen</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_TAKESNAPSHOT">Snapshot</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_SAVESNAPSHOT">Snapshot speichern</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_DISCARDSNAPSHOT">Snapshot löschen</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_TAKESNAPSHOT">Schnappschuss aufnehmen</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_SAVESNAPSHOT">Schnappschuss speichern</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_DISCARDSNAPSHOT">Schnappschuss löschen</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_WEBCAM">Webcam</string>
|
||||
<string name="TR_SCREENO_OPTIONS">Einstellungen</string>
|
||||
<string name="TR_SCREENO_BUTTON_GAME">Spiel</string>
|
||||
@@ -174,11 +180,12 @@
|
||||
<string name="TR_SCREENOGAME_OPTIONS">Spieleinstellungen</string>
|
||||
<string name="TR_SCREENOGAME_LANGUAGE">Sprache</string>
|
||||
<string name="TR_SCREENOGAME_DEBUGLEVEL">Debug-Level</string>
|
||||
<string name="TR_SCREENOGAME_SONGMENU">Song-Menü</string>
|
||||
<string name="TR_SCREENOGAME_SONGSORTING">Song-Sortierung</string>
|
||||
<string name="TR_SCREENOGAME_SONGMENU">Song-Menu-Stil</string>
|
||||
<string name="TR_SCREENOGAME_SONGSORTING">Sortierung der Lieder</string>
|
||||
<string name="TR_SCREENOGAME_TABS">Kategorieren anzeigen</string>
|
||||
<string name="TR_SCREENOGAME_DIFFICULTY">Schwierigkeit</string>
|
||||
<string name="TR_SCREENOGAME_TIMERMODE">Timer-Modus</string>
|
||||
<string name="TR_SCREENOGAME_TIMERMODE">Zeit-Modus</string>
|
||||
<string name="TR_SCREENOGAME_HIGHSCORESTYLE">Highscore-Stil</string>
|
||||
<string name="TR_SCREENORECORD_OPTIONS">Aufnahmeeinstellungen</string>
|
||||
<string name="TR_SCREENORECORD_DEVICE">Soundkarte</string>
|
||||
<string name="TR_SCREENORECORD_INPUT">Eingang</string>
|
||||
@@ -188,37 +195,38 @@
|
||||
<string name="TR_SCREENORECORD_PLAYER_4">Spieler 4</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_5">Spieler 5</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_6">Spieler 6</string>
|
||||
<string name="TR_SCREENORECORD_MIC_DELAY">Mikrofon-Verzögerung</string>
|
||||
<string name="TR_SCREENORECORD_MIC_DELAY">Mikrofonverzögerung</string>
|
||||
<string name="TR_SCREENORECORD_MIC_WARNING">Warnung: Momentan sind einem Spieler zwei Mikrofone zugeordnet!</string>
|
||||
<string name="TR_SCREENORECORD_BUTTON_DELAYTEST">Verzögerungs-Test</string>
|
||||
<string name="TR_SCREENOSOUND_OPTIONS">Soundeinstellungen</string>
|
||||
<string name="TR_SCREENOSOUND_OPTIONS">Sound Einstellungen</string>
|
||||
<string name="TR_SCREENOSOUND_BACKGROUNDMUSIC">Hintergrundmusik</string>
|
||||
<string name="TR_SCREENOSOUND_BACKGROUNDMUSICVOLUME">Hintergrundmusiklautstärke</string>
|
||||
<string name="TR_SCREENOSOUND_BACKGROUNDMUSICSOURCE">Hintergrundmusikquelle</string>
|
||||
<string name="TR_SCREENOSOUND_PREVIEWMUSICVOLUME">Vorschaulautstärke</string>
|
||||
<string name="TR_SCREENOSOUND_GAMEMUSICVOLUME">Spiellautstärke</string>
|
||||
<string name="TR_SCREENOSOUND_BACKGROUNDMUSICVOLUME">Lautstärke der Hintergrundmusik</string>
|
||||
<string name="TR_SCREENOSOUND_BACKGROUNDMUSICSOURCE">Quelle der Hintergrundmusik</string>
|
||||
<string name="TR_SCREENOSOUND_PREVIEWMUSICVOLUME">Lautstärke der Vorschau</string>
|
||||
<string name="TR_SCREENOSOUND_GAMEMUSICVOLUME">Lautstärke des Spiels</string>
|
||||
<string name="TR_SCREENOSOUND_KARAOKEEFFECT">Karaoke Effekt</string>
|
||||
<string name="TR_SCREENOTHEME_OPTIONS">Designeinstellungen</string>
|
||||
<string name="TR_SCREENOTHEME_THEME">Design</string>
|
||||
<string name="TR_SCREENOTHEME_SKIN">Skin</string>
|
||||
<string name="TR_SCREENOTHEME_COVERTHEME">Cover-Theme</string>
|
||||
<string name="TR_SCREENOTHEME_NOTELINES">Noten-Linien anzeigen</string>
|
||||
<string name="TR_SCREENOTHEME_NOTELINES">Notenlinien anzeigen</string>
|
||||
<string name="TR_SCREENOTHEME_TONEHELPER">Ton-Helfer anzeigen</string>
|
||||
<string name="TR_SCREENOTHEME_TIMERLOOK">Aussehen des Timers</string>
|
||||
<string name="TR_SCREENOTHEME_FADEINFO">Spieler-Infos ein/ausblenden</string>
|
||||
<string name="TR_SCREENOTHEME_COVERLOADING">Cover Ladeverhalten</string>
|
||||
<string name="TR_SCREENOTHEME_TIMERLOOK">Zeitleisten-Modus</string>
|
||||
<string name="TR_SCREENOTHEME_FADEINFO">Spieler-Informationen einblenden</string>
|
||||
<string name="TR_SCREENOTHEME_COVERLOADING">Verhalten beim Laden der Cover</string>
|
||||
<string name="TR_SCREENOLYRICS_OPTIONS">Songtexteinstellungen</string>
|
||||
<string name="TR_SCREENOLYRICS_STYLE">Stil</string>
|
||||
<string name="TR_SCREENOLYRICS_STYLE">Lyrics-Animation</string>
|
||||
<string name="TR_SCREENOLYRICS_POSITION">Lyrics Position</string>
|
||||
<string name="TR_SCREENOVIDEO_OPTIONS">Videoeinstellungen</string>
|
||||
<string name="TR_SCREENOVIDEO_VIDEOBACKGROUNDS">Video-Hintergründe</string>
|
||||
<string name="TR_SCREENOVIDEO_VIDEOPREVIEW">Video-Vorschau</string>
|
||||
<string name="TR_SCREENOVIDEO_VIDEOINSONGS">Videos während des Singens</string>
|
||||
<string name="TR_SCREENOVIDEO_VIDEOSTOBACKGROUND">Zeige Video zur Hintergrundmusik</string>
|
||||
<string name="TR_SCREENOVIDEO_VIDEOSTOBACKGROUND">Aktuelles Hintergrundvideo anzeigen</string>
|
||||
<string name="TR_SCREENOVIDEO_WEBCAMDEVICES">Webcams</string>
|
||||
<string name="TR_SCREENOVIDEO_WEBCAMRESOLUTION">Webcam-Auflösung</string>
|
||||
<string name="TR_SCREENOVIDEO_BUTTON_ADJUSTMENTS">Anzeigeanpassungen</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTES">STRG + ALT (+ SHIFT) + Pfeiltasten oder "+" drücken um den Bildschirm zu justieren.</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTESRESET">STRG + ALT + 0 um die Änderungen zurückzusetzen.</string>
|
||||
<string name="TR_SCREENOVIDEO_BUTTON_ADJUSTMENTS">Bildschirm anpassen</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTES">STRG + ALT (+ UMSCHALT) + Pfeile drücken, um Bildschirm anzupassen</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTESRESET">STRG + ALT + 0 um Einstellungen zurückzusetzen</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_TOPLEFT">Oben links</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_TOPRIGHT">Oben rechts</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_BOTTOMLEFT">Unten links</string>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<string name="TR_DEBUG_VIDEO_STREAMS">Video streams</string>
|
||||
<string name="TR_DEBUG_TEXTURES">Textúrák</string>
|
||||
<string name="TR_DEBUG_TONE_ABS">ToneAbs</string>
|
||||
<string name="TR_DEBUG_MAX_VOLUME">Max Hangerő</string>
|
||||
<string name="TR_DEBUG_MAX_VOLUME">Max hangerő</string>
|
||||
<string name="TR_DEBUG_SONGS">Betöltött dalok</string>
|
||||
<string name="TR_DEBUG_MOUSE">Egér</string>
|
||||
<string name="TR_DEBUG_MEMORY">Memóriahasználat</string>
|
||||
@@ -30,6 +30,7 @@
|
||||
<string name="TR_USERROLE_GUEST">Vendég</string>
|
||||
<string name="TR_USERROLE_NORMAL">Normál felhasználó</string>
|
||||
<string name="TR_USERROLE_ADMIN">Adminisztrátor</string>
|
||||
<string name="TR_USERROLE_KEYBOARDUSER">Billentyűzetkezelő</string>
|
||||
<string name="TR_CONFIG_SOFTWARE">Szoftveres</string>
|
||||
<string name="TR_CONFIG_OPENGL">OpenGL</string>
|
||||
<string name="TR_CONFIG_DIRECT3D">Direct3D</string>
|
||||
@@ -45,18 +46,19 @@
|
||||
<string name="TR_CONFIG_LEVEL2">2. Szint</string>
|
||||
<string name="TR_CONFIG_LEVEL3">3. Szint</string>
|
||||
<string name="TR_CONFIG_LEVEL_MAX">Max</string>
|
||||
<string name="TR_CONFIG_LIST">Lista</string>
|
||||
<string name="TR_CONFIG_DREIDEL">Körhinta</string>
|
||||
<string name="TR_CONFIG_TILE_BOARD">Csempe</string>
|
||||
<string name="TR_CONFIG_TILE_BOARD">Csempék</string>
|
||||
<string name="TR_CONFIG_BOOK">Könyv</string>
|
||||
<string name="TR_CONFIG_COVERLOADING_ONDEMAND">Amikor Szükséges</string>
|
||||
<string name="TR_CONFIG_COVERLOADING_ATSTART">Indulásnál</string>
|
||||
<string name="TR_CONFIG_COVERLOADING_ONDEMAND">Dinamikusan</string>
|
||||
<string name="TR_CONFIG_COVERLOADING_ATSTART">Indításnál</string>
|
||||
<string name="TR_CONFIG_COVERLOADING_DYNAMIC">Dinamikusan</string>
|
||||
<string name="TR_CONFIG_NONE">Nincs</string>
|
||||
<string name="TR_CONFIG_RANDOM">Véletlenszerű</string>
|
||||
<string name="TR_CONFIG_FOLDER">Könyvtár</string>
|
||||
<string name="TR_CONFIG_ARTIST">Előadó</string>
|
||||
<string name="TR_CONFIG_ARTIST_LETTER">Előadó Betűrendben </string>
|
||||
<string name="TR_CONFIG_TITLE_LETTER">Cím Betűrendben</string>
|
||||
<string name="TR_CONFIG_ARTIST_LETTER">Előadó betűrend szerint</string>
|
||||
<string name="TR_CONFIG_TITLE_LETTER">Cím betűrend szerint</string>
|
||||
<string name="TR_CONFIG_EDITION">Kiadás</string>
|
||||
<string name="TR_CONFIG_GENRE">Műfaj</string>
|
||||
<string name="TR_CONFIG_YEAR">Év</string>
|
||||
@@ -71,13 +73,17 @@
|
||||
<string name="TR_CONFIG_TIMERMODE_TOTAL">Összes</string>
|
||||
<string name="TR_CONFIG_TIMERLOOK_NORMAL">Normál</string>
|
||||
<string name="TR_CONFIG_TIMERLOOK_EXPANDED">Kibővített</string>
|
||||
<string name="TR_CONFIG_OWN_MUSIC">Saját és Háttérzene</string>
|
||||
<string name="TR_CONFIG_NO_OWN_MUSIC">Nincs Saját Zene</string>
|
||||
<string name="TR_CONFIG_ONLY_OWN_MUSIC">Csak Saját zene</string>
|
||||
<string name="TR_CONFIG_OWN_MUSIC">Saját- és háttérzene</string>
|
||||
<string name="TR_CONFIG_NO_OWN_MUSIC">Saját zenét ne</string>
|
||||
<string name="TR_CONFIG_ONLY_OWN_MUSIC">Csak saját zenét</string>
|
||||
<string name="TR_CONFIG_ONLY_SONG">Csak a kiválasztott dal</string>
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_ALL">Mindent</string>
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_INFO">Csak Nevek és Profilképek</string>
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_OFF">Semmit</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_FILL">Kiszínezés</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_JUMP">Ugrás</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_SLIDE">Csúsztatás</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_ZOOM">Nagyítás</string>
|
||||
<string name="TR_CONFIG_LYRICSPOSITION_BOTTOM">Alul</string>
|
||||
<string name="TR_CONFIG_LYRICSPOSITION_TOP">Felül</string>
|
||||
<string name="TR_CONFIG_LYRICSPOSITION_BOTH">Felül és alul</string>
|
||||
@@ -88,55 +94,56 @@
|
||||
<string name="TR_SCREENLOAD_LOADED">betöltve</string>
|
||||
<string name="TR_SCREENMAIN_MENU">Főmenü</string>
|
||||
<string name="TR_SCREENMAIN_BUTTON_SING">Éneklés</string>
|
||||
<string name="TR_SCREENMAIN_BUTTON_PARTY">Buli</string>
|
||||
<string name="TR_SCREENMAIN_BUTTON_PARTY">Parti</string>
|
||||
<string name="TR_SCREENMAIN_BUTTON_OPTIONS">Beállítások</string>
|
||||
<string name="TR_SCREENMAIN_BUTTON_PROFILES">Profilok</string>
|
||||
<string name="TR_SCREENMAIN_TEXT_NOPROFILES">Nincsenek profilok! </string>
|
||||
<string name="TR_SCREENPARTY_TITLE">Parti Mód Választás</string>
|
||||
<string name="TR_SCREENPARTY_TITLE">Parti mód választás</string>
|
||||
<string name="TR_SCREENPARTY_MODES">Parti Mód</string>
|
||||
<string name="TR_SCREENPARTY_DESCRIPTION">Leírás</string>
|
||||
<string name="TR_SCREENPARTY_AUTHOR">Készítő</string>
|
||||
<string name="TR_SCREENPARTY_VERSION">Verzió</string>
|
||||
<string name="TR_SCREENPARTY_ERROR">Nem Betölthető Parti Mód.</string>
|
||||
<string name="TR_SCREENPARTY_ERROR_MICS">Nincs mikrofon beállítva! </string>
|
||||
<string name="TR_SCREENPARTY_ERROR_MIC_NUM">%d mikrofon szükséges ehhez a parti-módhoz</string>
|
||||
<string name="TR_SCREENPARTY_TARGETAUDIENCE">Célközönség</string>
|
||||
<string name="TR_SCREENPARTY_NOTEAMS">Csapatok Nélkül</string>
|
||||
<string name="TR_SCREENPARTY_NUMTEAMS">Csapatok Száma</string>
|
||||
<string name="TR_SCREENPARTY_NUMPLAYERS">Játékosok Száma</string>
|
||||
<string name="TR_SCREENNAMES_MENU">Játékos Választás</string>
|
||||
<string name="TR_SCREENNAMES_PLAYER">Játékos</string>
|
||||
<string name="TR_SCREENNAMES_1PLAYER">Játékos 1</string>
|
||||
<string name="TR_SCREENNAMES_2PLAYER">Játékos 2</string>
|
||||
<string name="TR_SCREENNAMES_3PLAYER">Játékos 3</string>
|
||||
<string name="TR_SCREENNAMES_4PLAYER">Játékos 4</string>
|
||||
<string name="TR_SCREENNAMES_5PLAYER">Játékos 5</string>
|
||||
<string name="TR_SCREENNAMES_6PLAYER">Játékos 6</string>
|
||||
<string name="TR_SCREENNAMES_1PLAYER">1 játékos</string>
|
||||
<string name="TR_SCREENNAMES_2PLAYER">2 játékos</string>
|
||||
<string name="TR_SCREENNAMES_3PLAYER">3 játékos</string>
|
||||
<string name="TR_SCREENNAMES_4PLAYER">4 játékos</string>
|
||||
<string name="TR_SCREENNAMES_5PLAYER">5 játékos</string>
|
||||
<string name="TR_SCREENNAMES_6PLAYER">6 játékos</string>
|
||||
<string name="TR_SCREENNAMES_WARNING_MICS_SG">Figyelem: Nincs mikrofon csatlakoztatva a következő játékoshoz %v!</string>
|
||||
<string name="TR_SCREENNAMES_WARNING_MICS_PL">Figyelem: Nincsenek mikrofonok csatlakoztatva a következő játékosokhoz %v!</string>
|
||||
<string name="TR_SCREENNAMES_WARNING_PROFILES_SG">Figyelem: Nincs profil hozzárendelve a következő játékoshoz %v!</string>
|
||||
<string name="TR_SCREENNAMES_WARNING_PROFILES_PL">Figyelem: Nincsenek profilok hozzárendelve a következő játékosokhoz %v!</string>
|
||||
<string name="TR_SCREENSONG_MENU">Dalválasztás</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_SING">Éneklés</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_PLAYLIST">Listához Hozzáadás</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_PLAYLIST">Hozzáadás a lejátszási listához</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_CANCEL">Bezárás</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_RANDOM">Véletlenszerű Dal Kiválasztása</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_RANDOMCAT">Véletlenszerű Kategória Kiválasztása </string>
|
||||
<string name="TR_SCREENSONG_BUTTON_SINGALL">Összes Dal Éneklése</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_SINGALL">Minden dal éneklése</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_SINGALLVISIBLE">Itt látható Dalok Éneklése</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_OPENPLAYLIST">Lista Megnyitása</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_OPENPLAYLIST">Lejátszási lista megnyitása</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_OPEN_SELECTED_ITEM">Kiválaszt</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_RANDOMMEDLEY">Véletlenszerű Dalrészlet Éneklése</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_STARTMEDLEY">Dalrészletek Éneklése</string>
|
||||
<string name="TR_SCREENSONG_NEWPLAYLIST">Új Lista</string>
|
||||
<string name="TR_SCREENSONG_NEWPLAYLIST">Új lejátszási lista</string>
|
||||
<string name="TR_SCREENSONG_SONGOPTIONS">Dalbeállítások</string>
|
||||
<string name="TR_SCREENSONG_SEARCH">Keresés:</string>
|
||||
<string name="TR_SCREENSONG_NOLANGUAGE">Nincs Nyelv</string>
|
||||
<string name="TR_SCREENSONG_NOLANGUAGE">Nincs nyelv</string>
|
||||
<string name="TR_SCREENSONG_NOYEAR">Nincs Év</string>
|
||||
<string name="TR_SCREENSONG_NOGENRE">Nincs Műfaj</string>
|
||||
<string name="TR_SCREENSONG_NOEDITION">Nincs Kiadás</string>
|
||||
<string name="TR_SCREENSONG_ALLSONGS">Minden Dal</string>
|
||||
<string name="TR_SCREENSONG_NUMSONGS">(%v Dal)</string>
|
||||
<string name="TR_SCREENSONG_NUMSONG">(%v Dal)</string>
|
||||
<string name="TR_SCREENSONG_NUMSONGS">(%v dal)</string>
|
||||
<string name="TR_SCREENSONG_NUMSONG">(%v dal)</string>
|
||||
<string name="TR_SCREENSONG_ARTIST_TITLE">%a - %t</string>
|
||||
<string name="TR_SCREENSING_PAUSE">Szünet</string>
|
||||
<string name="TR_SCREENSING_BUTTON_CANCEL">Befejezés</string>
|
||||
@@ -149,18 +156,18 @@
|
||||
<string name="TR_SCREENSCORE_OVERALLSCORE">Összpontszám</string>
|
||||
<string name="TR_SCREENHIGHSCORE_HIGHSCORE">Eredménylista</string>
|
||||
<string name="TR_SCREENPROFILES_PROFILES">Profilok</string>
|
||||
<string name="TR_SCREENPROFILES_PLAYERNAME">Játékos Neve</string>
|
||||
<string name="TR_SCREENPROFILES_GAMEDIFFICULTY">Nehézségi Szint</string>
|
||||
<string name="TR_SCREENPROFILES_PLAYERNAME">Játékos neve</string>
|
||||
<string name="TR_SCREENPROFILES_GAMEDIFFICULTY">Nehézségi szint</string>
|
||||
<string name="TR_SCREENPROFILES_AVATAR">Profilkép</string>
|
||||
<string name="TR_SCREENPROFILES_USERROLE">Szerepkor</string>
|
||||
<string name="TR_SCREENPROFILES_USERROLE">Szerepkör</string>
|
||||
<string name="TR_SCREENPROFILES_ACTIVE">Jelenlegi</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_NEW">Új</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_DELETE">Törlés</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_TAKESNAPSHOT">Pillanatkép Készítése</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_SAVESNAPSHOT">Pillanatkép Mentése</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_DISCARDSNAPSHOT">Pillanatkép Törlése</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_TAKESNAPSHOT">Pillanatkép készítése</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_SAVESNAPSHOT">Pillanatkép mentése</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_DISCARDSNAPSHOT">Pillanatkép törlése</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_WEBCAM">Webkamera</string>
|
||||
<string name="TR_SCREENO_OPTIONS">Menü Beállítások</string>
|
||||
<string name="TR_SCREENO_OPTIONS">Beállítások</string>
|
||||
<string name="TR_SCREENO_BUTTON_GAME">Játék</string>
|
||||
<string name="TR_SCREENO_BUTTON_SOUND">Hang</string>
|
||||
<string name="TR_SCREENO_BUTTON_RECORD">Mikrofon</string>
|
||||
@@ -170,44 +177,51 @@
|
||||
<string name="TR_SCREENOGAME_BUTTON_SERVER">Szerver címe</string>
|
||||
<string name="TR_SCREENOGAME_OPTIONS">Játék Beállítások</string>
|
||||
<string name="TR_SCREENOGAME_LANGUAGE">Nyelv</string>
|
||||
<string name="TR_SCREENOGAME_DEBUGLEVEL">Debug Level</string>
|
||||
<string name="TR_SCREENOGAME_SONGMENU">Dal Menü</string>
|
||||
<string name="TR_SCREENOGAME_SONGSORTING">Dalok Rendezése</string>
|
||||
<string name="TR_SCREENOGAME_DEBUGLEVEL">Hibakeresési mód</string>
|
||||
<string name="TR_SCREENOGAME_SONGMENU">Dalválasztó stílusa</string>
|
||||
<string name="TR_SCREENOGAME_SONGSORTING">Dalok rendezése</string>
|
||||
<string name="TR_SCREENOGAME_TABS">Rendezés</string>
|
||||
<string name="TR_SCREENOGAME_DIFFICULTY">Játék Nehézsége</string>
|
||||
<string name="TR_SCREENOGAME_TIMERMODE">Idő Mutatás</string>
|
||||
<string name="TR_SCREENOGAME_DIFFICULTY">Nehézségi szint</string>
|
||||
<string name="TR_SCREENOGAME_TIMERMODE">Idő mutatása</string>
|
||||
<string name="TR_SCREENORECORD_OPTIONS">Mikrofon Beállítások</string>
|
||||
<string name="TR_SCREENORECORD_DEVICE">Eszköz</string>
|
||||
<string name="TR_SCREENORECORD_INPUT">Bemenet</string>
|
||||
<string name="TR_SCREENORECORD_MIC_DELAY">Mikrofon Késleltetés</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_1">1. játékos</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_2">2. játékos</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_3">3. játékos</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_4">4. játékos</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_5">5. játékos</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_6">6. játékos</string>
|
||||
<string name="TR_SCREENORECORD_MIC_DELAY">Mikrofon késleltetés</string>
|
||||
<string name="TR_SCREENORECORD_MIC_WARNING">Figyelem: Egy játékos két mikrofont használ.</string>
|
||||
<string name="TR_SCREENORECORD_BUTTON_DELAYTEST">Késleltetés Tesztelése</string>
|
||||
<string name="TR_SCREENORECORD_BUTTON_DELAYTEST">Késleltetés tesztelése</string>
|
||||
<string name="TR_SCREENOSOUND_OPTIONS">Hang Beállítások</string>
|
||||
<string name="TR_SCREENOSOUND_BACKGROUNDMUSIC">Háttérzene</string>
|
||||
<string name="TR_SCREENOSOUND_BACKGROUNDMUSICVOLUME">Háttérzene Hangereje</string>
|
||||
<string name="TR_SCREENOSOUND_BACKGROUNDMUSICSOURCE">Háttérzene Forrása</string>
|
||||
<string name="TR_SCREENOSOUND_PREVIEWMUSICVOLUME">Előnézeti Zene Hangereje</string>
|
||||
<string name="TR_SCREENOSOUND_GAMEMUSICVOLUME">Zene Hangereje</string>
|
||||
<string name="TR_SCREENOSOUND_BACKGROUNDMUSICVOLUME">Háttérzene hangereje</string>
|
||||
<string name="TR_SCREENOSOUND_BACKGROUNDMUSICSOURCE">Háttérzene forrása</string>
|
||||
<string name="TR_SCREENOSOUND_PREVIEWMUSICVOLUME">Előlnézeti zene hangereje</string>
|
||||
<string name="TR_SCREENOSOUND_GAMEMUSICVOLUME">Játékbeli zene hangereje</string>
|
||||
<string name="TR_SCREENOTHEME_OPTIONS">Téma Beállítások</string>
|
||||
<string name="TR_SCREENOTHEME_THEME">Téma</string>
|
||||
<string name="TR_SCREENOTHEME_SKIN">Kinézet</string>
|
||||
<string name="TR_SCREENOTHEME_COVERTHEME">Borító Téma</string>
|
||||
<string name="TR_SCREENOTHEME_NOTELINES">Kotta Mutatása</string>
|
||||
<string name="TR_SCREENOTHEME_TONEHELPER">Hangmagasság Segítő Mutatása</string>
|
||||
<string name="TR_SCREENOTHEME_TIMERLOOK">Idősáv Nézete</string>
|
||||
<string name="TR_SCREENOTHEME_FADEINFO">Játékos Infó Halványan</string>
|
||||
<string name="TR_SCREENOTHEME_COVERLOADING">Borító Betöltés</string>
|
||||
<string name="TR_SCREENOTHEME_COVERTHEME">Borító téma</string>
|
||||
<string name="TR_SCREENOTHEME_NOTELINES">Kottavonalak mutatása</string>
|
||||
<string name="TR_SCREENOTHEME_TONEHELPER">Hangmagasság-segítő mutatása</string>
|
||||
<string name="TR_SCREENOTHEME_TIMERLOOK">Idősáv</string>
|
||||
<string name="TR_SCREENOTHEME_FADEINFO">Játékos infó halványítása</string>
|
||||
<string name="TR_SCREENOTHEME_COVERLOADING">Borító betöltés</string>
|
||||
<string name="TR_SCREENOLYRICS_OPTIONS">Dalszöveg Beállítások</string>
|
||||
<string name="TR_SCREENOLYRICS_STYLE">Stílus</string>
|
||||
<string name="TR_SCREENOLYRICS_STYLE">Animációs stílus</string>
|
||||
<string name="TR_SCREENOLYRICS_POSITION">Dalszöveg helyzete</string>
|
||||
<string name="TR_SCREENOVIDEO_OPTIONS">Képi Beállítások</string>
|
||||
<string name="TR_SCREENOVIDEO_VIDEOBACKGROUNDS">Animált Háttér</string>
|
||||
<string name="TR_SCREENOVIDEO_VIDEOPREVIEW">Videó Előnézet</string>
|
||||
<string name="TR_SCREENOVIDEO_VIDEOBACKGROUNDS">Videóháttér</string>
|
||||
<string name="TR_SCREENOVIDEO_VIDEOPREVIEW">Videó előnézet</string>
|
||||
<string name="TR_SCREENOVIDEO_VIDEOINSONGS">Videó Éneklés Közben</string>
|
||||
<string name="TR_SCREENOVIDEO_VIDEOSTOBACKGROUND">Jelenlegi Háttérzene Videó Mutatása</string>
|
||||
<string name="TR_SCREENOVIDEO_VIDEOSTOBACKGROUND">Jelenlegi háttérzene videójának mutatása</string>
|
||||
<string name="TR_SCREENOVIDEO_WEBCAMDEVICES">Webkamerák</string>
|
||||
<string name="TR_SCREENOVIDEO_WEBCAMRESOLUTION">Webkamera-felbontás</string>
|
||||
<string name="TR_SCREENOVIDEO_BUTTON_ADJUSTMENTS">Képernyő pozicionálás</string>
|
||||
<string name="TR_SCREENOVIDEO_WEBCAMRESOLUTION">Webkamera felbontása</string>
|
||||
<string name="TR_SCREENOVIDEO_BUTTON_ADJUSTMENTS">Képernyő pozícionálás</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTES">Pozícionálás: CTRL + ALT (+SHIFT) + Nyilak</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTESRESET">Visszaállítás: CTRL + ALT + 0</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_TOPLEFT">Bal felső</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_TOPRIGHT">Jobb felső</string>
|
||||
|
||||
@@ -46,12 +46,12 @@
|
||||
<string name="TR_CONFIG_LEVEL2">Livello 2</string>
|
||||
<string name="TR_CONFIG_LEVEL3">Livello 3</string>
|
||||
<string name="TR_CONFIG_LEVEL_MAX">Max</string>
|
||||
<string name="TR_CONFIG_LIST">Lista canzoni</string>
|
||||
<string name="TR_CONFIG_LIST">Elenco</string>
|
||||
<string name="TR_CONFIG_DREIDEL">Dreidel</string>
|
||||
<string name="TR_CONFIG_TILE_BOARD">Scacchiera</string>
|
||||
<string name="TR_CONFIG_BOOK">Libro</string>
|
||||
<string name="TR_CONFIG_COVERLOADING_ONDEMAND">Su richiesta</string>
|
||||
<string name="TR_CONFIG_COVERLOADING_ATSTART">All\'avvio</string>
|
||||
<string name="TR_CONFIG_COVERLOADING_ATSTART">All'avvio</string>
|
||||
<string name="TR_CONFIG_COVERLOADING_DYNAMIC">Dinamico</string>
|
||||
<string name="TR_CONFIG_NONE">Nessuno</string>
|
||||
<string name="TR_CONFIG_RANDOM">Casuale</string>
|
||||
@@ -73,6 +73,8 @@
|
||||
<string name="TR_CONFIG_TIMERMODE_TOTAL">Totale</string>
|
||||
<string name="TR_CONFIG_TIMERLOOK_NORMAL">Normale</string>
|
||||
<string name="TR_CONFIG_TIMERLOOK_EXPANDED">Espanso</string>
|
||||
<string name="TR_CONFIG_HIGHSCORE_LIST_ALL">Elenco tutti</string>
|
||||
<string name="TR_CONFIG_HIGHSCORE_LIST_BEST">Elenco migliori</string>
|
||||
<string name="TR_CONFIG_OWN_MUSIC">Musica personale e musica di sfondo</string>
|
||||
<string name="TR_CONFIG_NO_OWN_MUSIC">Nessuna musica personale</string>
|
||||
<string name="TR_CONFIG_ONLY_OWN_MUSIC">Solo musica personale</string>
|
||||
@@ -80,6 +82,9 @@
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_ALL">Tutto</string>
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_INFO">Solo nomi e avatar</string>
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_OFF">Niente</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_FILL">Riempi</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_JUMP">Salta</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_ZOOM">Zoom</string>
|
||||
<string name="TR_CONFIG_LYRICSPOSITION_BOTTOM">Sotto</string>
|
||||
<string name="TR_CONFIG_LYRICSPOSITION_TOP">Sopra</string>
|
||||
<string name="TR_CONFIG_LYRICSPOSITION_BOTH">Sopra e sotto</string>
|
||||
@@ -114,10 +119,10 @@
|
||||
<string name="TR_SCREENNAMES_4PLAYER">4 giocatori</string>
|
||||
<string name="TR_SCREENNAMES_5PLAYER">5 giocatori</string>
|
||||
<string name="TR_SCREENNAMES_6PLAYER">6 giocatori</string>
|
||||
<string name="TR_SCREENNAMES_WARNING_MICS_SG">Attenzione: Non c\'è nessun microfono assegnato al giocatore %v!</string>
|
||||
<string name="TR_SCREENNAMES_WARNING_MICS_PL">Attenzione: Non c\'è nessun microfono assegnato ai giocatori %v!</string>
|
||||
<string name="TR_SCREENNAMES_WARNING_PROFILES_SG">Attenzione: Non c\'è nessun profilo assegnato al giocatore %v!</string>
|
||||
<string name="TR_SCREENNAMES_WARNING_PROFILES_PL">Attenzione: Non c\'è nessun profilo assegnato ai giocatori %v!</string>
|
||||
<string name="TR_SCREENNAMES_WARNING_MICS_SG">Attenzione: Non c'è nessun microfono assegnato al giocatore %v!</string>
|
||||
<string name="TR_SCREENNAMES_WARNING_MICS_PL">Attenzione: Non c'è nessun microfono assegnato ai giocatori %v!</string>
|
||||
<string name="TR_SCREENNAMES_WARNING_PROFILES_SG">Attenzione: Non c'è nessun profilo assegnato al giocatore %v!</string>
|
||||
<string name="TR_SCREENNAMES_WARNING_PROFILES_PL">Attenzione: Non c'è nessun profilo assegnato ai giocatori %v!</string>
|
||||
<string name="TR_SCREENSONG_MENU">Selezione canzone</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_SING">Canta</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_PLAYLIST">Aggiungi alla playlist</string>
|
||||
@@ -182,6 +187,12 @@
|
||||
<string name="TR_SCREENORECORD_OPTIONS">Opzioni registrazione</string>
|
||||
<string name="TR_SCREENORECORD_DEVICE">Dispositivo</string>
|
||||
<string name="TR_SCREENORECORD_INPUT">Input</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_1">Giocatore 1</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_2">Giocatore 2</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_3">Giocatore 3</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_4">Giocatore 4</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_5">Giocatore 5</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_6">Giocatore 6</string>
|
||||
<string name="TR_SCREENORECORD_MIC_DELAY">Ritardo microfono</string>
|
||||
<string name="TR_SCREENORECORD_MIC_WARNING">Attenzione: Ad un giocatore sono assegnati due microfoni.</string>
|
||||
<string name="TR_SCREENORECORD_BUTTON_DELAYTEST">Test ritardo</string>
|
||||
@@ -191,6 +202,7 @@
|
||||
<string name="TR_SCREENOSOUND_BACKGROUNDMUSICSOURCE">Sorgente musica di sfondo</string>
|
||||
<string name="TR_SCREENOSOUND_PREVIEWMUSICVOLUME">Anteprima volume musica</string>
|
||||
<string name="TR_SCREENOSOUND_GAMEMUSICVOLUME">Volume musica di gioco</string>
|
||||
<string name="TR_SCREENOSOUND_KARAOKEEFFECT">Effetto karaoke</string>
|
||||
<string name="TR_SCREENOTHEME_OPTIONS">Opzioni tema</string>
|
||||
<string name="TR_SCREENOTHEME_THEME">Tema</string>
|
||||
<string name="TR_SCREENOTHEME_SKIN">Skin</string>
|
||||
@@ -211,7 +223,7 @@
|
||||
<string name="TR_SCREENOVIDEO_WEBCAMDEVICES">Webcam</string>
|
||||
<string name="TR_SCREENOVIDEO_WEBCAMRESOLUTION">Risoluzione-Webcam</string>
|
||||
<string name="TR_SCREENOVIDEO_BUTTON_ADJUSTMENTS">Sistemazione schermo</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTES">Premi CTR + ALT (+ SHIFT) + Freccia|\"+\" per sistemare lo schermo</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTES">Premi CTR + ALT (+ SHIFT) + Freccia|"+ per sistemare lo schermo</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTESRESET">CTR + ALT + 0 per ripristinare</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_TOPLEFT">Sopra a sinistra</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_TOPRIGHT">Sopra a destra</string>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="language">Português</string>
|
||||
<string name="language">Inglês</string>
|
||||
<string name="TR_PROGRAM_NAME">Vocaluxe</string>
|
||||
<string name="TR_GENERAL_AND">e</string>
|
||||
<string name="TR_BUTTON_EXIT">Sair</string>
|
||||
@@ -11,7 +11,7 @@
|
||||
<string name="TR_DEBUG_VIDEO_STREAMS">Stream de Video</string>
|
||||
<string name="TR_DEBUG_TEXTURES">Texturas</string>
|
||||
<string name="TR_DEBUG_TONE_ABS">Abdominais </string>
|
||||
<string name="TR_DEBUG_MAX_VOLUME">Volume Máximo </string>
|
||||
<string name="TR_DEBUG_MAX_VOLUME">Volume Máximo</string>
|
||||
<string name="TR_DEBUG_SONGS">Músicas carregadas</string>
|
||||
<string name="TR_DEBUG_MOUSE">Rato</string>
|
||||
<string name="TR_DEBUG_MEMORY">Utilização da Memória</string>
|
||||
@@ -48,17 +48,17 @@
|
||||
<string name="TR_CONFIG_LEVEL_MAX">Máximo</string>
|
||||
<string name="TR_CONFIG_LIST">Lista</string>
|
||||
<string name="TR_CONFIG_DREIDEL">Contra-Relógio </string>
|
||||
<string name="TR_CONFIG_TILE_BOARD">Painel de Titulo </string>
|
||||
<string name="TR_CONFIG_TILE_BOARD">Painel de Titulo</string>
|
||||
<string name="TR_CONFIG_BOOK">Livro</string>
|
||||
<string name="TR_CONFIG_COVERLOADING_ONDEMAND">A pedido</string>
|
||||
<string name="TR_CONFIG_COVERLOADING_ATSTART">No início </string>
|
||||
<string name="TR_CONFIG_COVERLOADING_ATSTART">No início</string>
|
||||
<string name="TR_CONFIG_COVERLOADING_DYNAMIC">Dinâmico</string>
|
||||
<string name="TR_CONFIG_NONE">Nenhum</string>
|
||||
<string name="TR_CONFIG_RANDOM">Aleatório</string>
|
||||
<string name="TR_CONFIG_FOLDER">Pasta</string>
|
||||
<string name="TR_CONFIG_ARTIST">Artista</string>
|
||||
<string name="TR_CONFIG_ARTIST_LETTER">Letra do Artista</string>
|
||||
<string name="TR_CONFIG_TITLE_LETTER">Letras do Titulo </string>
|
||||
<string name="TR_CONFIG_TITLE_LETTER">Letras do Titulo</string>
|
||||
<string name="TR_CONFIG_EDITION">Edição</string>
|
||||
<string name="TR_CONFIG_GENRE">Género</string>
|
||||
<string name="TR_CONFIG_YEAR">Ano</string>
|
||||
@@ -74,8 +74,8 @@
|
||||
<string name="TR_CONFIG_TIMERLOOK_NORMAL">Normal</string>
|
||||
<string name="TR_CONFIG_TIMERLOOK_EXPANDED">Expandida</string>
|
||||
<string name="TR_CONFIG_OWN_MUSIC">Apenas musica e musica de fundo</string>
|
||||
<string name="TR_CONFIG_NO_OWN_MUSIC">Não utilizar música própria </string>
|
||||
<string name="TR_CONFIG_ONLY_OWN_MUSIC">Apenas música própria </string>
|
||||
<string name="TR_CONFIG_NO_OWN_MUSIC">Não utilizar música própria</string>
|
||||
<string name="TR_CONFIG_ONLY_OWN_MUSIC">Apenas música própria</string>
|
||||
<string name="TR_CONFIG_ONLY_SONG">Apenas a musica seleccionada</string>
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_ALL">Todas</string>
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_INFO">Apenas nomes e avatares</string>
|
||||
@@ -133,7 +133,7 @@
|
||||
<string name="TR_SCREENSONG_NEWPLAYLIST">Nova Lista de Reprodução</string>
|
||||
<string name="TR_SCREENSONG_SONGOPTIONS">Opções da Música</string>
|
||||
<string name="TR_SCREENSONG_SEARCH">Procura:</string>
|
||||
<string name="TR_SCREENSONG_NOLANGUAGE">Sem Lingua </string>
|
||||
<string name="TR_SCREENSONG_NOLANGUAGE">Sem Lingua</string>
|
||||
<string name="TR_SCREENSONG_NOYEAR">Sem Ano</string>
|
||||
<string name="TR_SCREENSONG_NOGENRE">Sem Género </string>
|
||||
<string name="TR_SCREENSONG_NOEDITION">Sem Edição </string>
|
||||
@@ -159,11 +159,11 @@
|
||||
<string name="TR_SCREENPROFILES_ACTIVE">Activa</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_NEW">Nova</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_DELETE">Eliminar</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_TAKESNAPSHOT">Tirar Fotografia </string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_TAKESNAPSHOT">Tirar Fotografia</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_SAVESNAPSHOT">Gravar Fotografia</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_DISCARDSNAPSHOT">Eliminar Fotografia</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_WEBCAM">Câmara Web </string>
|
||||
<string name="TR_SCREENO_OPTIONS">Opções do Menu </string>
|
||||
<string name="TR_SCREENO_OPTIONS">Opções do Menu</string>
|
||||
<string name="TR_SCREENO_BUTTON_GAME">Jogo</string>
|
||||
<string name="TR_SCREENO_BUTTON_SOUND">Som </string>
|
||||
<string name="TR_SCREENO_BUTTON_RECORD">Gravar</string>
|
||||
@@ -175,20 +175,24 @@
|
||||
<string name="TR_SCREENOGAME_LANGUAGE">Língua</string>
|
||||
<string name="TR_SCREENOGAME_DEBUGLEVEL">Nível de Debug</string>
|
||||
<string name="TR_SCREENOGAME_SONGMENU">Menu das Músicas</string>
|
||||
<string name="TR_SCREENOGAME_SONGSORTING">Ordenação das Musicas </string>
|
||||
<string name="TR_SCREENOGAME_SONGSORTING">Ordenação das Musicas</string>
|
||||
<string name="TR_SCREENOGAME_TABS">Separadores </string>
|
||||
<string name="TR_SCREENOGAME_DIFFICULTY">Dificildade do Jogo</string>
|
||||
<string name="TR_SCREENOGAME_TIMERMODE">Modo Temporizado</string>
|
||||
<string name="TR_SCREENORECORD_OPTIONS">Opções de Gravação</string>
|
||||
<string name="TR_SCREENORECORD_DEVICE">Dispositivo </string>
|
||||
<string name="TR_SCREENORECORD_INPUT">Entrada</string>
|
||||
<string name="TR_SCREENORECORD_CHANNEL_1">Canal 1</string>
|
||||
<string name="TR_SCREENORECORD_CHANNEL_2">Canal 2</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_1">Jogador 1</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_2">Jogador 2</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_3">Jogador 3</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_4">Jogador 4</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_5">Jogador 5</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_6">Jogador 6</string>
|
||||
<string name="TR_SCREENORECORD_MIC_DELAY">Latência do Microfone</string>
|
||||
<string name="TR_SCREENORECORD_MIC_WARNING">Atenção: Pelo menos um jogador tem dois microfones atribuídos </string>
|
||||
<string name="TR_SCREENORECORD_BUTTON_DELAYTEST">Teste de Latência</string>
|
||||
<string name="TR_SCREENOSOUND_OPTIONS">Opções de Som</string>
|
||||
<string name="TR_SCREENOSOUND_BACKGROUNDMUSIC">Música de Fundo </string>
|
||||
<string name="TR_SCREENOSOUND_BACKGROUNDMUSIC">Música de Fundo</string>
|
||||
<string name="TR_SCREENOSOUND_BACKGROUNDMUSICVOLUME">Volume da Música de Fundo</string>
|
||||
<string name="TR_SCREENOSOUND_BACKGROUNDMUSICSOURCE">Origem da Música de Fundo</string>
|
||||
<string name="TR_SCREENOSOUND_PREVIEWMUSICVOLUME">Prévisualizar Volume da Música</string>
|
||||
@@ -200,7 +204,7 @@
|
||||
<string name="TR_SCREENOTHEME_NOTELINES">Mostrar Linhas das Notas</string>
|
||||
<string name="TR_SCREENOTHEME_TONEHELPER">Mostrar Ajuda de Afinação</string>
|
||||
<string name="TR_SCREENOTHEME_TIMERLOOK">Aspecto do Cronómetro</string>
|
||||
<string name="TR_SCREENOTHEME_FADEINFO">Desvanecer informação do jogado </string>
|
||||
<string name="TR_SCREENOTHEME_FADEINFO">Desvanecer informação do jogado</string>
|
||||
<string name="TR_SCREENOTHEME_COVERLOADING">Comportamento do Carregamento das Capas</string>
|
||||
<string name="TR_SCREENOLYRICS_OPTIONS">Opções das Letras das Músicas</string>
|
||||
<string name="TR_SCREENOLYRICS_STYLE">Estilo</string>
|
||||
@@ -213,7 +217,7 @@
|
||||
<string name="TR_SCREENOVIDEO_WEBCAMDEVICES">Camaras Web</string>
|
||||
<string name="TR_SCREENOVIDEO_WEBCAMRESOLUTION">Resolução da Câmara Web</string>
|
||||
<string name="TR_SCREENOVIDEO_BUTTON_ADJUSTMENTS">Ajustes do Ecrã </string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTES">Prima CTR + ALT (+ SHIFT) + Setas|\"+\" para ajustar o ecrã</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTES">Prima CTR + ALT (+ SHIFT) + Setas|"+" para ajustar o ecrã</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTESRESET">CTR + ALT + 0 para reiniciar</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_TOPLEFT">Superior Esquerdo</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_TOPRIGHT">Superior Direito</string>
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
<string name="TR_CONFIG_LEVEL2">Nivel 2</string>
|
||||
<string name="TR_CONFIG_LEVEL3">Nivel 3</string>
|
||||
<string name="TR_CONFIG_LEVEL_MAX">Máx</string>
|
||||
<string name="TR_CONFIG_LIST">Listado</string>
|
||||
<string name="TR_CONFIG_DREIDEL">Dreidel</string>
|
||||
<string name="TR_CONFIG_TILE_BOARD">Cuadrícula</string>
|
||||
<string name="TR_CONFIG_BOOK">Libro</string>
|
||||
@@ -72,6 +73,8 @@
|
||||
<string name="TR_CONFIG_TIMERMODE_TOTAL">Total</string>
|
||||
<string name="TR_CONFIG_TIMERLOOK_NORMAL">Normal</string>
|
||||
<string name="TR_CONFIG_TIMERLOOK_EXPANDED">Expandido</string>
|
||||
<string name="TR_CONFIG_HIGHSCORE_LIST_ALL">Ver todo</string>
|
||||
<string name="TR_CONFIG_HIGHSCORE_LIST_BEST">Mejores puntuaciones</string>
|
||||
<string name="TR_CONFIG_OWN_MUSIC">Canciones del juego y tema Vocaluxe</string>
|
||||
<string name="TR_CONFIG_NO_OWN_MUSIC">Sin canciones del juego</string>
|
||||
<string name="TR_CONFIG_ONLY_OWN_MUSIC">Solo canciones del juego</string>
|
||||
@@ -79,6 +82,10 @@
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_ALL">Todas</string>
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_INFO">Solo nombres y avatares</string>
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_OFF">Nada</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_FILL">Rellenar</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_JUMP">Saltar</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_SLIDE">Deslizar</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_ZOOM">Zoom</string>
|
||||
<string name="TR_CONFIG_LYRICSPOSITION_BOTTOM">Abajo</string>
|
||||
<string name="TR_CONFIG_LYRICSPOSITION_TOP">Arriba</string>
|
||||
<string name="TR_CONFIG_LYRICSPOSITION_BOTH">Arriba y abajo</string>
|
||||
@@ -89,48 +96,48 @@
|
||||
<string name="TR_SCREENLOAD_LOADED">cargadas</string>
|
||||
<string name="TR_SCREENMAIN_MENU">Menú Principal</string>
|
||||
<string name="TR_SCREENMAIN_BUTTON_SING">Cantar</string>
|
||||
<string name="TR_SCREENMAIN_BUTTON_PARTY">TODO: Party</string>
|
||||
<string name="TR_SCREENMAIN_BUTTON_PARTY">Fiesta</string>
|
||||
<string name="TR_SCREENMAIN_BUTTON_OPTIONS">Opciones</string>
|
||||
<string name="TR_SCREENMAIN_BUTTON_PROFILES">Perfiles</string>
|
||||
<string name="TR_SCREENMAIN_TEXT_NOPROFILES">¡No se encuentra perfil!</string>
|
||||
<string name="TR_SCREENPARTY_TITLE">TODO: Party Mode Selection</string>
|
||||
<string name="TR_SCREENPARTY_MODES">TODO: Party Mode</string>
|
||||
<string name="TR_SCREENPARTY_DESCRIPTION">TODO: Description</string>
|
||||
<string name="TR_SCREENPARTY_AUTHOR">TODO: Author</string>
|
||||
<string name="TR_SCREENPARTY_VERSION">TODO: Version</string>
|
||||
<string name="TR_SCREENPARTY_ERROR">TODO: Can\'t load this party-mode.</string>
|
||||
<string name="TR_SCREENPARTY_TITLE">Selección del modo fiesta</string>
|
||||
<string name="TR_SCREENPARTY_MODES">Modo fiesta</string>
|
||||
<string name="TR_SCREENPARTY_DESCRIPTION">Descripción</string>
|
||||
<string name="TR_SCREENPARTY_AUTHOR">Autor</string>
|
||||
<string name="TR_SCREENPARTY_VERSION">Versión</string>
|
||||
<string name="TR_SCREENPARTY_ERROR">No se puede cargar este modo de fiesta</string>
|
||||
<string name="TR_SCREENPARTY_ERROR_MICS">¡No hay micrófonos configurados!</string>
|
||||
<string name="TR_SCREENPARTY_ERROR_MIC_NUM">¡Se necesitan %d micrófonos para este modo fiesta!</string>
|
||||
<string name="TR_SCREENPARTY_TARGETAUDIENCE">TODO: Target audience</string>
|
||||
<string name="TR_SCREENPARTY_NOTEAMS">TODO: No Teams</string>
|
||||
<string name="TR_SCREENPARTY_NUMTEAMS">TODO: Number of teams</string>
|
||||
<string name="TR_SCREENPARTY_NUMPLAYERS">TODO: Number of players</string>
|
||||
<string name="TR_SCREENPARTY_TARGETAUDIENCE">Audiencia objetiva</string>
|
||||
<string name="TR_SCREENPARTY_NOTEAMS">No hay equipos</string>
|
||||
<string name="TR_SCREENPARTY_NUMTEAMS">Número de equipos</string>
|
||||
<string name="TR_SCREENPARTY_NUMPLAYERS">Número de jugadores</string>
|
||||
<string name="TR_SCREENNAMES_MENU">Selección de Jugadores</string>
|
||||
<string name="TR_SCREENNAMES_PLAYER">Jugador</string>
|
||||
<string name="TR_SCREENNAMES_1PLAYER">Jugador 1</string>
|
||||
<string name="TR_SCREENNAMES_2PLAYER">Jugador 2</string>
|
||||
<string name="TR_SCREENNAMES_3PLAYER">Jugador 3</string>
|
||||
<string name="TR_SCREENNAMES_4PLAYER">Jugador 4</string>
|
||||
<string name="TR_SCREENNAMES_5PLAYER">Jugador 5</string>
|
||||
<string name="TR_SCREENNAMES_6PLAYER">Jugador 6</string>
|
||||
<string name="TR_SCREENNAMES_1PLAYER">1 Jugador</string>
|
||||
<string name="TR_SCREENNAMES_2PLAYER">2 Jugadores</string>
|
||||
<string name="TR_SCREENNAMES_3PLAYER">3 Jugadores</string>
|
||||
<string name="TR_SCREENNAMES_4PLAYER">4 Jugadores</string>
|
||||
<string name="TR_SCREENNAMES_5PLAYER">5 Jugadores</string>
|
||||
<string name="TR_SCREENNAMES_6PLAYER">6 Jugadores</string>
|
||||
<string name="TR_SCREENNAMES_WARNING_MICS_SG">Advertencia: ¡No hay micrófonos asignados al jugador %v!</string>
|
||||
<string name="TR_SCREENNAMES_WARNING_MICS_PL">Advertencia: ¡No hay micrófonos asignados a los jugadores %v!</string>
|
||||
<string name="TR_SCREENNAMES_WARNING_PROFILES_SG">Advertencia: ¡No hay perfil asignados al jugador %v!</string>
|
||||
<string name="TR_SCREENNAMES_WARNING_PROFILES_PL">Advertencia: ¡No hay perfiles asignados a los jugadores %v!</string>
|
||||
<string name="TR_SCREENSONG_MENU">Selección de Canciones</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_SING">TODO: Sing</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_PLAYLIST">TODO: Add to playlist</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_CANCEL">TODO: Close</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_RANDOM">TODO: Select a random song</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_RANDOMCAT">TODO: Select a random category</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_SINGALL">TODO: Sing all songs</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_SINGALLVISIBLE">TODO: Sing all visible songs</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_OPENPLAYLIST">TODO: Open playlist</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_SING">Cantar</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_PLAYLIST">Añadir a lista de reproducción</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_CANCEL">Cerrar</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_RANDOM">Seleccionar una canción aleatoriamente</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_RANDOMCAT">Seleccionar una categoria aleatoriamente</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_SINGALL">Cantar todas las canciones</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_SINGALLVISIBLE">Cantar todas las canciones visibles</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_OPENPLAYLIST">Abrir lista de reproducción</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_OPEN_SELECTED_ITEM">Seleccionar</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_RANDOMMEDLEY">TODO: Sing a random medley</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_STARTMEDLEY">TODO: Sing medley-songs</string>
|
||||
<string name="TR_SCREENSONG_NEWPLAYLIST">TODO: New Playlist</string>
|
||||
<string name="TR_SCREENSONG_SONGOPTIONS">TODO: Song Options</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_RANDOMMEDLEY">Cantar una versión corta de canción aleatoria</string>
|
||||
<string name="TR_SCREENSONG_BUTTON_STARTMEDLEY">Cantar versión corta de canción</string>
|
||||
<string name="TR_SCREENSONG_NEWPLAYLIST">Nueva lista de reproducción</string>
|
||||
<string name="TR_SCREENSONG_SONGOPTIONS">Opciones de canción</string>
|
||||
<string name="TR_SCREENSONG_SEARCH">Buscar:</string>
|
||||
<string name="TR_SCREENSONG_NOLANGUAGE">Sin Idioma</string>
|
||||
<string name="TR_SCREENSONG_NOYEAR">Sin Año</string>
|
||||
@@ -178,9 +185,16 @@
|
||||
<string name="TR_SCREENOGAME_TABS">Etiquetas</string>
|
||||
<string name="TR_SCREENOGAME_DIFFICULTY">Dificultad del Juego</string>
|
||||
<string name="TR_SCREENOGAME_TIMERMODE">Modo del Timer</string>
|
||||
<string name="TR_SCREENOGAME_HIGHSCORESTYLE">Estilo de puntuación máxima</string>
|
||||
<string name="TR_SCREENORECORD_OPTIONS">Opciones de Grabación</string>
|
||||
<string name="TR_SCREENORECORD_DEVICE">Dispositivo</string>
|
||||
<string name="TR_SCREENORECORD_INPUT">Entrada</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_1">Jugador 1</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_2">Jugador 2</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_3">Jugador 3</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_4">Jugador 4</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_5">Jugador 5</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_6">Jugador 6</string>
|
||||
<string name="TR_SCREENORECORD_MIC_DELAY">Retraso del Micrófono</string>
|
||||
<string name="TR_SCREENORECORD_MIC_WARNING">Advertencia: Al menos un jugador ha sido asignado a dos micrófonos.</string>
|
||||
<string name="TR_SCREENORECORD_BUTTON_DELAYTEST">Prueba de Retraso</string>
|
||||
@@ -190,13 +204,14 @@
|
||||
<string name="TR_SCREENOSOUND_BACKGROUNDMUSICSOURCE">Origen de la Música de Fondo</string>
|
||||
<string name="TR_SCREENOSOUND_PREVIEWMUSICVOLUME">Volumen de la música de la vista previa</string>
|
||||
<string name="TR_SCREENOSOUND_GAMEMUSICVOLUME">Volumen de la música del juego</string>
|
||||
<string name="TR_SCREENOSOUND_KARAOKEEFFECT">Efecto karaoke</string>
|
||||
<string name="TR_SCREENOTHEME_OPTIONS">Opciones de Estilo</string>
|
||||
<string name="TR_SCREENOTHEME_THEME">Estilo</string>
|
||||
<string name="TR_SCREENOTHEME_SKIN">Skin</string>
|
||||
<string name="TR_SCREENOTHEME_COVERTHEME">Estilo de Carátulas</string>
|
||||
<string name="TR_SCREENOTHEME_NOTELINES">Mostrar Líneas de las Notas</string>
|
||||
<string name="TR_SCREENOTHEME_TONEHELPER">Mostrar Guía de Tonos</string>
|
||||
<string name="TR_SCREENOTHEME_TIMERLOOK">Aspecto del Timer</string>
|
||||
<string name="TR_SCREENOTHEME_TIMERLOOK">Aspecto del Time</string>
|
||||
<string name="TR_SCREENOTHEME_FADEINFO">Desvanecer información del jugador</string>
|
||||
<string name="TR_SCREENOTHEME_COVERLOADING">Comportamiento de la Carga de Carátulas</string>
|
||||
<string name="TR_SCREENOLYRICS_OPTIONS">Opciones de la letra</string>
|
||||
@@ -208,9 +223,9 @@
|
||||
<string name="TR_SCREENOVIDEO_VIDEOINSONGS">Videos al Cantar</string>
|
||||
<string name="TR_SCREENOVIDEO_VIDEOSTOBACKGROUND">Mostrar el vídeo de fondo actual</string>
|
||||
<string name="TR_SCREENOVIDEO_WEBCAMDEVICES">Cámaras web</string>
|
||||
<string name="TR_SCREENOVIDEO_WEBCAMRESOLUTION">Resolución cámara web</string>
|
||||
<string name="TR_SCREENOVIDEO_WEBCAMRESOLUTION">Cámaras web</string>
|
||||
<string name="TR_SCREENOVIDEO_BUTTON_ADJUSTMENTS">Ajustes de pantalla</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTES">Presione CTRL + ALT (+ SHIFT) + Flechas|\"+\" para ajustar la pantalla</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTES">Presione CTRL + ALT (+ SHIFT) + Flechas|"+" para ajustar la pantalla</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_NOTESRESET">CTRL + ALT + SHIFT + 0 para reiniciar</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_TOPLEFT">Arriba izquierda</string>
|
||||
<string name="TR_SCREENOVIDEOADJUSTMENTS_TOPRIGHT">Abajo derecha</string>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<string name="TR_DEBUG_VIDEO_STREAMS">Videoströmmar</string>
|
||||
<string name="TR_DEBUG_TEXTURES">Texturer</string>
|
||||
<string name="TR_DEBUG_TONE_ABS">ToneAbs</string>
|
||||
<string name="TR_DEBUG_MAX_VOLUME">Max Volym</string>
|
||||
<string name="TR_DEBUG_MAX_VOLUME">Maxvolym</string>
|
||||
<string name="TR_DEBUG_SONGS">Laddade låtar</string>
|
||||
<string name="TR_DEBUG_MOUSE">Mus</string>
|
||||
<string name="TR_DEBUG_MEMORY">Minnesanvändning</string>
|
||||
@@ -79,8 +79,8 @@
|
||||
<string name="TR_CONFIG_NO_OWN_MUSIC">Ingen egen musik</string>
|
||||
<string name="TR_CONFIG_ONLY_OWN_MUSIC">Endast egen musik</string>
|
||||
<string name="TR_CONFIG_ONLY_SONG">Endast vald låt</string>
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_ALL">Alla</string>
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_INFO">Endast namn och avatarer</string>
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_ALL">Allt</string>
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_INFO">Endast namn och profilbilder</string>
|
||||
<string name="TR_CONFIG_FADEPLAYERINFO_OFF">Ingenting</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_FILL">Fyll</string>
|
||||
<string name="TR_CONFIG_LYRICSTYLE_JUMP">Hoppa</string>
|
||||
@@ -165,9 +165,9 @@
|
||||
<string name="TR_SCREENPROFILES_ACTIVE">Aktiv</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_NEW">Ny</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_DELETE">Radera</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_TAKESNAPSHOT">Ta ögonblicksbild</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_SAVESNAPSHOT">Spara ögonblicksbild</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_DISCARDSNAPSHOT">Radera ögonblicksbild</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_TAKESNAPSHOT">Ta bild</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_SAVESNAPSHOT">Spara bild</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_DISCARDSNAPSHOT">Radera bild</string>
|
||||
<string name="TR_SCREENPROFILES_BUTTON_WEBCAM">Webbkamera</string>
|
||||
<string name="TR_SCREENO_OPTIONS">Alternativ</string>
|
||||
<string name="TR_SCREENO_BUTTON_GAME">Spel</string>
|
||||
@@ -185,7 +185,7 @@
|
||||
<string name="TR_SCREENOGAME_TABS">Flikar</string>
|
||||
<string name="TR_SCREENOGAME_DIFFICULTY">Spelets svårighetsgrad</string>
|
||||
<string name="TR_SCREENOGAME_TIMERMODE">Timerläge</string>
|
||||
<string name="TR_SCREENOGAME_HIGHSCORESTYLE">Topplistestil</string>
|
||||
<string name="TR_SCREENOGAME_HIGHSCORESTYLE">Topplistsvy</string>
|
||||
<string name="TR_SCREENORECORD_OPTIONS">Inspelningsalternativ</string>
|
||||
<string name="TR_SCREENORECORD_DEVICE">Enhet</string>
|
||||
<string name="TR_SCREENORECORD_INPUT">Ingång</string>
|
||||
@@ -204,6 +204,7 @@
|
||||
<string name="TR_SCREENOSOUND_BACKGROUNDMUSICSOURCE">Källa för bakgrundsmusik</string>
|
||||
<string name="TR_SCREENOSOUND_PREVIEWMUSICVOLUME">Volym på förhandsvisning</string>
|
||||
<string name="TR_SCREENOSOUND_GAMEMUSICVOLUME">Volym på musik under spel</string>
|
||||
<string name="TR_SCREENOSOUND_KARAOKEEFFECT">Karaokeeffekt</string>
|
||||
<string name="TR_SCREENOTHEME_OPTIONS">Temaalternativ</string>
|
||||
<string name="TR_SCREENOTHEME_THEME">Tema</string>
|
||||
<string name="TR_SCREENOTHEME_SKIN">Skal</string>
|
||||
|
||||
@@ -124,6 +124,7 @@
|
||||
<string name="TR_SCREENSONG_ALLSONGS">Tüm Şarkılar</string>
|
||||
<string name="TR_SCREENSONG_NUMSONGS">(%v Şarkıları)</string>
|
||||
<string name="TR_SCREENSONG_NUMSONG">(%v Şarkısı)</string>
|
||||
<string name="TR_SCREENSONG_ARTIST_TITLE">%a - %t</string>
|
||||
<string name="TR_SCREENSING_PAUSE">Duraklat</string>
|
||||
<string name="TR_SCREENSING_BUTTON_CANCEL">Şarkı söylemeyi durdur</string>
|
||||
<string name="TR_SCREENSING_BUTTON_CONTINUE">Devam et</string>
|
||||
@@ -163,7 +164,12 @@
|
||||
<string name="TR_SCREENORECORD_OPTIONS">Kaydetme Seçenekleri</string>
|
||||
<string name="TR_SCREENORECORD_DEVICE">Aygıt</string>
|
||||
<string name="TR_SCREENORECORD_INPUT">Giriş</string>
|
||||
<string name="TR_SCREENORECORD_MIC_DELAY">Mikrofon Gecikmesi</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_1">Oyuncu 1</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_2">Oyuncu 2</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_3">Oyuncu 3</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_4">Oyuncu 4</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_5">Oyuncu 5</string>
|
||||
<string name="TR_SCREENORECORD_PLAYER_6">Oyuncu 6</string>
|
||||
<string name="TR_SCREENORECORD_MIC_WARNING">Uyarı: Tek oyuncuya iki mikrofon atandı.</string>
|
||||
<string name="TR_SCREENORECORD_BUTTON_DELAYTEST">Gecikme Testi</string>
|
||||
<string name="TR_SCREENOSOUND_OPTIONS">Ses Seçenekleri</string>
|
||||
@@ -187,5 +193,6 @@
|
||||
<string name="TR_SCREENOVIDEO_VIDEOBACKGROUNDS">Video Arka Planları</string>
|
||||
<string name="TR_SCREENOVIDEO_VIDEOPREVIEW">Video Önizleme</string>
|
||||
<string name="TR_SCREENOVIDEO_VIDEOINSONGS">Şarkı Söylerken Videoları Gösterme</string>
|
||||
<string name="TR_SCREENOVIDEO_VIDEOSTOBACKGROUND">Şarkı Söylerken Videoları Gösterme</string>
|
||||
<string name="TR_SCREENPVOLUMECONTROL_VOLUME">Ses</string>
|
||||
</resources>
|
||||
@@ -25,5 +25,5 @@
|
||||
<string name="TR_SCREENMAIN_TABLE_GAMEPOINTS">Puntuación</string>
|
||||
<string name="TR_SCREENMAIN_POPUP_REALLYEXIT">¿De xuru quies colar?</string>
|
||||
<string name="TR_SCREENMAIN_NEXT_PLAYER">Xugador de la ronda siguiente:</string>
|
||||
<string name="TR_SCREENMAIN_FINISH">¡Toles rondes tan cantaes! Ya\'l ganador ye...</string>
|
||||
<string name="TR_SCREENMAIN_FINISH">¡Toles rondes tan cantaes! Ya'l ganador ye...</string>
|
||||
</resources>
|
||||
@@ -15,6 +15,8 @@
|
||||
<string name="TR_SCREENCONFIG_NUMPLAYERS">Počet hráčů</string>
|
||||
<string name="TR_SCREENCONFIG_NUMMICS">Počet mikrofonů</string>
|
||||
<string name="TR_SCREENCONFIG_NUMROUNDS">Počet kol</string>
|
||||
<string name="TR_SCREENCONFIG_NUMJOKERS">Počet žolíků</string>
|
||||
<string name="TR_SCREENCONFIG_REFILLJOKERS">Doplnit žolíky každé kolo</string>
|
||||
<string name="TR_SCREENNAMES_TITLE">Soutěžní režim: Výběr hráče</string>
|
||||
<string name="TR_SCREENNAMES_BUTTON_RANDOM">Vybrat náhodně</string>
|
||||
<string name="TR_SCREENMAIN_TITLE">Soutěžní režim: Přehled</string>
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
<string name="TR_SCREENCONFIG_NUMPLAYERS">Nombre de joueurs</string>
|
||||
<string name="TR_SCREENCONFIG_NUMMICS">Nombre de micros</string>
|
||||
<string name="TR_SCREENCONFIG_NUMROUNDS">Nombre de tours</string>
|
||||
<string name="TR_SCREENCONFIG_NUMJOKERS">Nombre de jokers</string>
|
||||
<string name="TR_SCREENCONFIG_REFILLJOKERS">Remplir de nouveau les jokers à tour</string>
|
||||
<string name="TR_SCREENNAMES_TITLE">Mode Challenge: Choix des joueurs</string>
|
||||
<string name="TR_SCREENNAMES_BUTTON_RANDOM">Sélectionner au hasard</string>
|
||||
<string name="TR_SCREENMAIN_TITLE">Mode Challenge: Résumé</string>
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
<string name="TR_SCREENCONFIG_NUMPLAYERS">TODO: Number of players</string>
|
||||
<string name="TR_SCREENCONFIG_NUMMICS">TODO: Number of mics</string>
|
||||
<string name="TR_SCREENCONFIG_NUMROUNDS">TODO: Number of rounds</string>
|
||||
<string name="TR_SCREENCONFIG_NUMJOKERS">Número de comodines</string>
|
||||
<string name="TR_SCREENCONFIG_REFILLJOKERS">Rellenar comodines cada ronda</string>
|
||||
<string name="TR_SCREENNAMES_TITLE">TODO: Challenge Mode: Choose Player</string>
|
||||
<string name="TR_SCREENNAMES_BUTTON_RANDOM">Seleccionar aleatoriamente</string>
|
||||
<string name="TR_SCREENMAIN_TITLE">TODO: Challenge Mode: Overview</string>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<resources>
|
||||
<string name="language">Svenska</string>
|
||||
<string name="TR_PARTYMODE_NAME">Utmanarläge</string>
|
||||
<string name="TR_PARTYMODE_DESCRIPTION">Spela några utmanar-omgångar.</string>
|
||||
<string name="TR_PARTYMODE_DESCRIPTION">Spela några utmanaromgångar.</string>
|
||||
<string name="TR_PARTYMODE_AUDIENCE">För alla som är intresserade av dueller.</string>
|
||||
<string name="TR_BUTTON_NEXT">Nästa</string>
|
||||
<string name="TR_BUTTON_BACK">Tillbaka</string>
|
||||
@@ -10,23 +10,23 @@
|
||||
<string name="TR_BUTTON_EXIT">Avsluta</string>
|
||||
<string name="TR_BUTTON_YES">Ja</string>
|
||||
<string name="TR_BUTTON_NO">Nej</string>
|
||||
<string name="TR_BUTTON_NEXT_ROUND">Nästa Omgång</string>
|
||||
<string name="TR_BUTTON_NEXT_ROUND">Nästa omgång</string>
|
||||
<string name="TR_SCREENCONFIG_TITLE">Utmanarläge: Konfiguration</string>
|
||||
<string name="TR_SCREENCONFIG_NUMPLAYERS">Antal spelare</string>
|
||||
<string name="TR_SCREENCONFIG_NUMMICS">Antal mikrofoner</string>
|
||||
<string name="TR_SCREENCONFIG_NUMROUNDS">Antal omgångar</string>
|
||||
<string name="TR_SCREENCONFIG_NUMJOKERS">Antal joker</string>
|
||||
<string name="TR_SCREENCONFIG_REFILLJOKERS">Fyll på jokers varje runda</string>
|
||||
<string name="TR_SCREENNAMES_TITLE">Utmanarläge: Välj Spelare</string>
|
||||
<string name="TR_SCREENNAMES_BUTTON_RANDOM">Välj slumpmässig</string>
|
||||
<string name="TR_SCREENCONFIG_NUMJOKERS">Antal jokrar</string>
|
||||
<string name="TR_SCREENCONFIG_REFILLJOKERS">Fyll på jokrar varje runda</string>
|
||||
<string name="TR_SCREENNAMES_TITLE">Utmanarläge: Välj spelare</string>
|
||||
<string name="TR_SCREENNAMES_BUTTON_RANDOM">Välj slumpmässiga</string>
|
||||
<string name="TR_SCREENMAIN_TITLE">Utmanarläge: Översikt</string>
|
||||
<string name="TR_SCREENMAIN_TABLE_POS">Position</string>
|
||||
<string name="TR_SCREENMAIN_TABLE_POS">Pos</string>
|
||||
<string name="TR_SCREENMAIN_TABLE_PLAYERNAME">Namn</string>
|
||||
<string name="TR_SCREENMAIN_TABLE_NUMPLAYED">Omgångar</string>
|
||||
<string name="TR_SCREENMAIN_TABLE_WON">Vunna</string>
|
||||
<string name="TR_SCREENMAIN_TABLE_SINGPOINTS">Sång Poäng</string>
|
||||
<string name="TR_SCREENMAIN_TABLE_GAMEPOINTS">Resultat</string>
|
||||
<string name="TR_SCREENMAIN_POPUP_REALLYEXIT">Vill Du verkligen avsluta?</string>
|
||||
<string name="TR_SCREENMAIN_TABLE_SINGPOINTS">Sångpoäng</string>
|
||||
<string name="TR_SCREENMAIN_TABLE_GAMEPOINTS">Poäng</string>
|
||||
<string name="TR_SCREENMAIN_POPUP_REALLYEXIT">Vill du verkligen avsluta?</string>
|
||||
<string name="TR_SCREENMAIN_NEXT_PLAYER">Spelare i nästa omgång:</string>
|
||||
<string name="TR_SCREENMAIN_FINISH">Alla omgånga sjungna! Och vinnaren är...</string>
|
||||
</resources>
|
||||
@@ -28,5 +28,5 @@
|
||||
<string name="TR_SCREENMAIN_TABLE_GAMEPOINTS">Puntuación</string>
|
||||
<string name="TR_SCREENMAIN_POPUP_REALLYEXIT">¿De xuru quies colar?</string>
|
||||
<string name="TR_SCREENMAIN_NEXT_PLAYER">Xugador de la ronda siguiente:</string>
|
||||
<string name="TR_SCREENMAIN_FINISH">¡Toles rondes tan cantaes! Ya\'l ganador ye...</string>
|
||||
<string name="TR_SCREENMAIN_FINISH">¡Toles rondes tan cantaes! Ya'l ganador ye...</string>
|
||||
</resources>
|
||||
@@ -1,35 +1,35 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="language">Svenska</string>
|
||||
<string name="TR_PARTYMODE_NAME">Utmanar Medley Läge</string>
|
||||
<string name="TR_PARTYMODE_DESCRIPTION">Spela några utmanaromgångar, använd endast Medleys</string>
|
||||
<string name="TR_PARTYMODE_AUDIENCE">För alla som är intresserade av dueller och Medleys.</string>
|
||||
<string name="TR_PARTYMODE_NAME">Medleyutmanarläge</string>
|
||||
<string name="TR_PARTYMODE_DESCRIPTION">Spela några utmanaromgångar med endast medleys.</string>
|
||||
<string name="TR_PARTYMODE_AUDIENCE">För alla som är intresserade av dueller och medleys.</string>
|
||||
<string name="TR_BUTTON_NEXT">Nästa</string>
|
||||
<string name="TR_BUTTON_BACK">Tillbaka</string>
|
||||
<string name="TR_BUTTON_START">Starta</string>
|
||||
<string name="TR_BUTTON_EXIT">Avsluta</string>
|
||||
<string name="TR_BUTTON_YES">Ja</string>
|
||||
<string name="TR_BUTTON_NO">Nej</string>
|
||||
<string name="TR_BUTTON_NEXT_ROUND">Nästa Omgång</string>
|
||||
<string name="TR_BUTTON_NEXT_ROUND">Nästa omgång</string>
|
||||
<string name="TR_PLAYLIST">Spellista</string>
|
||||
<string name="TR_CATEGORY">Kategori</string>
|
||||
<string name="TR_ALLSONGS">Alla låtar</string>
|
||||
<string name="TR_SONGS">Låtar</string>
|
||||
<string name="TR_SCREENCONFIG_TITLE">Utamanr Medley Läge: Konfiguration</string>
|
||||
<string name="TR_SCREENCONFIG_TITLE">Medleyutmanarläge: Konfiguration</string>
|
||||
<string name="TR_SCREENCONFIG_NUMPLAYERS">Antal spelare</string>
|
||||
<string name="TR_SCREENCONFIG_NUMMICS">Antal mikrofoner</string>
|
||||
<string name="TR_SCREENCONFIG_NUMROUNDS">Antal omgångar</string>
|
||||
<string name="TR_SCREENCONFIG_NUMSONGS">Antal låtar per omgång</string>
|
||||
<string name="TR_SCREENCONFIG_SONGSOURCE">Låt källa</string>
|
||||
<string name="TR_SCREENNAMES_TITLE">Utmanar Medley Läge: Välj Spelare</string>
|
||||
<string name="TR_SCREENNAMES_BUTTON_RANDOM">Välj slumpmässig</string>
|
||||
<string name="TR_SCREENMAIN_TITLE">Utmanar Medley Läge: Översikt</string>
|
||||
<string name="TR_SCREENMAIN_TABLE_POS">Position</string>
|
||||
<string name="TR_SCREENCONFIG_SONGSOURCE">Låtkälla</string>
|
||||
<string name="TR_SCREENNAMES_TITLE">Medleyutmanarläge: Välj Spelare</string>
|
||||
<string name="TR_SCREENNAMES_BUTTON_RANDOM">Välj slumpmässiga</string>
|
||||
<string name="TR_SCREENMAIN_TITLE">Medleyutmanarläge: Översikt</string>
|
||||
<string name="TR_SCREENMAIN_TABLE_POS">Pos</string>
|
||||
<string name="TR_SCREENMAIN_TABLE_PLAYERNAME">Namn</string>
|
||||
<string name="TR_SCREENMAIN_TABLE_NUMPLAYED">Omgångar</string>
|
||||
<string name="TR_SCREENMAIN_TABLE_WON">Vunna</string>
|
||||
<string name="TR_SCREENMAIN_TABLE_SINGPOINTS">Sång Poäng</string>
|
||||
<string name="TR_SCREENMAIN_TABLE_GAMEPOINTS">Resultat</string>
|
||||
<string name="TR_SCREENMAIN_TABLE_SINGPOINTS">Sångpoäng</string>
|
||||
<string name="TR_SCREENMAIN_TABLE_GAMEPOINTS">Poäng</string>
|
||||
<string name="TR_SCREENMAIN_POPUP_REALLYEXIT">Vill du verkligen avsluta?</string>
|
||||
<string name="TR_SCREENMAIN_NEXT_PLAYER">Spelare i nästa omgång:</string>
|
||||
<string name="TR_SCREENMAIN_FINISH">Alla omgångar sjungna! Och vinnaren är...</string>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<resources>
|
||||
<string name="language">Inglés</string>
|
||||
<string name="TR_PARTYMODE_NAME">Tic-Tac-Toe</string>
|
||||
<string name="TR_PARTYMODE_DESCRIPTION">Xugar Tic-Tac-Toe d\'un mou especial</string>
|
||||
<string name="TR_PARTYMODE_DESCRIPTION">Xugar Tic-Tac-Toe d'un mou especial</string>
|
||||
<string name="TR_BUTTON_NEXT">Siguiente</string>
|
||||
<string name="TR_BUTTON_BACK">Tornar</string>
|
||||
<string name="TR_BUTTON_START">Entamar</string>
|
||||
@@ -27,6 +27,6 @@
|
||||
<string name="TR_SCREENMAIN_TEAM_CHOOSE">Esbilla un campu.</string>
|
||||
<string name="TR_SCREENMAIN_NEXT_PLAYER">Xugador siguiente</string>
|
||||
<string name="TR_SCREENMAIN_POPUP_REALLYEXIT">¿Colar de xuru de Tic-Tac-Toe?</string>
|
||||
<string name="TR_SCREENMAIN_WINNER">Ya\'l ganador ye...</string>
|
||||
<string name="TR_SCREENMAIN_WINNER">Ya'l ganador ye...</string>
|
||||
<string name="TR_SCREENMAIN_NOWINNER">Nun hai ganador dalu nesta ronda...</string>
|
||||
</resources>
|
||||
@@ -2,7 +2,7 @@
|
||||
<resources>
|
||||
<string name="language">Français</string>
|
||||
<string name="TR_PARTYMODE_NAME">Tic-Tac-Toe</string>
|
||||
<string name="TR_PARTYMODE_DESCRIPTION">Jouez au Tic-Tac-Toe d\'une nouvelle façon</string>
|
||||
<string name="TR_PARTYMODE_DESCRIPTION">Jouez au Tic-Tac-Toe d'une nouvelle façon</string>
|
||||
<string name="TR_PARTYMODE_AUDIENCE">Des matchs amusants alliant stratégie, gains et compétences</string>
|
||||
<string name="TR_BUTTON_NEXT">Suivant</string>
|
||||
<string name="TR_BUTTON_BACK">Retour</string>
|
||||
@@ -17,8 +17,8 @@
|
||||
<string name="TR_CATEGORY">Catégorie</string>
|
||||
<string name="TR_ALLSONGS">Toutes les chansons</string>
|
||||
<string name="TR_SCREENCONFIG_TITLE">Tic-Tac-Toe: Configuration</string>
|
||||
<string name="TR_SCREENCONFIG_NUMPLAYERST1">Nombre de joueurs dans l\'Equipe 1</string>
|
||||
<string name="TR_SCREENCONFIG_NUMPLAYERST2">Nombre de joueurs dans l\'Equipe 2</string>
|
||||
<string name="TR_SCREENCONFIG_NUMPLAYERST1">Nombre de joueurs dans l'Equipe 1</string>
|
||||
<string name="TR_SCREENCONFIG_NUMPLAYERST2">Nombre de joueurs dans l'Equipe 2</string>
|
||||
<string name="TR_SCREENCONFIG_NUMFIELDS">Nombre de champs</string>
|
||||
<string name="TR_SCREENCONFIG_SONGSOURCE">Source des chansons</string>
|
||||
<string name="TR_SCREENCONFIG_GAMEMODE">Mode de jeu</string>
|
||||
@@ -30,5 +30,5 @@
|
||||
<string name="TR_SCREENMAIN_NEXT_PLAYER">Prochains joueurs</string>
|
||||
<string name="TR_SCREENMAIN_POPUP_REALLYEXIT">Voulez vous vraiment quitter Tic-Tac-Toe?</string>
|
||||
<string name="TR_SCREENMAIN_WINNER">Et le gagnant est...</string>
|
||||
<string name="TR_SCREENMAIN_NOWINNER">Il n\'y a pas de gagnant sur ce tour...</string>
|
||||
<string name="TR_SCREENMAIN_NOWINNER">Il n'y a pas de gagnant sur ce tour...</string>
|
||||
</resources>
|
||||
@@ -31,5 +31,5 @@
|
||||
<string name="TR_SCREENMAIN_NEXT_PLAYER">Prossimo giocatore</string>
|
||||
<string name="TR_SCREENMAIN_POPUP_REALLYEXIT">Vuoi veramente uscire dal Tris?</string>
|
||||
<string name="TR_SCREENMAIN_WINNER">E il vincitore è...</string>
|
||||
<string name="TR_SCREENMAIN_NOWINNER">Non c\'è nessun vincitore in questo turno...</string>
|
||||
<string name="TR_SCREENMAIN_NOWINNER">Non c'è nessun vincitore in questo turno...</string>
|
||||
</resources>
|
||||
@@ -20,15 +20,16 @@
|
||||
<string name="TR_SCREENCONFIG_NUMPLAYERST1">Antal spelare i lag 1</string>
|
||||
<string name="TR_SCREENCONFIG_NUMPLAYERST2">Antal spelare i lag 2</string>
|
||||
<string name="TR_SCREENCONFIG_NUMFIELDS">Antal fält</string>
|
||||
<string name="TR_SCREENCONFIG_SONGSOURCE">Sång källa</string>
|
||||
<string name="TR_SCREENCONFIG_GAMEMODE">Spel Läge</string>
|
||||
<string name="TR_SCREENNAMES_TITLE">Tripp-Trapp-Trull: Välj Spelare</string>
|
||||
<string name="TR_SCREENCONFIG_SONGSOURCE">Låtkälla</string>
|
||||
<string name="TR_SCREENCONFIG_GAMEMODE">Spelläge</string>
|
||||
<string name="TR_SCREENNAMES_TITLE">Tripp-Trapp-Trull: Välj spelare</string>
|
||||
<string name="TR_SCREENNAMES_TEAM1">Lag 1</string>
|
||||
<string name="TR_SCREENNAMES_TEAM2">Lag 2</string>
|
||||
<string name="TR_SCREENNAMES_BUTTON_RANDOM">Välj slumpmässiga</string>
|
||||
<string name="TR_SCREENMAIN_TITLE">Tripp-Trapp-Trull</string>
|
||||
<string name="TR_SCREENMAIN_TEAM_CHOOSE">Välj ett fält.</string>
|
||||
<string name="TR_SCREENMAIN_NEXT_PLAYER">Nästa spelare</string>
|
||||
<string name="TR_SCREENMAIN_POPUP_REALLYEXIT">Avsluta Tripp-Trapp-Trull?</string>
|
||||
<string name="TR_SCREENMAIN_WINNER">Och vinnare är...</string>
|
||||
<string name="TR_SCREENMAIN_NOWINNER">Det finns ingen vinnare denna omgång...</string>
|
||||
<string name="TR_SCREENMAIN_NOWINNER">Det blev ingen vinnare denna omgång...</string>
|
||||
</resources>
|
||||
@@ -2,7 +2,7 @@
|
||||
<root>
|
||||
<PlayerName>Guest 3</PlayerName>
|
||||
<Difficulty>TR_CONFIG_EASY</Difficulty>
|
||||
<UserRole>TR_USERROLE_NORMAL</UserRole>
|
||||
<UserRole>TR_USERROLE_GUEST</UserRole>
|
||||
<Active>TR_CONFIG_ON</Active>
|
||||
<Avatar>Avatar_m.png</Avatar>
|
||||
</root>
|
||||
+27
-13
@@ -1,4 +1,4 @@
|
||||
Vocaluxe 0.3 README
|
||||
Vocaluxe 0.4.1 README
|
||||
----------------------------
|
||||
|
||||
=================================
|
||||
@@ -23,25 +23,29 @@ Vocaluxe is an entirely new development in C#, inspired by the original UltraSta
|
||||
and the great Ultrastar Deluxe project.
|
||||
|
||||
Supported Operating Systems / Requirements:
|
||||
- WinXP, Vista, Windows 7 or Windows 8 with .NET 4.0
|
||||
- Windows Vista, Windows 7, Windows 8 or Windows 10 with .NET 4.0
|
||||
- Linux (no official support)
|
||||
- 1 GHz CPU, 512 MB RAM, Graphics card with OpenGL 2.1 or DirectX 9.0 support
|
||||
- Visual C++ Redistributable Packages 2008 and 2012
|
||||
- Visual C++ Redistributable Package 2010
|
||||
|
||||
|
||||
=================================
|
||||
= 2. Release Notes =
|
||||
=================================
|
||||
|
||||
- The program supports 32bit and 64bit (Vocaluxe_x64.exe) operating systems.
|
||||
- The program supports 32bit and 64bit (appropriate download package) operating systems.
|
||||
|
||||
- To add your existing song collection to Vocaluxe, put your songs into the 'Songs' subfolder.
|
||||
- When using installer, you can find all mentioned folder in 'Documents/Vocaluxe', otherwise
|
||||
they should be created just next to 'Vocaluxe.exe'
|
||||
|
||||
- To add your existing song collection to Vocaluxe, put your songs into the 'Songs' subfolder.
|
||||
|
||||
Alternatively, you can add multiple song paths to Vocaluxe by editing your Config.xml:
|
||||
|
||||
<Game>
|
||||
<!--SongFolder: SongFolder1, SongFolder2, SongFolder3, ...-->
|
||||
<SongFolder1>C:\Vocaluxe\Songs</SongFolder1>
|
||||
<SongFolder2>D:\EvenMore\Songs</SongFolder2>
|
||||
<!--SongFolder: Add each song folder in a seperate SongFolder entry-->
|
||||
<SongFolder>C:\Vocaluxe\Songs</SongFolder>
|
||||
<SongFolder>D:\EvenMore\Songs</SongFolder>
|
||||
|
||||
- To use your highscore database from UltraStar deluxe 1.0.1, UltraStar deluxe CMD Mod or
|
||||
UltraStar deluxe 1.1, simply copy your Ultrastar.db (rename if necessary) into the main
|
||||
@@ -101,6 +105,8 @@ or from the console:
|
||||
load playlist from this path.
|
||||
Example:
|
||||
Vocaluxe.exe -PlaylistFolder D:\MyPlaylists
|
||||
|
||||
-OldTheme yes : Try to load theme that is created for vocaluxe 0.2 or older (or some pre-release version of 0.3). Enter theme editor and save your theme to convert every file to new syntax. This will be removed in a future version.
|
||||
|
||||
|
||||
Complete example:
|
||||
@@ -128,14 +134,18 @@ Vocaluxe.exe -ConfigFile MyConfig.xml -ScoreFile C:\Vocaluxe\Highscores\MyHighsc
|
||||
Song screen
|
||||
[F3] to open/close the song search menu
|
||||
[SPACE] to open/close the song menu
|
||||
[TAB] to switch selection of song menu and playlist (if opened)
|
||||
[CTRL] + [R] to select a random song
|
||||
[CTRL] + [A] to sing all songs
|
||||
[CTRL] + [S] to sing current song in medley version
|
||||
[CTRL] + [V] to sing all songs from a category
|
||||
[NUM_1]..[NUM_6] to use a Joker for team 1..6
|
||||
[A]..[Z] to jump to category/song title starting with that letter
|
||||
|
||||
Name selection screen
|
||||
[1]..[6] to activate player selection.
|
||||
[P] to activate fast player selection
|
||||
[+] or [-] to increase/decrease number of player
|
||||
[Cursor] to select a profile.
|
||||
[Enter] to confirm a selection.
|
||||
|
||||
@@ -145,20 +155,24 @@ Sing screen
|
||||
[T] to change the time format of the timer.
|
||||
[I] to change view of player information.
|
||||
[W] to activate the configured webcam.
|
||||
[V] to change video aspect ratio
|
||||
|
||||
Score and highscore screen
|
||||
[LEFT] or [RIGHT] to show (high)scores of another round (if there is more than one)
|
||||
|
||||
|
||||
=================================
|
||||
= 5. Help & Suppport =
|
||||
=================================
|
||||
Bug Tracker: http://84.200.73.138/redmine/projects/vocaluxe
|
||||
Vocaluxe Homepage: https://vocaluxe.org
|
||||
Bug Tracker: https://github.com/Vocaluxe/Vocaluxe/issues
|
||||
Translations: https://www.transifex.com/projects/p/vocaluxe/
|
||||
GitHub Wiki: https://github.com/Vocaluxe/Vocaluxe/wiki
|
||||
Support Forum (German): http://www.ultra-star.de
|
||||
Song-DataBase (USDB): http://usdb.animux.de/
|
||||
Song-DataBase (USDB): http://usdb.animux.de/
|
||||
|
||||
|
||||
=================================
|
||||
= 6. Source Code =
|
||||
=================================
|
||||
Source Code (GitHub): https://github.com/Vocaluxe/Vocaluxe
|
||||
SF.Net Page: http://sourceforge.net/projects/vocaluxe/
|
||||
Source Code (GitHub): https://github.com/Vocaluxe/Vocaluxe
|
||||
SF.Net Page (outdated): http://sourceforge.net/projects/vocaluxe/
|
||||
@@ -18,6 +18,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using VocaluxeLib.Game;
|
||||
using VocaluxeLib.Menu;
|
||||
|
||||
[assembly: ComVisible(false)]
|
||||
@@ -430,39 +431,62 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
|
||||
private void _UpdateScores()
|
||||
{
|
||||
//Prepare results table
|
||||
if (GameData.ResultTable.Count == 0)
|
||||
{
|
||||
for (int i = 0; i < GameData.NumPlayer; i++)
|
||||
{
|
||||
var row = new CResultTableRow {PlayerID = GameData.ProfileIDs[i], NumPlayed = 0, NumWon = 0, NumSingPoints = 0, NumGamePoints = 0};
|
||||
var row = new CResultTableRow { PlayerID = GameData.ProfileIDs[i], NumPlayed = 0, NumWon = 0, NumSingPoints = 0, NumGamePoints = 0 };
|
||||
GameData.ResultTable.Add(row);
|
||||
}
|
||||
|
||||
GameData.Results = new int[GameData.NumRounds,GameData.NumPlayerAtOnce];
|
||||
GameData.Results = new int[GameData.NumRounds, GameData.NumPlayerAtOnce];
|
||||
for (int i = 0; i < GameData.NumRounds; i++)
|
||||
{
|
||||
for (int j = 0; j < GameData.NumPlayerAtOnce; j++)
|
||||
GameData.Results[i, j] = 0;
|
||||
}
|
||||
}
|
||||
SPlayer[] results = CBase.Game.GetPlayers();
|
||||
if (results == null)
|
||||
return;
|
||||
|
||||
if (results.Length < GameData.NumPlayerAtOnce)
|
||||
return;
|
||||
//Get points from game
|
||||
CPoints points = CBase.Game.GetPoints();
|
||||
SPlayer[] players = CBase.Game.GetPlayers();
|
||||
|
||||
for (int j = 0; j < GameData.NumPlayerAtOnce; j++)
|
||||
GameData.Results[GameData.CurrentRoundNr - 2, j] = (int)Math.Round(results[j].Points);
|
||||
//Go over all rounds and sum up points
|
||||
for (int round = 0; round < points.NumRounds; round++)
|
||||
{
|
||||
SPlayer[] res = points.GetPlayer(round, GameData.NumPlayerAtOnce);
|
||||
|
||||
List<SStats> points = _GetPointsForPlayer(results);
|
||||
if (res == null || res.Length < GameData.NumPlayerAtOnce)
|
||||
return;
|
||||
|
||||
for (int p = 0; p < GameData.NumPlayerAtOnce; p++)
|
||||
{
|
||||
players[p].Points += res[p].Points;
|
||||
players[p].PointsGoldenNotes += res[p].PointsGoldenNotes;
|
||||
players[p].PointsLineBonus += res[p].PointsLineBonus;
|
||||
}
|
||||
}
|
||||
//Calculate average points
|
||||
for (int p = 0; p < GameData.NumPlayerAtOnce; p++)
|
||||
{
|
||||
players[p].Points /= points.NumRounds;
|
||||
players[p].PointsGoldenNotes /= points.NumRounds;
|
||||
players[p].PointsLineBonus /= points.NumRounds;
|
||||
|
||||
//Save points in GameData
|
||||
GameData.Results[GameData.CurrentRoundNr - 2, p] = (int)Math.Round(players[p].Points);
|
||||
}
|
||||
|
||||
List<SStats> stats = _GetPointsForPlayer(players);
|
||||
|
||||
for (int i = 0; i < GameData.NumPlayerAtOnce; i++)
|
||||
{
|
||||
//Find matching row in results table
|
||||
int index = -1;
|
||||
for (int j = 0; j < GameData.ResultTable.Count; j++)
|
||||
{
|
||||
if (points[i].ProfileID == GameData.ResultTable[j].PlayerID)
|
||||
if (stats[i].ProfileID == GameData.ResultTable[j].PlayerID)
|
||||
{
|
||||
index = j;
|
||||
break;
|
||||
@@ -473,14 +497,14 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
continue;
|
||||
CResultTableRow row = GameData.ResultTable[index];
|
||||
|
||||
//Update results entry
|
||||
row.NumPlayed++;
|
||||
row.NumWon += points[i].Won;
|
||||
row.NumSingPoints += points[i].SingPoints;
|
||||
row.NumGamePoints += points[i].GamePoints;
|
||||
row.NumWon += stats[i].Won;
|
||||
row.NumSingPoints += stats[i].SingPoints;
|
||||
row.NumGamePoints += stats[i].GamePoints;
|
||||
|
||||
GameData.ResultTable[index] = row;
|
||||
}
|
||||
|
||||
|
||||
GameData.ResultTable.Sort();
|
||||
|
||||
|
||||
@@ -125,6 +125,7 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
_AddText(_NextPlayerTexts[_NextPlayerTexts.Count - 1]);
|
||||
_NextPlayerStatics.Add(GetNewStatic(_Statics[_StaticNextPlayer]));
|
||||
_AddStatic(_NextPlayerStatics[_NextPlayerStatics.Count - 1]);
|
||||
_NextPlayerStatics[_NextPlayerStatics.Count - 1].Aspect = EAspect.Crop;
|
||||
}
|
||||
_Statics[_StaticNextPlayer].Visible = false;
|
||||
}
|
||||
|
||||
@@ -37,6 +37,7 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
base.Init();
|
||||
_PartyMode = (CPartyModeChallenge)base._PartyMode;
|
||||
_AllowChangePlayerNum = false;
|
||||
_Teams = false;
|
||||
}
|
||||
|
||||
public override void OnShow()
|
||||
|
||||
@@ -411,74 +411,79 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
|
||||
private void _UpdateScores()
|
||||
{
|
||||
//Prepare results table
|
||||
if (GameData.ResultTable.Count == 0)
|
||||
{
|
||||
for (int i = 0; i < GameData.NumPlayer; i++)
|
||||
{
|
||||
CResultTableRow row = new CResultTableRow {PlayerID = GameData.ProfileIDs[i], NumPlayed = 0, NumWon = 0, NumSingPoints = 0, NumGamePoints = 0};
|
||||
var row = new CResultTableRow { PlayerID = GameData.ProfileIDs[i], NumPlayed = 0, NumWon = 0, NumSingPoints = 0, NumGamePoints = 0 };
|
||||
GameData.ResultTable.Add(row);
|
||||
}
|
||||
|
||||
GameData.Results = new int[GameData.NumRounds,GameData.NumPlayerAtOnce];
|
||||
GameData.Results = new int[GameData.NumRounds, GameData.NumPlayerAtOnce];
|
||||
for (int i = 0; i < GameData.NumRounds; i++)
|
||||
{
|
||||
for (int j = 0; j < GameData.NumPlayerAtOnce; j++)
|
||||
GameData.Results[i, j] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
CPoints gamePoints = CBase.Game.GetPoints();
|
||||
if (gamePoints == null || gamePoints.NumPlayer < GameData.NumPlayerAtOnce)
|
||||
return;
|
||||
|
||||
SPlayer[] results = gamePoints.GetPlayer(0, GameData.NumPlayerAtOnce);
|
||||
if (results == null)
|
||||
return;
|
||||
//Get points from game
|
||||
CPoints points = CBase.Game.GetPoints();
|
||||
SPlayer[] players = CBase.Game.GetPlayers();
|
||||
|
||||
if (results.Length < GameData.NumPlayerAtOnce)
|
||||
return;
|
||||
|
||||
if (gamePoints.NumRounds == 0)
|
||||
return;
|
||||
|
||||
for (int i = 1; i < gamePoints.NumRounds; i++)
|
||||
//Go over all rounds and sum up points
|
||||
for (int round = 0; round < points.NumRounds; round++)
|
||||
{
|
||||
SPlayer[] temp = gamePoints.GetPlayer(i, GameData.NumPlayerAtOnce);
|
||||
SPlayer[] res = points.GetPlayer(round, GameData.NumPlayerAtOnce);
|
||||
|
||||
if (res == null || res.Length < GameData.NumPlayerAtOnce)
|
||||
return;
|
||||
|
||||
for (int p = 0; p < GameData.NumPlayerAtOnce; p++)
|
||||
results[p].Points += temp[p].Points;
|
||||
{
|
||||
players[p].Points += res[p].Points;
|
||||
players[p].PointsGoldenNotes += res[p].PointsGoldenNotes;
|
||||
players[p].PointsLineBonus += res[p].PointsLineBonus;
|
||||
}
|
||||
}
|
||||
|
||||
for (int j = 0; j < GameData.NumPlayerAtOnce; j++)
|
||||
//Calculate average points
|
||||
for (int p = 0; p < GameData.NumPlayerAtOnce; p++)
|
||||
{
|
||||
results[j].Points = results[j].Points / gamePoints.NumRounds;
|
||||
GameData.Results[GameData.CurrentRoundNr - 2, j] = (int)Math.Round(results[j].Points);
|
||||
players[p].Points /= points.NumRounds;
|
||||
players[p].PointsGoldenNotes /= points.NumRounds;
|
||||
players[p].PointsLineBonus /= points.NumRounds;
|
||||
|
||||
//Save points in GameData
|
||||
GameData.Results[GameData.CurrentRoundNr - 2, p] = (int)Math.Round(players[p].Points);
|
||||
}
|
||||
|
||||
List<SStats> points = _GetPointsForPlayer(results);
|
||||
List<SStats> stats = _GetPointsForPlayer(players);
|
||||
|
||||
for (int i = 0; i < GameData.NumPlayerAtOnce; i++)
|
||||
{
|
||||
//Find matching row in results table
|
||||
int index = -1;
|
||||
for (int j = 0; j < GameData.ResultTable.Count; j++)
|
||||
{
|
||||
if (points[i].ProfileID == GameData.ResultTable[j].PlayerID)
|
||||
if (stats[i].ProfileID == GameData.ResultTable[j].PlayerID)
|
||||
{
|
||||
index = j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (index != -1)
|
||||
{
|
||||
CResultTableRow row = GameData.ResultTable[index];
|
||||
if (index == -1)
|
||||
continue;
|
||||
CResultTableRow row = GameData.ResultTable[index];
|
||||
|
||||
row.NumPlayed++;
|
||||
row.NumWon += points[i].Won;
|
||||
row.NumSingPoints += points[i].SingPoints;
|
||||
row.NumGamePoints += points[i].GamePoints;
|
||||
//Update results entry
|
||||
row.NumPlayed++;
|
||||
row.NumWon += stats[i].Won;
|
||||
row.NumSingPoints += stats[i].SingPoints;
|
||||
row.NumGamePoints += stats[i].GamePoints;
|
||||
|
||||
GameData.ResultTable[index] = row;
|
||||
}
|
||||
GameData.ResultTable[index] = row;
|
||||
}
|
||||
|
||||
GameData.ResultTable.Sort();
|
||||
|
||||
@@ -37,6 +37,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
base.Init();
|
||||
_PartyMode = (CPartyModeChallengeMedley)base._PartyMode;
|
||||
_AllowChangePlayerNum = false;
|
||||
_Teams = false;
|
||||
}
|
||||
|
||||
public override void OnShow()
|
||||
|
||||
@@ -20,6 +20,7 @@ using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using VocaluxeLib.Game;
|
||||
using VocaluxeLib.Menu;
|
||||
using VocaluxeLib.Songs;
|
||||
|
||||
@@ -60,7 +61,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
public sealed class CPartyModeTicTacToe : CPartyMode
|
||||
// ReSharper restore ClassNeverInstantiated.Global
|
||||
// ReSharper restore ClassNeverInstantiated.Global
|
||||
{
|
||||
public override int MinMics
|
||||
{
|
||||
@@ -96,7 +97,9 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
get { return 10; }
|
||||
}
|
||||
|
||||
private enum EStage
|
||||
public readonly EGameMode[] AvailableGameModes = { EGameMode.TR_GAMEMODE_NORMAL, EGameMode.TR_GAMEMODE_SHORTSONG, EGameMode.TR_GAMEMODE_DUET };
|
||||
|
||||
private enum EStage
|
||||
{
|
||||
Config,
|
||||
Names,
|
||||
@@ -119,7 +122,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
public int CategoryIndex;
|
||||
public int PlaylistID;
|
||||
|
||||
public EGameMode GameMode;
|
||||
public int GameMode;
|
||||
|
||||
public List<CRound> Rounds;
|
||||
public List<int> Songs;
|
||||
@@ -160,7 +163,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
SongSource = ESongSource.TR_ALLSONGS,
|
||||
PlaylistID = 0,
|
||||
CategoryIndex = 0,
|
||||
GameMode = EGameMode.TR_GAMEMODE_NORMAL,
|
||||
GameMode = 0,
|
||||
Rounds = new List<CRound>(),
|
||||
Songs = new List<int>(),
|
||||
NumJokerRandom = new int[2],
|
||||
@@ -432,20 +435,20 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
for (int i = 0; i < CBase.Playlist.GetSongCount(GameData.PlaylistID); i++)
|
||||
{
|
||||
int id = CBase.Playlist.GetSong(GameData.PlaylistID, i).SongID;
|
||||
if (CBase.Songs.GetSongByID(id).AvailableGameModes.Contains(GameData.GameMode))
|
||||
if (CBase.Songs.GetSongByID(id).AvailableGameModes.Contains(AvailableGameModes[GameData.GameMode]))
|
||||
GameData.Songs.Add(id);
|
||||
}
|
||||
break;
|
||||
|
||||
case ESongSource.TR_ALLSONGS:
|
||||
ReadOnlyCollection<CSong> avSongs = CBase.Songs.GetSongs();
|
||||
GameData.Songs.AddRange(avSongs.Where(song => song.AvailableGameModes.Contains(GameData.GameMode)).Select(song => song.ID));
|
||||
GameData.Songs.AddRange(avSongs.Where(song => song.AvailableGameModes.Contains(AvailableGameModes[GameData.GameMode])).Select(song => song.ID));
|
||||
break;
|
||||
|
||||
case ESongSource.TR_CATEGORY:
|
||||
CBase.Songs.SetCategory(GameData.CategoryIndex);
|
||||
avSongs = CBase.Songs.GetVisibleSongs();
|
||||
GameData.Songs.AddRange(avSongs.Where(song => song.AvailableGameModes.Contains(GameData.GameMode)).Select(song => song.ID));
|
||||
GameData.Songs.AddRange(avSongs.Where(song => song.AvailableGameModes.Contains(AvailableGameModes[GameData.GameMode])).Select(song => song.ID));
|
||||
|
||||
CBase.Songs.SetCategory(-1);
|
||||
break;
|
||||
@@ -493,7 +496,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
if (isDuet)
|
||||
players[1].VoiceNr = 1;
|
||||
|
||||
CBase.Game.AddSong(round.SongID, GameData.GameMode);
|
||||
CBase.Game.AddSong(round.SongID, AvailableGameModes[GameData.GameMode]);
|
||||
}
|
||||
|
||||
private void _SetNumJokers()
|
||||
@@ -528,13 +531,33 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
if (!GameData.Rounds[GameData.FieldNr].Finished)
|
||||
GameData.CurrentRoundNr++;
|
||||
|
||||
CPoints points = CBase.Game.GetPoints();
|
||||
SPlayer[] results = CBase.Game.GetPlayers();
|
||||
if (results == null)
|
||||
|
||||
if (results == null || results.Length < 2)
|
||||
return;
|
||||
|
||||
if (results.Length < 2)
|
||||
return;
|
||||
//Sum up all points
|
||||
for (int r = 0; r < points.NumRounds; r++)
|
||||
{
|
||||
SPlayer[] player = points.GetPlayer(r, 2);
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
results[i].Points += player[i].Points;
|
||||
results[i].PointsGoldenNotes += player[i].PointsGoldenNotes;
|
||||
results[i].PointsLineBonus += player[i].PointsLineBonus;
|
||||
}
|
||||
}
|
||||
|
||||
//Calc average of points
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
results[i].Points /= points.NumRounds;
|
||||
results[i].PointsGoldenNotes /= points.NumRounds;
|
||||
results[i].PointsLineBonus /= points.NumRounds;
|
||||
}
|
||||
|
||||
//Decide who has won
|
||||
GameData.Rounds[GameData.FieldNr].PointsTeam1 = (int)Math.Round(results[0].Points);
|
||||
GameData.Rounds[GameData.FieldNr].PointsTeam2 = (int)Math.Round(results[1].Points);
|
||||
GameData.Rounds[GameData.FieldNr].Finished = true;
|
||||
|
||||
@@ -160,8 +160,8 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
|
||||
_SelectSlides[_SelectSlideGameMode].Visible = true;
|
||||
_SelectSlides[_SelectSlideGameMode].Clear();
|
||||
_SelectSlides[_SelectSlideGameMode].SetValues<EGameMode>((int)_PartyMode.GameData.GameMode);
|
||||
_SelectSlides[_SelectSlideGameMode].RemoveValue(EGameMode.TR_GAMEMODE_MEDLEY.ToString());
|
||||
_SelectSlides[_SelectSlideGameMode].AddValues(_PartyMode.AvailableGameModes.Select(gm => gm.ToString()));
|
||||
_SelectSlides[_SelectSlideGameMode].Selection = _PartyMode.GameData.GameMode;
|
||||
}
|
||||
|
||||
private void _UpdateSlides()
|
||||
@@ -171,9 +171,9 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
_PartyMode.GameData.SongSource = (ESongSource)_SelectSlides[_SelectSlideSongSource].Selection;
|
||||
_PartyMode.GameData.PlaylistID = _SelectSlides[_SelectSlidePlaylist].Selection;
|
||||
_PartyMode.GameData.CategoryIndex = _SelectSlides[_SelectSlideCategory].Selection;
|
||||
_PartyMode.GameData.GameMode = (EGameMode)_SelectSlides[_SelectSlideGameMode].Selection;
|
||||
_PartyMode.GameData.GameMode = _SelectSlides[_SelectSlideGameMode].Selection;
|
||||
|
||||
EGameMode gm = _PartyMode.GameData.GameMode;
|
||||
EGameMode gm = _PartyMode.AvailableGameModes[_PartyMode.GameData.GameMode];
|
||||
|
||||
if (_PartyMode.GameData.SongSource == ESongSource.TR_PLAYLIST)
|
||||
{
|
||||
|
||||
@@ -98,6 +98,9 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
|
||||
_CreateFields();
|
||||
_Buttons[_ButtonField].Visible = false;
|
||||
|
||||
_Statics[_StaticAvatarT1].Aspect = EAspect.Crop;
|
||||
_Statics[_StaticAvatarT2].Aspect = EAspect.Crop;
|
||||
}
|
||||
|
||||
public override bool HandleInput(SKeyEvent keyEvent)
|
||||
|
||||
@@ -24,6 +24,12 @@
|
||||
static constexpr double BaseToneFrequency = 65.4064; // lowest (half-)tone to analyze (C2 = 65.4064 Hz)
|
||||
static constexpr double HalftoneBase = 1.05946309436; // 2^(1/12) -> HalftoneBase^12 = 2 (one octave)
|
||||
|
||||
template<typename T>
|
||||
T abs_template(T t)
|
||||
{
|
||||
return t>0 ? t : -t;
|
||||
}
|
||||
|
||||
int PtAKF::_InitCount = 0;
|
||||
float* restrict PtAKF::_SamplesPerPeriodPerTone = NULL;
|
||||
float* restrict PtAKF::_SamplesPerPeriodPerToneFine = NULL;
|
||||
@@ -360,7 +366,7 @@ float PtAKF::_AMDFBySampleCt(float samples[_SampleCt], float samplesPerPeriodD){
|
||||
// calc distance to corresponding sample in next period
|
||||
float xn = samples[sampleIndex];
|
||||
float xnt = samples[correlatingSampleIndex] * fLow + samples[correlatingSampleIndex + 1] * fHigh;
|
||||
accumDist += abs(xn - xnt);
|
||||
accumDist += abs_template(xn - xnt);
|
||||
}
|
||||
|
||||
return accumDist / sampleIndex;
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||

|
||||

|
||||
|
||||
[](https://ci.appveyor.com/project/VocaluxeBuildBot/vocaluxe/branch/develop)
|
||||
[](https://vocaluxe.org/#download)
|
||||
[](https://vocaluxe.org/#download)
|
||||
[](https://github.com/Vocaluxe/Vocaluxe/labels/bug)
|
||||
[](https://github.com/Vocaluxe/Vocaluxe/labels/feature%20request)
|
||||
[](https://github.com/Vocaluxe/Vocaluxe/blob/develop/LICENSE.txt)
|
||||
|
||||
[1. About](#1-about)
|
||||
[2. Download](#2-download)
|
||||
@@ -12,17 +19,15 @@ It features mouse, keyboard, gamepad and Wiimote navigation, a multi-language in
|
||||
Vocaluxe offers diversified party modes and can optionally be controlled via a browser (desktop and mobile supported).
|
||||
|
||||
Supported Operating Systems / Requirements:
|
||||
- WinXP, Vista, Windows 7, Windows 8, Windows 8.1 and Windows 10 with .NET 4.0
|
||||
- Linux (tested on Arch Linux)
|
||||
- Windows Vista, Windows 7, Windows 8, Windows 8.1 and Windows 10 with .NET 4.0
|
||||
- *Linux* (no official support)
|
||||
- 1 GHz CPU, 512 MB RAM, Graphics card with OpenGL 2.1 or DirectX 9.0 support
|
||||
- Visual C++ Redistributable Package 2010
|
||||
|
||||
|
||||
## 2. Download
|
||||
You can download precompiled Windows binaries at here:
|
||||
http://vocaluxe.sourceforge.net/index.php?p=download
|
||||
|
||||
Nightly builds are available here:
|
||||
https://github.com/Vocaluxe/Vocaluxe/releases
|
||||
https://vocaluxe.org/#download
|
||||
|
||||
## 3. Contributing
|
||||
You want to fix a bug or add a cool new feature to Vocaluxe? Awesome!
|
||||
@@ -43,6 +48,7 @@ You have a problem or a question implementing your change?
|
||||
Just [open an issue](https://github.com/Vocaluxe/Vocaluxe/issues/new) or mention `@Vocaluxe` in a comment on GitHub.
|
||||
|
||||
## 4. Help & Support
|
||||
Vocaluxe Homepage: https://vocaluxe.org/
|
||||
GitHub Wiki: https://github.com/Vocaluxe/Vocaluxe/wiki
|
||||
GitHub Issues Tracker: https://github.com/Vocaluxe/Vocaluxe/issues
|
||||
Translations: https://www.transifex.com/projects/p/vocaluxe/
|
||||
|
||||
@@ -51,6 +51,7 @@ namespace Vocaluxe.Base
|
||||
private static Task _PreviewStartHelperTask;
|
||||
private static int _PreviewStartWaitCounter;
|
||||
private const int _PreviewStartWaitMaxTries = 10;
|
||||
private static readonly object _PreviewStartHelperTaskLock = new Object();
|
||||
|
||||
public static bool VideoEnabled
|
||||
{
|
||||
@@ -256,10 +257,16 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
if (_PreviewStartHelperTask != null && ( _PreviewPlayer.Length > 0 || _PreviewStartWaitCounter++ >= _PreviewStartWaitMaxTries))
|
||||
{
|
||||
_PreviewStartHelperTask.RunSynchronously(TaskScheduler.FromCurrentSynchronizationContext());
|
||||
_PreviewStartHelperTask.Dispose();
|
||||
_PreviewStartHelperTask = null;
|
||||
_PreviewStartWaitCounter = 0;
|
||||
lock (_PreviewStartHelperTaskLock)
|
||||
{
|
||||
// Recheck the condition as it cloud have change before we got the lock
|
||||
if (_PreviewStartHelperTask != null && (_PreviewPlayer.Length > 0 || _PreviewStartWaitCounter++ >= _PreviewStartWaitMaxTries))
|
||||
{
|
||||
_PreviewStartHelperTask.RunSynchronously(TaskScheduler.FromCurrentSynchronizationContext());
|
||||
_PreviewStartHelperTask = null;
|
||||
_PreviewStartWaitCounter = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!IsPlaying)
|
||||
@@ -315,30 +322,42 @@ namespace Vocaluxe.Base
|
||||
|
||||
|
||||
//Change song position only if song is changed or near to end
|
||||
if (songChanged || _CurPlayer.Position + 30 < _CurPlayer.Length)
|
||||
if (songChanged || _CurPlayer.Position + 30 < _CurPlayer.Length || _PreviewStartHelperTask == null)
|
||||
{
|
||||
_PreviewStartHelperTask = new Task(() =>
|
||||
lock (_PreviewStartHelperTaskLock)
|
||||
{
|
||||
float length = _PreviewPlayer.Length;
|
||||
if (length < 1)
|
||||
length = 30; // If length is unknow or invalid assume a length of 30s
|
||||
_PreviewStartHelperTask = new Task(() =>
|
||||
{
|
||||
float length = _PreviewPlayer.Length;
|
||||
if (length < 1)
|
||||
length = 30; // If length is unknow or invalid assume a length of 30s
|
||||
|
||||
if (start < 0)
|
||||
start = (song.Preview.Source == EDataSource.None) ? length / 4f : song.Preview.StartTime;
|
||||
if (start > length - 5f)
|
||||
start = Math.Max(0f, Math.Min(length / 4f, length - 5f));
|
||||
if (start >= 0.5f)
|
||||
start -= 0.5f;
|
||||
if (start < 0)
|
||||
start = (song.Preview.Source == EDataSource.None) ? length / 4f : song.Preview.StartTime;
|
||||
if (start > length - 5f)
|
||||
start = Math.Max(0f, Math.Min(length / 4f, length - 5f));
|
||||
if (start >= 0.5f)
|
||||
start -= 0.5f;
|
||||
|
||||
_PreviewPlayer.Position = start;
|
||||
Play();
|
||||
});
|
||||
_PreviewPlayer.Position = start;
|
||||
Play();
|
||||
});
|
||||
}
|
||||
_CurPlayer = _PreviewPlayer;
|
||||
}
|
||||
else
|
||||
{
|
||||
_PreviewStartHelperTask.Dispose();
|
||||
_PreviewStartHelperTask = null;
|
||||
if (_PreviewStartHelperTask != null)
|
||||
{
|
||||
lock (_PreviewStartHelperTaskLock)
|
||||
{
|
||||
// Recheck the condition as it cloud have change before we got the lock
|
||||
if (_PreviewStartHelperTask != null)
|
||||
{
|
||||
_PreviewStartHelperTask = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
_PreviewPlayer.Position = _CurPlayer.Position;
|
||||
_CurPlayer = _PreviewPlayer;
|
||||
Play();
|
||||
|
||||
+36
-19
@@ -191,13 +191,14 @@ namespace Vocaluxe.Base
|
||||
public static event OnSongMenuChanged SongMenuChanged;
|
||||
|
||||
//Folders
|
||||
//We need full path for folders for matching folder path with textfile path when loading
|
||||
public static readonly List<string> SongFolders = new List<string>
|
||||
{
|
||||
#if WIN
|
||||
CSettings.FolderNameSongs
|
||||
#elif INSTALLER
|
||||
CSettings.FolderNameSongs,
|
||||
Path.Combine(CSettings.DataFolder, CSettings.FolderNameSongs)
|
||||
#if INSTALLER
|
||||
Path.Combine(CSettings.DataFolder, CSettings.FolderNameSongs),
|
||||
Path.Combine(CSettings.ProgramFolder, FolderNameSongs)
|
||||
#elif WIN
|
||||
Path.Combine(CSettings.ProgramFolder, CSettings.FolderNameSongs)
|
||||
#elif LINUX
|
||||
Path.Combine(CSettings.DataFolder, CSettings.FolderNameSongs)
|
||||
#endif
|
||||
@@ -208,11 +209,11 @@ namespace Vocaluxe.Base
|
||||
/// </summary>
|
||||
public static readonly List<string> ProfileFolders = new List<string>
|
||||
{
|
||||
#if WIN
|
||||
#if INSTALLER
|
||||
Path.Combine(CSettings.DataFolder, CSettings.FolderNameProfiles),
|
||||
CSettings.FolderNameProfiles
|
||||
#elif WIN
|
||||
CSettings.FolderNameProfiles
|
||||
#elif INSTALLER
|
||||
CSettings.FolderNameProfiles,
|
||||
Path.Combine(CSettings.DataFolder, CSettings.FolderNameProfiles)
|
||||
#elif LINUX
|
||||
Path.Combine(CSettings.DataFolder, CSettings.FolderNameProfiles)
|
||||
#endif
|
||||
@@ -335,15 +336,8 @@ namespace Vocaluxe.Base
|
||||
else
|
||||
Config = xml.DeserializeString<SConfig>("<root />");
|
||||
|
||||
if (Config.Game.SongFolder.Length > 0 && Config.Game.SongFolder[0] != "")
|
||||
{
|
||||
SongFolders.Clear();
|
||||
SongFolders.AddRange(Config.Game.SongFolder);
|
||||
}
|
||||
else
|
||||
{
|
||||
Config.Game.SongFolder = SongFolders.ToArray();
|
||||
}
|
||||
NormalizeSongPaths();
|
||||
|
||||
if ((Config.Game.ScoreAnimationTime > 0 && Config.Game.ScoreAnimationTime < 1) || Config.Game.ScoreAnimationTime < 0)
|
||||
Config.Game.ScoreAnimationTime = 1;
|
||||
|
||||
@@ -625,6 +619,29 @@ namespace Vocaluxe.Base
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set song path if none is find in config and check if every path exists
|
||||
/// </summary>
|
||||
public static void NormalizeSongPaths()
|
||||
{
|
||||
//Check if there are configured songfolders
|
||||
if (Config.Game.SongFolder.Length > 0 && Config.Game.SongFolder[0] != "")
|
||||
{
|
||||
SongFolders.Clear();
|
||||
|
||||
foreach (string folder in Config.Game.SongFolder)
|
||||
{
|
||||
//Check if folder exists
|
||||
if (Directory.Exists(folder))
|
||||
SongFolders.Add(Path.GetFullPath(folder));
|
||||
}
|
||||
}
|
||||
|
||||
//Test if songfolders are still empty or now empty
|
||||
if(Config.Game.SongFolder.Length == 0)
|
||||
Config.Game.SongFolder = SongFolders.ToArray();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Load command-line-parameters and their values to lists.
|
||||
/// </summary>
|
||||
@@ -786,4 +803,4 @@ namespace Vocaluxe.Base
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -84,7 +84,7 @@ namespace Vocaluxe.Base
|
||||
if (_WidthTrimmed < 0f)
|
||||
{
|
||||
string text = Text.TrimEnd(null);
|
||||
_WidthTrimmed = text.Length == Text.Length ? Width : _Graphics.MeasureString(text, _Font, -1, StringFormat.GenericTypographic).Width;
|
||||
_WidthTrimmed = text.Length == Text.Length ? Width : _Graphics.MeasureString(text, _Font).Width;
|
||||
}
|
||||
return _WidthTrimmed;
|
||||
}
|
||||
@@ -94,7 +94,7 @@ namespace Vocaluxe.Base
|
||||
public CTextElement(string text, Graphics g, Font font)
|
||||
{
|
||||
Text = text;
|
||||
SizeF dimensions = g.MeasureString(text, font, -1, StringFormat.GenericTypographic);
|
||||
SizeF dimensions = g.MeasureString(text, font);
|
||||
Width = dimensions.Width;
|
||||
Height = (dimensions.Height + font.Height) / 2;
|
||||
_Graphics = g;
|
||||
|
||||
+24
-3
@@ -822,7 +822,14 @@ namespace Vocaluxe.Base
|
||||
|
||||
public void Close(ref CVideoStream stream)
|
||||
{
|
||||
CVideo.Close(ref stream);
|
||||
try
|
||||
{
|
||||
CVideo.Close(ref stream);
|
||||
}
|
||||
catch (NotSupportedException e)
|
||||
{
|
||||
CLog.LogError($"Clould not close the background video: {e.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
public void SetLoop(CVideoStream stream, bool loop = true)
|
||||
@@ -832,12 +839,26 @@ namespace Vocaluxe.Base
|
||||
|
||||
public void Pause(CVideoStream stream)
|
||||
{
|
||||
CVideo.Pause(stream);
|
||||
try
|
||||
{
|
||||
CVideo.Pause(stream);
|
||||
}
|
||||
catch (NotSupportedException e)
|
||||
{
|
||||
CLog.LogError($"Clould not pause the background video: {e.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
public void Resume(CVideoStream stream)
|
||||
{
|
||||
CVideo.Resume(stream);
|
||||
try
|
||||
{
|
||||
CVideo.Resume(stream);
|
||||
}
|
||||
catch (NotSupportedException e)
|
||||
{
|
||||
CLog.LogError($"Clould not resume the background video: {e.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -20,8 +20,10 @@ using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using VocaluxeLib;
|
||||
using VocaluxeLib.Xml;
|
||||
|
||||
namespace Vocaluxe.Base
|
||||
{
|
||||
@@ -35,6 +37,8 @@ namespace Vocaluxe.Base
|
||||
// ReSharper restore UnusedMember.Global
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// This class contains settings for the program
|
||||
/// These are not editable, everything that can be changed by the user is in CConfig
|
||||
@@ -52,26 +56,7 @@ namespace Vocaluxe.Base
|
||||
//TODO: This should not be here as it can change
|
||||
//State of the program
|
||||
public static EProgramState ProgramState = EProgramState.Start;
|
||||
|
||||
//Adjusting of programName and version now in the assembly config.
|
||||
private static readonly Dictionary<string,string> _CodeNames = new Dictionary<string, string>()
|
||||
{
|
||||
{"0.3.", "Shining Heaven"},
|
||||
{"0.4.", "Blue Sunrise"}
|
||||
};
|
||||
|
||||
private static string _ProgramCodeName
|
||||
{
|
||||
get
|
||||
{
|
||||
var versionParts = Application.ProductVersion.Split('.');
|
||||
string name;
|
||||
_CodeNames.TryGetValue($"{versionParts[0]}.{versionParts[1]}.", out name);
|
||||
if (name != null)
|
||||
return name;
|
||||
return "Unnamed Version";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static ERevision VersionRevision
|
||||
{
|
||||
@@ -208,6 +193,7 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
get { return _Assembly.Name; }
|
||||
}
|
||||
|
||||
private static string _Version
|
||||
{
|
||||
get
|
||||
@@ -215,39 +201,10 @@ namespace Vocaluxe.Base
|
||||
return Application.ProductVersion.Split('-').First();
|
||||
}
|
||||
}
|
||||
|
||||
private static string _GetVersionText()
|
||||
{
|
||||
string version = _Version + " (" + _Arch + ")";
|
||||
|
||||
string gitversion = Application.ProductVersion;
|
||||
|
||||
if (VersionRevision != ERevision.Release || gitversion.Split('-')[1] != "0")
|
||||
{
|
||||
version += " " + _GetVersionStatus() + String.Format(" ({0})", gitversion);
|
||||
}
|
||||
|
||||
return version;
|
||||
}
|
||||
|
||||
|
||||
public static string GetFullVersionText()
|
||||
{
|
||||
string version = ProgramName;
|
||||
|
||||
if (_ProgramCodeName != "")
|
||||
version += " \"" + _ProgramCodeName + "\"";
|
||||
|
||||
return version + " " + _GetVersionText();
|
||||
}
|
||||
|
||||
private static string _GetVersionStatus()
|
||||
{
|
||||
string result = "";
|
||||
|
||||
if (VersionRevision != ERevision.Release)
|
||||
result = Enum.GetName(typeof(ERevision), VersionRevision);
|
||||
|
||||
return result;
|
||||
return ((AssemblyTitleAttribute)Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false).First()).Title;
|
||||
}
|
||||
|
||||
public static float GetRenderAspect()
|
||||
|
||||
@@ -126,10 +126,10 @@ namespace Vocaluxe.Base
|
||||
string noCategoryName;
|
||||
switch (CSongs.Sorter.SongSorting)
|
||||
{
|
||||
case ESongSorting.TR_CONFIG_FOLDER:
|
||||
case ESongSorting.TR_CONFIG_NONE:
|
||||
noCategoryName = CLanguage.Translate("TR_SCREENSONG_ALLSONGS");
|
||||
break;
|
||||
case ESongSorting.TR_CONFIG_FOLDER:
|
||||
case ESongSorting.TR_CONFIG_ARTIST:
|
||||
case ESongSorting.TR_CONFIG_ARTIST_LETTER:
|
||||
case ESongSorting.TR_CONFIG_TITLE_LETTER:
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
// along with Vocaluxe. If not, see <http://www.gnu.org/licenses/>.
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using Vocaluxe.Lib.Video;
|
||||
using VocaluxeLib;
|
||||
|
||||
@@ -61,6 +62,10 @@ namespace Vocaluxe.Base
|
||||
|
||||
public static CVideoStream Load(string videoFileName)
|
||||
{
|
||||
if (_VideoDecoder == null)
|
||||
{
|
||||
throw new NotSupportedException("_VideoDecoder is null (already closed?)");
|
||||
}
|
||||
return _VideoDecoder.Load(videoFileName);
|
||||
}
|
||||
|
||||
@@ -73,41 +78,109 @@ namespace Vocaluxe.Base
|
||||
|
||||
public static float GetLength(CVideoStream stream)
|
||||
{
|
||||
if (stream == null)
|
||||
{
|
||||
throw new ArgumentException("stream is null");
|
||||
}
|
||||
if (_VideoDecoder == null)
|
||||
{
|
||||
throw new NotSupportedException("_VideoDecoder is null (already closed?)");
|
||||
}
|
||||
|
||||
return _VideoDecoder.GetLength(stream);
|
||||
}
|
||||
|
||||
public static bool GetFrame(CVideoStream stream, float time)
|
||||
{
|
||||
if (stream == null)
|
||||
{
|
||||
throw new ArgumentException("stream is null");
|
||||
}
|
||||
if (_VideoDecoder == null)
|
||||
{
|
||||
throw new NotSupportedException("_VideoDecoder is null (already closed?)");
|
||||
}
|
||||
|
||||
return _VideoDecoder.GetFrame(stream, time);
|
||||
}
|
||||
|
||||
public static bool Skip(CVideoStream stream, float start, float gap)
|
||||
{
|
||||
if (stream == null)
|
||||
{
|
||||
throw new ArgumentException("stream is null");
|
||||
}
|
||||
if (_VideoDecoder == null)
|
||||
{
|
||||
throw new NotSupportedException("_VideoDecoder is null (already closed?)");
|
||||
}
|
||||
|
||||
return _VideoDecoder.Skip(stream, start, gap);
|
||||
}
|
||||
|
||||
public static void SetLoop(CVideoStream stream, bool loop)
|
||||
{
|
||||
if (stream == null)
|
||||
{
|
||||
throw new ArgumentException("stream is null");
|
||||
}
|
||||
if (_VideoDecoder == null)
|
||||
{
|
||||
throw new NotSupportedException("_VideoDecoder is null (already closed?)");
|
||||
}
|
||||
|
||||
_VideoDecoder.SetLoop(stream, loop);
|
||||
}
|
||||
|
||||
public static void Pause(CVideoStream stream)
|
||||
{
|
||||
if (stream == null)
|
||||
{
|
||||
throw new ArgumentException("stream is null");
|
||||
}
|
||||
if (_VideoDecoder == null)
|
||||
{
|
||||
throw new NotSupportedException("_VideoDecoder is null (already closed?)");
|
||||
}
|
||||
|
||||
_VideoDecoder.Pause(stream);
|
||||
}
|
||||
|
||||
public static void Resume(CVideoStream stream)
|
||||
{
|
||||
if (stream == null)
|
||||
{
|
||||
throw new ArgumentException("stream is null");
|
||||
}
|
||||
if (_VideoDecoder == null)
|
||||
{
|
||||
throw new NotSupportedException("_VideoDecoder is null (already closed?)");
|
||||
}
|
||||
|
||||
_VideoDecoder.Resume(stream);
|
||||
}
|
||||
|
||||
public static bool Finished(CVideoStream stream)
|
||||
{
|
||||
if (stream == null)
|
||||
{
|
||||
throw new ArgumentException("stream is null");
|
||||
}
|
||||
if (_VideoDecoder == null)
|
||||
{
|
||||
throw new NotSupportedException("_VideoDecoder is null (already closed?)");
|
||||
}
|
||||
|
||||
return _VideoDecoder.Finished(stream);
|
||||
}
|
||||
|
||||
public static void Update()
|
||||
{
|
||||
if (_VideoDecoder == null)
|
||||
{
|
||||
throw new NotSupportedException("_VideoDecoder is null (already closed?)");
|
||||
}
|
||||
|
||||
_VideoDecoder.Update();
|
||||
}
|
||||
#endregion Interface
|
||||
|
||||
@@ -53,6 +53,10 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
_VideoTimer.Reset();
|
||||
_Finished = false;
|
||||
if (_VideoStream == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
//CVideo.VdSkip(_VideoStream, 0f, 0f);
|
||||
_VideoTimer.Start();
|
||||
CVideo.Resume(_VideoStream);
|
||||
@@ -60,12 +64,19 @@ namespace Vocaluxe.Base
|
||||
|
||||
public void Pause()
|
||||
{
|
||||
CVideo.Pause(_VideoStream);
|
||||
if (_VideoStream != null)
|
||||
{
|
||||
CVideo.Pause(_VideoStream);
|
||||
}
|
||||
_VideoTimer.Stop();
|
||||
}
|
||||
|
||||
public void Resume()
|
||||
{
|
||||
if (_VideoStream == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
CVideo.Resume(_VideoStream);
|
||||
_VideoTimer.Start();
|
||||
}
|
||||
@@ -92,7 +103,7 @@ namespace Vocaluxe.Base
|
||||
|
||||
public void PreLoad()
|
||||
{
|
||||
if (!_Loaded)
|
||||
if (!_Loaded || _VideoStream == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -111,7 +122,10 @@ namespace Vocaluxe.Base
|
||||
|
||||
public void Close()
|
||||
{
|
||||
CVideo.Close(ref _VideoStream);
|
||||
if (_VideoStream != null)
|
||||
{
|
||||
CVideo.Close(ref _VideoStream);
|
||||
}
|
||||
_Loaded = false;
|
||||
_Finished = false;
|
||||
_VideoTimer.Reset();
|
||||
|
||||
@@ -51,7 +51,13 @@ namespace Vocaluxe.Base.Fonts
|
||||
if (chr != ' ')
|
||||
{
|
||||
//Gets exact height and width for drawing more than 1 char. But width is to small to draw char on bitmap as e.g. italic chars will get cropped
|
||||
_BoundingBox = g.MeasureString(chrString, fo, -1, StringFormat.GenericTypographic);
|
||||
//See https://stackoverflow.com/questions/11708621/how-to-measure-width-of-a-string-precisely
|
||||
StringFormat format = StringFormat.GenericTypographic;
|
||||
RectangleF rect = new RectangleF(0, 0, 1000, 1000);
|
||||
CharacterRange[] ranges = { new CharacterRange(0, chrString.Length) };
|
||||
format.SetMeasurableCharacterRanges(ranges);
|
||||
_BoundingBox = g.MeasureCharacterRanges(chrString, fo, rect, format)[0].GetBounds(g).Size;
|
||||
|
||||
// ReSharper disable CompareOfFloatsByEqualityOperator
|
||||
if (_BoundingBox.Height == 0)
|
||||
// ReSharper restore CompareOfFloatsByEqualityOperator
|
||||
|
||||
@@ -116,13 +116,20 @@ namespace Vocaluxe
|
||||
public static bool CheckRequirements()
|
||||
{
|
||||
#if WIN
|
||||
if (!_IsVC2012Installed())
|
||||
if (!_IsVC2010Installed())
|
||||
{
|
||||
CLog.LogError(
|
||||
"VC++ 2010 Redistributables are missing. Please install them first. \r\nDownload(x86): https://www.microsoft.com/de-de/download/details.aspx?id=5555 \r\nDownload(x64): https://www.microsoft.com/de-de/download/details.aspx?id=14632",
|
||||
true, true);
|
||||
return false;
|
||||
}
|
||||
/*if (!_IsVC2012Installed())
|
||||
{
|
||||
CLog.LogError(
|
||||
"VC++ 2012 Redistributables are missing. Please install them first.\r\nDownload: http://www.microsoft.com/de-de/download/details.aspx?id=30679",
|
||||
true, true);
|
||||
return false;
|
||||
}
|
||||
}*/
|
||||
/*
|
||||
bool vc2008Installed = _IsVC2008Installed();
|
||||
if (!vc2008Installed)
|
||||
|
||||
@@ -88,18 +88,24 @@
|
||||
- Spectrum Analyzer (Record Screen and Player Selection Screen)
|
||||
- WiiMote Support
|
||||
|
||||
+ v0.3.0 Shining Heaven (reached: ??.0?.2013):
|
||||
+ v0.3.0 Shining Heaven (release skipped):
|
||||
- Party Mode Support
|
||||
- Party Mode: Challenge Mode (with more than 2 player at once)
|
||||
- Party Mode: Challenge Medley Mode
|
||||
- Party Mode: Tic, Tac, Toe
|
||||
- GStreamer Audio Support
|
||||
- Smartphone control (webserver)
|
||||
- Dynamic cover generation
|
||||
- New Song View: List
|
||||
|
||||
+ v0.4.0 (reached: ??.??.201?):
|
||||
+ v0.4.0 Blue Sunrise (reached: ??.??.201?):
|
||||
- A lot of restructered and rewritten lines of code
|
||||
- Some minor and bigger improvements and additions
|
||||
- Updated audio and video libs
|
||||
- New infrastructure: CI with nightly builds, new homepage, updated installer
|
||||
|
||||
-----------------
|
||||
just some ideas:
|
||||
- Installer
|
||||
- More Song List Views
|
||||
- Tile Board: Show title and artist under each tile
|
||||
- OnScreen Keyboard?
|
||||
@@ -121,4 +127,4 @@ some feature wishes:
|
||||
|
||||
- Party Modes:
|
||||
* add sing modes: hide notes, hide lyrics, ...
|
||||
* add a party mode where you can assign song categories and/or playlists to the profiles
|
||||
* add a party mode where you can assign song categories and/or playlists to the profiles
|
||||
@@ -463,10 +463,19 @@ namespace Vocaluxe.Lib.Database
|
||||
if (reader != null && reader.HasRows)
|
||||
{
|
||||
reader.Read();
|
||||
artist = reader.GetString(0);
|
||||
title = reader.GetString(1);
|
||||
numPlayed = reader.GetInt32(2);
|
||||
dateAdded = new DateTime(reader.GetInt64(3));
|
||||
|
||||
if (!reader.IsDBNull(0))
|
||||
artist = reader.GetString(0);
|
||||
|
||||
if (!reader.IsDBNull(1))
|
||||
title = reader.GetString(1);
|
||||
|
||||
if (!reader.IsDBNull(2))
|
||||
numPlayed = reader.GetInt32(2);
|
||||
|
||||
if (!reader.IsDBNull(3))
|
||||
dateAdded = new DateTime(reader.GetInt64(3));
|
||||
|
||||
reader.Dispose();
|
||||
return true;
|
||||
}
|
||||
@@ -604,7 +613,7 @@ namespace Vocaluxe.Lib.Database
|
||||
{
|
||||
//Check for USDX 1.1 DB
|
||||
_CreateHighscoreDBV1(filePath);
|
||||
result &= !_ConvertFrom110(filePath);
|
||||
result &= _ConvertFrom110(filePath);
|
||||
result &= _UpdateDatabase(1, connection);
|
||||
result &= _UpdateDatabase(2, connection);
|
||||
}
|
||||
@@ -733,13 +742,22 @@ namespace Vocaluxe.Lib.Database
|
||||
transaction.Commit();
|
||||
|
||||
//Delete old tables after conversion
|
||||
command.CommandText = "DROP TABLE US_Scores;";
|
||||
command.CommandText = "DROP TABLE IF EXISTS us_scores;";
|
||||
command.ExecuteNonQuery();
|
||||
|
||||
command.CommandText = "DROP TABLE US_Songs;";
|
||||
command.CommandText = "DROP TABLE IF EXISTS us_songs;";
|
||||
command.ExecuteNonQuery();
|
||||
|
||||
command.CommandText = "DROP TABLE us_statistics_info;";
|
||||
command.CommandText = "DROP TABLE IF EXISTS us_statistics_info;";
|
||||
command.ExecuteNonQuery();
|
||||
|
||||
command.CommandText = "DROP TABLE IF EXISTS us_users_info;";
|
||||
command.ExecuteNonQuery();
|
||||
|
||||
command.CommandText = "DROP TABLE IF EXISTS us_webs;";
|
||||
command.ExecuteNonQuery();
|
||||
|
||||
command.CommandText = "DROP TABLE IF EXISTS us_webs_stats;";
|
||||
command.ExecuteNonQuery();
|
||||
|
||||
//This versioning is not used in Vocaluxe so reset it to 0
|
||||
@@ -918,7 +936,7 @@ namespace Vocaluxe.Lib.Database
|
||||
|
||||
if (currentVersion < 2)
|
||||
updated &= _ConvertV1toV2(connection);
|
||||
if (currentVersion < 3)
|
||||
else if (currentVersion < 3)
|
||||
updated &= _ConvertV2toV3(connection);
|
||||
|
||||
return updated;
|
||||
|
||||
@@ -556,13 +556,13 @@ namespace Vocaluxe.Lib.Draw
|
||||
/// </summary>
|
||||
public void MakeScreenShot()
|
||||
{
|
||||
string file = CHelper.GetUniqueFileName(Path.Combine(CSettings.DataFolder, CSettings.FolderNameScreenshots), "Screenshot.bmp");
|
||||
string file = CHelper.GetUniqueFileName(Path.Combine(CSettings.DataFolder, CSettings.FolderNameScreenshots), "Screenshot.png");
|
||||
|
||||
//create a surface of the frame
|
||||
using (Surface surface = _Device.GetBackBuffer(0, 0))
|
||||
{
|
||||
var screen = new Bitmap(Surface.ToStream(surface, ImageFileFormat.Bmp));
|
||||
screen.Save(file, ImageFormat.Bmp);
|
||||
var screen = new Bitmap(Surface.ToStream(surface, ImageFileFormat.Png));
|
||||
screen.Save(file, ImageFormat.Png);
|
||||
screen.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -303,7 +303,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
|
||||
public void MakeScreenShot()
|
||||
{
|
||||
string file = CHelper.GetUniqueFileName(Path.Combine(CSettings.DataFolder, CSettings.FolderNameScreenshots), "Screenshot.bmp");
|
||||
string file = CHelper.GetUniqueFileName(Path.Combine(CSettings.DataFolder, CSettings.FolderNameScreenshots), "Screenshot.png");
|
||||
|
||||
_Backbuffer.Save(file, ImageFormat.Png);
|
||||
}
|
||||
|
||||
@@ -291,7 +291,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
|
||||
public void MakeScreenShot()
|
||||
{
|
||||
string file = CHelper.GetUniqueFileName(Path.Combine(CSettings.DataFolder, CSettings.FolderNameScreenshots), "Screenshot.bmp");
|
||||
string file = CHelper.GetUniqueFileName(Path.Combine(CSettings.DataFolder, CSettings.FolderNameScreenshots), "Screenshot.png");
|
||||
|
||||
int width = GetScreenWidth();
|
||||
int height = GetScreenHeight();
|
||||
@@ -304,7 +304,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
screen.UnlockBits(bmpData);
|
||||
|
||||
screen.RotateFlip(RotateFlipType.RotateNoneFlipY);
|
||||
screen.Save(file, ImageFormat.Bmp);
|
||||
screen.Save(file, ImageFormat.Png);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -74,12 +74,23 @@ namespace Vocaluxe.Lib.Sound
|
||||
}
|
||||
lock (_Mutex)
|
||||
{
|
||||
if (_Disposed)
|
||||
return;
|
||||
Debug.Assert(_RefCount > 0);
|
||||
_RefCount--;
|
||||
if (_RefCount == 0)
|
||||
PortAudio.Pa_Terminate();
|
||||
{
|
||||
try
|
||||
{
|
||||
PortAudio.Pa_Terminate();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
CLog.LogError(errorText: $"Error disposing PortAudio: {ex.Message}", e: ex);
|
||||
}
|
||||
}
|
||||
_Disposed = true;
|
||||
}
|
||||
_Disposed = true;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
@@ -100,11 +111,11 @@ namespace Vocaluxe.Lib.Sound
|
||||
double sampleRate, uint framesPerBuffer, PortAudio.PaStreamFlags streamFlags,
|
||||
PortAudio.PaStreamCallbackDelegate streamCallback, IntPtr userData)
|
||||
{
|
||||
if (_Disposed)
|
||||
throw new ObjectDisposedException("PortAudioHandle already disposed");
|
||||
|
||||
lock (_Mutex)
|
||||
{
|
||||
if (_Disposed)
|
||||
throw new ObjectDisposedException("PortAudioHandle already disposed");
|
||||
|
||||
PortAudio.PaError res = PortAudio.Pa_OpenStream(out stream, ref inputParameters, ref outputParameters, sampleRate, framesPerBuffer, streamFlags, streamCallback,
|
||||
userData);
|
||||
if (res == PortAudio.PaError.paNoError)
|
||||
@@ -157,12 +168,19 @@ namespace Vocaluxe.Lib.Sound
|
||||
|
||||
public void CloseStream(IntPtr stream)
|
||||
{
|
||||
if (_Disposed)
|
||||
throw new ObjectDisposedException("PortAudioHandle already disposed");
|
||||
|
||||
lock (_Mutex)
|
||||
{
|
||||
PortAudio.Pa_CloseStream(stream);
|
||||
if (_Disposed)
|
||||
throw new ObjectDisposedException("PortAudioHandle already disposed");
|
||||
|
||||
try
|
||||
{
|
||||
PortAudio.Pa_CloseStream(stream);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
CLog.LogError(errorText:$"Error closing stream: {ex.Message}", e:ex);
|
||||
}
|
||||
_Streams.Remove(stream);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,14 +70,20 @@ namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_Element != null)
|
||||
|
||||
if (_Element == null || (_Element.CurrentState == State.Paused && _Element.PendingState != State.VoidPending))
|
||||
{
|
||||
long position;
|
||||
if (!_Element.QueryPosition(Format.Time, out position))
|
||||
CLog.LogError("Could not query position");
|
||||
else
|
||||
_Position = ((float)position / Constants.SECOND);
|
||||
return _Position;
|
||||
}
|
||||
|
||||
|
||||
long position;
|
||||
if (!_Element.QueryPosition(Format.Time, out position))
|
||||
CLog.LogError("Could not query position");
|
||||
else
|
||||
_Position = ((float)position / Constants.SECOND);
|
||||
|
||||
|
||||
return _Position;
|
||||
}
|
||||
set
|
||||
@@ -235,6 +241,11 @@ namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp
|
||||
element = _Element;
|
||||
_Element = null; //Now everything "seems" closed
|
||||
}
|
||||
|
||||
// Should not be needed but we had an error report (#226) - so we double check here to prevent a crash
|
||||
if (element == null)
|
||||
return;
|
||||
|
||||
if (element.TargetState == State.Playing)
|
||||
element.SetState(State.Paused); //Stop output
|
||||
if (_CloseStreamListener != null)
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Threading;
|
||||
using Vocaluxe.Base;
|
||||
@@ -142,9 +144,13 @@ namespace Vocaluxe.Lib.Sound.Record.PortAudio
|
||||
|
||||
foreach (IntPtr handle in _RecHandle)
|
||||
{
|
||||
PortAudioSharp.PortAudio.Pa_StopStream(handle);
|
||||
PortAudioSharp.PortAudio.Pa_CloseStream(handle);
|
||||
if (handle != IntPtr.Zero)
|
||||
{
|
||||
PortAudioSharp.PortAudio.Pa_StopStream(handle);
|
||||
PortAudioSharp.PortAudio.Pa_CloseStream(handle);
|
||||
}
|
||||
}
|
||||
_RecHandle = new IntPtr[_Devices.Count];
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -153,13 +159,17 @@ namespace Vocaluxe.Lib.Sound.Record.PortAudio
|
||||
/// </summary>
|
||||
public override void Close()
|
||||
{
|
||||
if (_RecHandle != null)
|
||||
if (_RecHandle != null && _RecHandle.Length > 0)
|
||||
{
|
||||
foreach (IntPtr handle in _RecHandle)
|
||||
{
|
||||
if (handle != IntPtr.Zero)
|
||||
{
|
||||
_PaHandle.CloseStream(handle);
|
||||
}
|
||||
}
|
||||
|
||||
_RecHandle = new IntPtr[_Devices.Count];
|
||||
}
|
||||
if (_PaHandle != null)
|
||||
{
|
||||
|
||||
@@ -58,7 +58,22 @@ namespace Vocaluxe.Lib.Video.Acinerella
|
||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
|
||||
public struct SACFileInfo
|
||||
{
|
||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 512)]
|
||||
public readonly string title;
|
||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 512)]
|
||||
public readonly string author;
|
||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 512)]
|
||||
public readonly string copyright;
|
||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 512)]
|
||||
public readonly string comment;
|
||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 512)]
|
||||
public readonly string album;
|
||||
public readonly int year;
|
||||
public readonly int track;
|
||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
|
||||
public readonly string genre;
|
||||
public readonly Int64 Duration;
|
||||
public readonly int Bitrate;
|
||||
}
|
||||
|
||||
// TAc_instance represents an Acinerella instance. Each instance can open and
|
||||
@@ -105,14 +120,17 @@ namespace Vocaluxe.Lib.Video.Acinerella
|
||||
}
|
||||
|
||||
// Contains information about an Acinerella stream.
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
[StructLayout(LayoutKind.Explicit)]
|
||||
public struct SACStreamInfo
|
||||
{
|
||||
//Contains the type of the stream.
|
||||
[FieldOffset(0)]
|
||||
public readonly EACStreamType StreamType;
|
||||
|
||||
//Additional info about the stream
|
||||
[FieldOffset(8)]
|
||||
public SACAudioStreamInfo AudioInfo;
|
||||
[FieldOffset(8)]
|
||||
public SACVideoStreamInfo VideoInfo;
|
||||
}
|
||||
|
||||
@@ -128,7 +146,7 @@ namespace Vocaluxe.Lib.Video.Acinerella
|
||||
//The timecode of the currently decoded picture in seconds.
|
||||
public readonly double Timecode;
|
||||
|
||||
public readonly double VideoClock;
|
||||
//public readonly double VideoClock;
|
||||
|
||||
//Contains information about the stream the decoder is attached to.
|
||||
public SACStreamInfo StreamInfo;
|
||||
@@ -219,14 +237,14 @@ namespace Vocaluxe.Lib.Video.Acinerella
|
||||
|
||||
// Initializes an Acinerella instance.
|
||||
//function ac_init(): PAc_instance; cdecl; external ac_dll;
|
||||
[DllImport(_AcDll, EntryPoint = "ac_init", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Auto)]
|
||||
private static extern IntPtr _ac_init();
|
||||
[DllImport(_AcDll, EntryPoint = "ac_init_of", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Auto)]
|
||||
private static extern IntPtr _ac_init(EACOutputFormat outputFormat);
|
||||
|
||||
public static IntPtr AcInit()
|
||||
{
|
||||
lock (_Lock)
|
||||
{
|
||||
return _ac_init();
|
||||
return _ac_init(EACOutputFormat.ACOutputRGBA32);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -243,52 +261,7 @@ namespace Vocaluxe.Lib.Video.Acinerella
|
||||
}
|
||||
}
|
||||
|
||||
// Opens a media file.
|
||||
// @param(inst specifies the Acinerella Instance the stream should be opened for)
|
||||
// @param(sender specifies a pointer that is sent to all callback functions to
|
||||
// allow you to do object orientated programming. May be NULL.)
|
||||
// @param(open_proc specifies the callback function that is called, when the
|
||||
// media file is opened. May be NULL.)
|
||||
// @param(close_proc specifies the callback function that is called when the media
|
||||
// file is closed. May be NULL.)
|
||||
/*function ac_open(
|
||||
inst: PAc_instance;
|
||||
sender: Pointer;
|
||||
open_proc: TAc_openclose_callback;
|
||||
read_proc: TAc_read_callback;
|
||||
seek_proc: TAc_seek_callback;
|
||||
close_proc: TAc_openclose_callback;
|
||||
proberesult: PAc_proberesult): integer; cdecl; external ac_dll;
|
||||
*/
|
||||
/*
|
||||
[DllImport(AcDll, EntryPoint = "ac_open", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Auto)]
|
||||
private static extern Int32 _ac_open(
|
||||
IntPtr PAc_instance,
|
||||
IntPtr sender,
|
||||
TAc_openclose_callback open_proc,
|
||||
TAc_read_callback read_proc,
|
||||
TAc_seek_callback seek_proc,
|
||||
TAc_openclose_callback close_proc,
|
||||
IntPtr proberesult
|
||||
);
|
||||
|
||||
public static Int32 ac_open(
|
||||
IntPtr PAc_instance,
|
||||
IntPtr sender,
|
||||
TAc_openclose_callback open_proc,
|
||||
TAc_read_callback read_proc,
|
||||
TAc_seek_callback seek_proc,
|
||||
TAc_openclose_callback close_proc,
|
||||
IntPtr proberesult
|
||||
)
|
||||
{
|
||||
lock (_GetLockToken(pAcDecoder))
|
||||
{
|
||||
return _ac_open(PAc_instance, sender, open_proc, read_proc, seek_proc, close_proc, proberesult);
|
||||
}
|
||||
}*/
|
||||
|
||||
[DllImport(_AcDll, EntryPoint = "ac_open", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
|
||||
[DllImport(_AcDll, EntryPoint = "ac_open_file", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
|
||||
private static extern Int32 _ac_open2(IntPtr pAcInstance, string filename);
|
||||
|
||||
// ReSharper disable UnusedMethodReturnValue.Global
|
||||
@@ -337,28 +310,55 @@ namespace Vocaluxe.Lib.Video.Acinerella
|
||||
[DllImport(_AcDll, EntryPoint = "ac_free_package", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Auto)]
|
||||
public static extern void ac_free_package(IntPtr pAcPackage);
|
||||
|
||||
[DllImport(_AcDll, EntryPoint = "ac_create_video_decoder", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Auto)]
|
||||
private static extern IntPtr _ac_create_video_decoder(IntPtr pAcInstance);
|
||||
[DllImport(_AcDll, EntryPoint = "ac_create_decoder", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Auto)]
|
||||
private static extern IntPtr _ac_create_decoder(IntPtr pAcInstance, int i);
|
||||
|
||||
public static IntPtr AcCreateVideoDecoder(IntPtr pAcInstance)
|
||||
{
|
||||
lock (_GetLockToken(pAcInstance))
|
||||
{
|
||||
return _ac_create_video_decoder(pAcInstance);
|
||||
var firstVideoStreamId = _GetFirstStreamByType(pAcInstance, EACStreamType.ACStreamTypeVideo);
|
||||
|
||||
if (firstVideoStreamId < 0)
|
||||
{
|
||||
throw new ArgumentException("The instace does not contain a video stream.");
|
||||
}
|
||||
|
||||
return _ac_create_decoder(pAcInstance, firstVideoStreamId);
|
||||
}
|
||||
}
|
||||
|
||||
[DllImport(_AcDll, EntryPoint = "ac_create_audio_decoder", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Auto)]
|
||||
private static extern IntPtr _ac_create_audio_decoder(IntPtr pAcInstance);
|
||||
|
||||
|
||||
public static IntPtr AcCreateAudioDecoder(IntPtr pAcInstance)
|
||||
{
|
||||
lock (_GetLockToken(pAcInstance))
|
||||
{
|
||||
return _ac_create_audio_decoder(pAcInstance);
|
||||
var firstAudioStreamId = _GetFirstStreamByType(pAcInstance, EACStreamType.ACStreamTypeAudio);
|
||||
|
||||
if (firstAudioStreamId < 0)
|
||||
{
|
||||
throw new ArgumentException("The instace does not contain a audio stream.");
|
||||
}
|
||||
return _ac_create_decoder(pAcInstance, firstAudioStreamId);
|
||||
}
|
||||
}
|
||||
|
||||
private static int _GetFirstStreamByType(IntPtr pAcInstance, EACStreamType type)
|
||||
{
|
||||
var instance = (SACInstance)Marshal.PtrToStructure(pAcInstance, typeof(SACInstance));
|
||||
|
||||
int currentStream = 0;
|
||||
SACStreamInfo currentStreamInfo;
|
||||
|
||||
while (currentStream < instance.StreamCount)
|
||||
{
|
||||
AcGetStreamInfo(pAcInstance, currentStream, out currentStreamInfo);
|
||||
if (currentStreamInfo.StreamType == type)
|
||||
return currentStream;
|
||||
currentStream++;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Frees an created decoder.
|
||||
//procedure ac_free_decoder(pDecoder: PAc_decoder); cdecl; external ac_dll;
|
||||
[DllImport(_AcDll, EntryPoint = "ac_free_decoder", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Auto)]
|
||||
|
||||
@@ -58,6 +58,7 @@ namespace Vocaluxe.Lib.Video.Acinerella
|
||||
private readonly AutoResetEvent _EvNoMoreFrames = new AutoResetEvent(false);
|
||||
private bool _IsSleeping;
|
||||
private int _WaitCount;
|
||||
private bool _DropSeekEnabled = true; // Used to fallback to frame skipping if seek is failing once on this file
|
||||
|
||||
public float Length { get; private set; }
|
||||
public bool Loop { get; set; }
|
||||
@@ -80,6 +81,7 @@ namespace Vocaluxe.Lib.Video.Acinerella
|
||||
var instance = (SACInstance)Marshal.PtrToStructure(_Instance, typeof(SACInstance));
|
||||
Length = instance.Info.Duration / 1000f;
|
||||
bool ok = instance.Opened && Length > 0.001f;
|
||||
_DropSeekEnabled = true;
|
||||
if (ok)
|
||||
return true;
|
||||
_Free();
|
||||
@@ -333,6 +335,8 @@ namespace Vocaluxe.Lib.Video.Acinerella
|
||||
private void _Decode()
|
||||
{
|
||||
const int minFrameDropCount = 4;
|
||||
// With => seekThreshold frames to drop use seek instead of skip
|
||||
const int seekThreshold = 25; // 25 frames = 0.5 second with _FrameDuration = 0.02f
|
||||
|
||||
if (_NoMoreFrames)
|
||||
return;
|
||||
@@ -345,17 +349,16 @@ namespace Vocaluxe.Lib.Video.Acinerella
|
||||
bool hasFrameDecoded = false;
|
||||
if (dropFrame)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
var frameDropCount = (int)Math.Ceiling(timeDifference / _FrameDuration);
|
||||
// Add 1 dropped frame per 16 frames (Power of 2 -> Div is fast) as skipping takes time too and we don't want to skip again
|
||||
frameDropCount += frameDropCount / 16;
|
||||
hasFrameDecoded = CAcinerella.AcSkipFrames(_Instance, _Videodecoder, frameDropCount);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
CLog.LogError("Error AcSkipFrame " + _FileName);
|
||||
}
|
||||
if (!_DropSeekEnabled || frameDropCount < seekThreshold)
|
||||
{
|
||||
hasFrameDecoded = _DropWithSkip(frameDropCount);
|
||||
}
|
||||
else
|
||||
{
|
||||
hasFrameDecoded = _DropWithSeek(videoTime, frameDropCount);
|
||||
}
|
||||
}
|
||||
|
||||
if (!hasFrameDecoded)
|
||||
@@ -383,12 +386,61 @@ namespace Vocaluxe.Lib.Video.Acinerella
|
||||
}
|
||||
}
|
||||
|
||||
private bool _DropWithSeek(float videoTime, int frameDropCount)
|
||||
{
|
||||
bool hasFrameDecoded = false;
|
||||
try
|
||||
{
|
||||
hasFrameDecoded = CAcinerella.AcSeek(_Videodecoder, 0, (long)videoTime * 1000L);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
CLog.LogError("Error AcSeek " + _FileName);
|
||||
}
|
||||
|
||||
if (!hasFrameDecoded)
|
||||
{
|
||||
// Fallback to frame skipping
|
||||
_DropSeekEnabled = false;
|
||||
hasFrameDecoded = _DropWithSkip(frameDropCount);
|
||||
}
|
||||
|
||||
return hasFrameDecoded;
|
||||
}
|
||||
|
||||
private bool _DropWithSkip(int frameDropCount)
|
||||
{
|
||||
bool hasFrameDecoded = false;
|
||||
// Add 1 dropped frame per 16 frames (Power of 2 -> Div is fast) as skipping takes time too and we don't want to skip again
|
||||
frameDropCount += frameDropCount / 16;
|
||||
try
|
||||
{
|
||||
hasFrameDecoded = CAcinerella.AcSkipFrames(_Instance, _Videodecoder, frameDropCount);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
CLog.LogError("Error AcSkipFrame " + _FileName);
|
||||
}
|
||||
return hasFrameDecoded;
|
||||
}
|
||||
|
||||
//Copies a frame to the buffer but does not set it as 'written'
|
||||
//Returns true if frame data is now in buffer
|
||||
private bool _CopyDecodedFrameToBuffer()
|
||||
{
|
||||
bool result;
|
||||
var decoder = (SACDecoder)Marshal.PtrToStructure(_Videodecoder, typeof(SACDecoder));
|
||||
SACDecoder decoder;
|
||||
|
||||
try
|
||||
{
|
||||
decoder = (SACDecoder)Marshal.PtrToStructure(_Videodecoder, typeof(SACDecoder));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Couldn't copy the frame to the managed environment.", false, false, e);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (decoder.Buffer != IntPtr.Zero)
|
||||
{
|
||||
_LastDecodedTime = (float)decoder.Timecode;
|
||||
@@ -406,6 +458,7 @@ namespace Vocaluxe.Lib.Video.Acinerella
|
||||
{
|
||||
_Free();
|
||||
Stop();
|
||||
return;
|
||||
}
|
||||
|
||||
while (!_Terminated)
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -15,8 +15,8 @@
|
||||
along with Acinerella. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef VIDEOPLAY_H
|
||||
#define VIDEOPLAY_H
|
||||
#ifndef _ACINERELLA_H_
|
||||
#define _ACINERELLA_H_
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
@@ -24,187 +24,495 @@
|
||||
|
||||
#ifdef _WIN32
|
||||
#define CALL_CONVT __cdecl
|
||||
#define EXTERN extern __declspec(dllexport)
|
||||
#else
|
||||
#define CALL_CONVT
|
||||
#define CALL_CONVT
|
||||
#define EXTERN extern
|
||||
#endif
|
||||
|
||||
typedef long long int64;
|
||||
/**
|
||||
* Defines the type of an Acinerella media stream. Currently only video and
|
||||
* audio streams are supported, subtitle and data streams will be marked as
|
||||
* "unknown".
|
||||
*/
|
||||
typedef enum _ac_stream_type {
|
||||
/**
|
||||
* The type of the media stream is not known. This kind of stream can not be
|
||||
* decoded.
|
||||
*/
|
||||
AC_STREAM_TYPE_VIDEO = 0,
|
||||
|
||||
/*Defines the type of an Acinerella media stream. Currently only video and
|
||||
audio streams are supported, subtitle and data streams will be marked as
|
||||
"unknown".*/
|
||||
enum _ac_stream_type {
|
||||
/*The type of the media stream is not known. This kind of stream can not be
|
||||
decoded.*/
|
||||
AC_STREAM_TYPE_VIDEO = 0,
|
||||
/*This media stream is a video stream.*/
|
||||
AC_STREAM_TYPE_AUDIO = 1,
|
||||
/*This media stream is an audio stream.*/
|
||||
AC_STREAM_TYPE_UNKNOWN = -1
|
||||
};
|
||||
/**
|
||||
* This media stream is a video stream.
|
||||
*/
|
||||
AC_STREAM_TYPE_AUDIO = 1,
|
||||
|
||||
typedef enum _ac_stream_type ac_stream_type;
|
||||
/**
|
||||
* This media stream is an audio stream.
|
||||
*/
|
||||
AC_STREAM_TYPE_UNKNOWN = -1
|
||||
} ac_stream_type;
|
||||
|
||||
/*Defines the type of an Acinerella media decoder.*/
|
||||
enum _ac_decoder_type {
|
||||
/*This decoder is used to decode a video stream.*/
|
||||
AC_DECODER_TYPE_VIDEO = 0,
|
||||
/* This decoder is used to decode an audio stram.*/
|
||||
AC_DECODER_TYPE_AUDIO = 1
|
||||
};
|
||||
/**
|
||||
* Defines the type of an Acinerella media decoder.
|
||||
*/
|
||||
typedef enum _ac_decoder_type {
|
||||
/**
|
||||
* This decoder is used to decode a video stream.
|
||||
*/
|
||||
AC_DECODER_TYPE_VIDEO = 0,
|
||||
|
||||
typedef enum _ac_decoder_type ac_decoder_type;
|
||||
/**
|
||||
* This decoder is used to decode an audio stram.
|
||||
*/
|
||||
AC_DECODER_TYPE_AUDIO = 1
|
||||
} ac_decoder_type;
|
||||
|
||||
/*Defines the format video/image data is outputted in*/
|
||||
enum _ac_output_format {
|
||||
AC_OUTPUT_RGB24 = 0,
|
||||
AC_OUTPUT_BGR24 = 1,
|
||||
AC_OUTPUT_RGBA32 = 2,
|
||||
AC_OUTPUT_BGRA32 = 3
|
||||
};
|
||||
/**
|
||||
* Defines the format video/image data is returned in.
|
||||
*/
|
||||
typedef enum _ac_output_format {
|
||||
AC_OUTPUT_RGB24 = 0,
|
||||
AC_OUTPUT_BGR24 = 1,
|
||||
AC_OUTPUT_RGBA32 = 2,
|
||||
AC_OUTPUT_BGRA32 = 3,
|
||||
AC_OUTPUT_YUV420P = 4,
|
||||
AC_OUTPUT_UYVY422 = 5,
|
||||
AC_OUTPUT_YUYV422 = 6
|
||||
} ac_output_format;
|
||||
|
||||
typedef enum _ac_output_format ac_output_format;
|
||||
|
||||
/*Contains information about the whole file/stream that has been opened. Default values are ""
|
||||
/*Contains information about the whole file/stream that has been opened. Default
|
||||
values are ""
|
||||
for strings and -1 for integer values.*/
|
||||
struct _ac_file_info {
|
||||
/*Length of the file*/
|
||||
int64_t duration;
|
||||
};
|
||||
typedef struct _ac_file_info {
|
||||
/**
|
||||
* Title of the media file
|
||||
*/
|
||||
char title[512];
|
||||
|
||||
typedef struct _ac_file_info ac_file_info;
|
||||
typedef ac_file_info* lp_ac_file_info;
|
||||
/**
|
||||
* Author or artist of the media file.
|
||||
*/
|
||||
char author[512];
|
||||
|
||||
/*TAc_instance represents an Acinerella instance. Each instance can open and
|
||||
decode one file at once. There can be only 26 Acinerella instances opened at
|
||||
once.*/
|
||||
struct _ac_instance {
|
||||
/*If true, the instance currently opened a media file.*/
|
||||
bool opened;
|
||||
/*Contains the count of streams the media file has. This value is available
|
||||
after calling the ac_open function.*/
|
||||
int stream_count;
|
||||
/*Set this value to change the image output format */
|
||||
ac_output_format output_format;
|
||||
/*Contains information about the opened stream/file*/
|
||||
ac_file_info info;
|
||||
};
|
||||
/**
|
||||
* Copyright information.
|
||||
*/
|
||||
char copyright[512];
|
||||
|
||||
typedef struct _ac_instance ac_instance;
|
||||
/*Pointer on the Acinerella instance record.*/
|
||||
typedef ac_instance* lp_ac_instance;
|
||||
/**
|
||||
* Comment stored in the file.
|
||||
*/
|
||||
char comment[512];
|
||||
|
||||
/*Contains information about an Acinerella video stream.*/
|
||||
/**
|
||||
* Album the media file is from.
|
||||
*/
|
||||
char album[512];
|
||||
|
||||
/**
|
||||
* Year in which the media file was created.
|
||||
*/
|
||||
int year;
|
||||
|
||||
/**
|
||||
* Track number.
|
||||
*/
|
||||
int track;
|
||||
|
||||
/**
|
||||
* Genre of the media file.
|
||||
*/
|
||||
char genre[32];
|
||||
|
||||
/**
|
||||
* Length of the file in milliseconds.
|
||||
*/
|
||||
int64_t duration;
|
||||
|
||||
/**
|
||||
* Bitrate of the file.
|
||||
*/
|
||||
int bitrate;
|
||||
} ac_file_info;
|
||||
|
||||
typedef ac_file_info *lp_ac_file_info;
|
||||
|
||||
/**
|
||||
* ac_instance represents an Acinerella instance. Each instance can open and
|
||||
* decode one file at once.
|
||||
*/
|
||||
typedef struct _ac_instance {
|
||||
/**
|
||||
* If true, the instance currently opened a media file.
|
||||
*/
|
||||
bool opened;
|
||||
|
||||
/**
|
||||
* Contains the count of streams the media file has. This value is available
|
||||
* after calling the ac_open function.
|
||||
*/
|
||||
int stream_count;
|
||||
|
||||
/**
|
||||
* Set this value to change the image output format
|
||||
*/
|
||||
ac_output_format output_format;
|
||||
|
||||
/**
|
||||
* Contains information about the opened stream/file
|
||||
*/
|
||||
ac_file_info info;
|
||||
} ac_instance;
|
||||
|
||||
/**
|
||||
* Pointer on the Acinerella instance record.
|
||||
*/
|
||||
typedef ac_instance *lp_ac_instance;
|
||||
|
||||
/**
|
||||
* Contains information about an Acinerella video stream.
|
||||
*/
|
||||
struct _ac_video_stream_info {
|
||||
/*The width of one frame.*/
|
||||
int frame_width;
|
||||
/*The height of one frame.*/
|
||||
int frame_height;
|
||||
/*The width of one pixel. 1.07 for 4:3 format, 1,42 for the 16:9 format*/
|
||||
float pixel_aspect;
|
||||
/*Frames per second that should be played.*/
|
||||
double frames_per_second;
|
||||
};
|
||||
typedef struct _ac_video_stream_info ac_video_stream_info;
|
||||
/*Contains information about an Acinerella audio stream.*/
|
||||
struct _ac_audio_stream_info {
|
||||
/*Samples per second. Default values are 44100 or 48000.*/
|
||||
int samples_per_second;
|
||||
/*Bits per sample. Can be 8 or 16 Bit.*/
|
||||
int bit_depth;
|
||||
/*Count of channels in the audio stream.*/
|
||||
int channel_count;
|
||||
};
|
||||
typedef struct _ac_audio_stream_info ac_audio_stream_info;
|
||||
/**
|
||||
* The width of one frame.
|
||||
*/
|
||||
int frame_width;
|
||||
|
||||
/**
|
||||
* The height of one frame.
|
||||
*/
|
||||
int frame_height;
|
||||
|
||||
/**
|
||||
* The width of one pixel. 1.07 for 4:3 format, 1,42 for the 16:9 format
|
||||
*/
|
||||
float pixel_aspect;
|
||||
|
||||
/**
|
||||
* Frames per second that should be played.
|
||||
*/
|
||||
double frames_per_second;
|
||||
};
|
||||
|
||||
/**
|
||||
* Contains information about an Acinerella audio stream.
|
||||
*/
|
||||
struct _ac_audio_stream_info {
|
||||
/**
|
||||
* Samples per second. Default values are 44100 or 48000.
|
||||
*/
|
||||
int samples_per_second;
|
||||
|
||||
/**
|
||||
* Bits per sample. Can be 8, 16 or 32 Bit. In the latter case the data is
|
||||
* in floating point format.
|
||||
*/
|
||||
int bit_depth;
|
||||
|
||||
/**
|
||||
* Count of channels in the audio stream.
|
||||
*/
|
||||
int channel_count;
|
||||
};
|
||||
|
||||
/**
|
||||
* Additional info about the stream - use "video_info" when the stream
|
||||
* is an video stream, "audio_info" when the stream is an audio stream.
|
||||
*/
|
||||
union _ac_additional_stream_info {
|
||||
struct _ac_audio_stream_info audio_info;
|
||||
struct _ac_video_stream_info video_info;
|
||||
};
|
||||
|
||||
/*Contains information about an Acinerella stream.*/
|
||||
struct _ac_stream_info {
|
||||
/*Contains the type of the stream.*/
|
||||
ac_stream_type stream_type;
|
||||
ac_audio_stream_info audio_info;
|
||||
ac_video_stream_info video_info;
|
||||
};
|
||||
typedef struct _ac_stream_info {
|
||||
/**
|
||||
* Contains the type of the stream.
|
||||
*/
|
||||
ac_stream_type stream_type;
|
||||
|
||||
typedef struct _ac_stream_info ac_stream_info;
|
||||
/*Pointer on TAc_stream_info*/
|
||||
typedef ac_stream_info* lp_ac_stream_info;
|
||||
/**
|
||||
* Additional data depending on the stream type. Either access the
|
||||
* "audio_info" or the "video_info" field, depending on the value stored in
|
||||
* the "stream_type" member.
|
||||
*/
|
||||
union _ac_additional_stream_info additional_info;
|
||||
} ac_stream_info;
|
||||
|
||||
/*Contains information about an Acinerella video/audio decoder.*/
|
||||
struct _ac_decoder {
|
||||
/*Pointer on the Acinerella instance*/
|
||||
lp_ac_instance pacInstance;
|
||||
/*Contains the type of the decoder.*/
|
||||
ac_decoder_type type;
|
||||
|
||||
/*The timecode of the currently decoded picture in seconds */
|
||||
double timecode;
|
||||
|
||||
double video_clock;
|
||||
|
||||
/*Contains information about the stream the decoder is attached to.*/
|
||||
ac_stream_info stream_info;
|
||||
/*The index of the stream the decoder is attached to.*/
|
||||
int stream_index;
|
||||
|
||||
/*Pointer to the buffer which contains the data.*/
|
||||
char *pBuffer;
|
||||
/*Size of the data in the buffer.*/
|
||||
int buffer_size;
|
||||
};
|
||||
/**
|
||||
* Pointer on ac_stream_info
|
||||
*/
|
||||
typedef ac_stream_info *lp_ac_stream_info;
|
||||
|
||||
typedef struct _ac_decoder ac_decoder;
|
||||
/*Pointer on TAc_decoder.*/
|
||||
typedef ac_decoder* lp_ac_decoder;
|
||||
/**
|
||||
* Contains information about an Acinerella video/audio decoder.
|
||||
*/
|
||||
typedef struct _ac_decoder {
|
||||
/**
|
||||
* Pointer on the Acinerella instance.
|
||||
*/
|
||||
lp_ac_instance pacInstance;
|
||||
|
||||
/*Contains information about an Acinerella package.*/
|
||||
struct _ac_package {
|
||||
/*The stream the package belongs to.*/
|
||||
int stream_index;
|
||||
};
|
||||
/**
|
||||
* Contains the type of the decoder.
|
||||
*/
|
||||
ac_decoder_type type;
|
||||
|
||||
typedef struct _ac_package ac_package;
|
||||
/*Pointer on TAc_package*/
|
||||
typedef ac_package* lp_ac_package;
|
||||
/**
|
||||
* The timecode of the currently decoded picture in seconds.
|
||||
*/
|
||||
double timecode;
|
||||
|
||||
/*Initializes an Acinerella instance.*/
|
||||
extern lp_ac_instance CALL_CONVT ac_init(void);
|
||||
extern void CALL_CONVT ac_free(lp_ac_instance pacInstance);
|
||||
/**
|
||||
* Contains information about the stream the decoder is attached to.
|
||||
*/
|
||||
ac_stream_info stream_info;
|
||||
|
||||
/*Opens a media file.*/
|
||||
|
||||
extern int CALL_CONVT ac_open2(
|
||||
lp_ac_instance pacInstance,
|
||||
const char* filename
|
||||
);
|
||||
|
||||
/*Closes an opened media file.*/
|
||||
extern void CALL_CONVT ac_close(lp_ac_instance pacInstance);
|
||||
|
||||
/*Stores information in "pInfo" about stream number "nb".*/
|
||||
extern void CALL_CONVT ac_get_stream_info(lp_ac_instance pacInstance, int nb, lp_ac_stream_info info);
|
||||
/**
|
||||
* The index of the stream the decoder is attached to.
|
||||
*/
|
||||
int stream_index;
|
||||
|
||||
/*Reads a package from an opened media file.*/
|
||||
extern lp_ac_package CALL_CONVT ac_read_package(lp_ac_instance pacInstance);
|
||||
/*Frees a package that has been read.*/
|
||||
extern void CALL_CONVT ac_free_package(lp_ac_package pPackage);
|
||||
/**
|
||||
* Pointer to the buffer which contains the data.
|
||||
*/
|
||||
uint8_t *pBuffer;
|
||||
|
||||
extern lp_ac_decoder CALL_CONVT ac_create_audio_decoder(lp_ac_instance pacInstance);
|
||||
extern lp_ac_decoder CALL_CONVT ac_create_video_decoder(lp_ac_instance pacInstance);
|
||||
/*Frees an created decoder.*/
|
||||
extern void CALL_CONVT ac_free_decoder(lp_ac_decoder pDecoder);
|
||||
/*Decodes a package using the specified decoder. The decodec data is stored in the
|
||||
"buffer" property of the decoder.*/
|
||||
extern int CALL_CONVT ac_decode_package(lp_ac_package pPackage, lp_ac_decoder pDecoder);
|
||||
extern int CALL_CONVT ac_drop_decode_package(lp_ac_package pPackage, lp_ac_decoder pDecoder);
|
||||
/**
|
||||
* Size of the data in the buffer.
|
||||
*/
|
||||
int buffer_size;
|
||||
} ac_decoder;
|
||||
|
||||
typedef ac_decoder *lp_ac_decoder;
|
||||
|
||||
/**
|
||||
* Contains information about an Acinerella package.
|
||||
*/
|
||||
typedef struct _ac_package {
|
||||
/*The stream the package belongs to.*/
|
||||
int stream_index;
|
||||
} ac_package;
|
||||
|
||||
typedef ac_package *lp_ac_package;
|
||||
|
||||
typedef void *lp_ac_proberesult;
|
||||
|
||||
/**
|
||||
* Callback function used to ask the application to read data. Should return
|
||||
* the number of bytes read or an value smaller than zero if an error occured.
|
||||
*/
|
||||
typedef int (CALL_CONVT *ac_read_callback)(void *sender, uint8_t *buf,
|
||||
int size);
|
||||
|
||||
/**
|
||||
* Callback function used to ask the application to seek.
|
||||
*
|
||||
* @param sender is the pointer specified in ac_open.
|
||||
* @param pos is the position to which the stream should be seeked.
|
||||
* @param whence specifies whether the seeking should be relative to the
|
||||
* beginning of the file (0, SEEK_SET), relative to the current location (1,
|
||||
* SEEK_CUR), or relative to the end of the file (2, SEEK_END)
|
||||
* @return 0 if the function succeeds, -1 on failure.
|
||||
*/
|
||||
typedef int64_t (CALL_CONVT *ac_seek_callback)(void *sender, int64_t pos,
|
||||
int whence);
|
||||
|
||||
/**
|
||||
* Callback function that is used to notify the application when the data stream
|
||||
* is opened or closed. For example the file pointer should be resetted to zero
|
||||
* when the "open" function is called.
|
||||
*/
|
||||
typedef int (CALL_CONVT *ac_openclose_callback)(void *sender);
|
||||
|
||||
/**
|
||||
* Initializes an Acinerella instance.
|
||||
*
|
||||
* @return a pointer at an acinerella instance. The instance must be freed using
|
||||
* ac_free.
|
||||
*/
|
||||
EXTERN lp_ac_instance CALL_CONVT ac_init(void);
|
||||
|
||||
/**
|
||||
* Initializes an Acinerella instance with a specific output format.
|
||||
*
|
||||
* @return a pointer at an acinerella instance. The instance must be freed using
|
||||
* ac_free.
|
||||
*/
|
||||
EXTERN lp_ac_instance CALL_CONVT ac_init_of(ac_output_format outputFormat);
|
||||
|
||||
/**
|
||||
* Frees a previously created Acinerella instance.
|
||||
*
|
||||
* @param pacInstance is the Acinerella instance that should be freed.
|
||||
*/
|
||||
EXTERN void CALL_CONVT ac_free(lp_ac_instance pacInstance);
|
||||
|
||||
/**
|
||||
* Opens a media stream.
|
||||
*
|
||||
* @param inst specifies the Acinerella Instance the stream should be opened
|
||||
* for.
|
||||
* @param sender specifies a pointer that is sent to all callback functions to
|
||||
* allow you to do object orientated programming. May be NULL.
|
||||
* @param open_proc specifies the callback function that is called, when the
|
||||
* media file is opened. May be NULL.
|
||||
* @param seek_proc specifies the callback function that is called, when the
|
||||
* ffmpeg decoder wants to seek in the file. May be NULL.
|
||||
* @param close_proc specifies the callback function that is called when the
|
||||
* media file is closed. May be NULL.
|
||||
* @param proberesult is a pointer at a structure previously returned by
|
||||
* ac_probe_input_buffer. May be NULL.
|
||||
*/
|
||||
EXTERN int CALL_CONVT
|
||||
ac_open(lp_ac_instance pacInstance, void *sender,
|
||||
ac_openclose_callback open_proc, ac_read_callback read_proc,
|
||||
ac_seek_callback seek_proc, ac_openclose_callback close_proc,
|
||||
lp_ac_proberesult proberesult);
|
||||
|
||||
/**
|
||||
* Opens a media file.
|
||||
*
|
||||
* @param inst specifies the Acinerella Instance the stream should be opened
|
||||
* for.
|
||||
* @param file is the name of the file that should be opened.
|
||||
*/
|
||||
EXTERN int CALL_CONVT
|
||||
ac_open_file(lp_ac_instance pacInstance, const char *filename);
|
||||
|
||||
/**
|
||||
* Closes an opened media file.
|
||||
*/
|
||||
EXTERN void CALL_CONVT ac_close(lp_ac_instance pacInstance);
|
||||
|
||||
/**
|
||||
* Stores information in "pInfo" about stream number "nb".
|
||||
*/
|
||||
EXTERN void CALL_CONVT ac_get_stream_info(lp_ac_instance pacInstance, int nb,
|
||||
lp_ac_stream_info info);
|
||||
|
||||
/**
|
||||
* Reads a package from an opened media file.
|
||||
*
|
||||
* @param pacInstance is the Acinerella instance from which the data should be
|
||||
* read.
|
||||
* @return a pointer at a ac_package structure or NULL on failure. The returned
|
||||
* pointer must be freed with ac_free_package after use.
|
||||
*/
|
||||
EXTERN lp_ac_package CALL_CONVT ac_read_package(lp_ac_instance pacInstance);
|
||||
|
||||
/**
|
||||
* Frees a package that has been read.
|
||||
*
|
||||
* @param pPackage is a pointer at the ac_package that should be freed. May be
|
||||
* NULL in which case no operation is performed.
|
||||
*/
|
||||
EXTERN void CALL_CONVT ac_free_package(lp_ac_package pPackage);
|
||||
|
||||
/**
|
||||
* Creates an decoder for the specified stream number. Returns NULL if no
|
||||
* decoder could be found.
|
||||
*/
|
||||
EXTERN lp_ac_decoder CALL_CONVT
|
||||
ac_create_decoder(lp_ac_instance pacInstance, int nb);
|
||||
|
||||
/**
|
||||
* Frees an created decoder.
|
||||
*/
|
||||
EXTERN void CALL_CONVT ac_free_decoder(lp_ac_decoder pDecoder);
|
||||
|
||||
/**
|
||||
* Decodes a package using the specified decoder. The decoded data is stored in
|
||||
* the "buffer" property of the decoder.
|
||||
*
|
||||
* @param pPackage is the package that should be decoded, previously read by the
|
||||
* ac_read_package method.
|
||||
* @param pDecoder is the decoder instance that should be used to decode the
|
||||
* package -- use the stream index stored in the package to determine the
|
||||
* correct decoder.
|
||||
*/
|
||||
EXTERN int CALL_CONVT
|
||||
ac_decode_package(lp_ac_package pPackage, lp_ac_decoder pDecoder);
|
||||
|
||||
/**
|
||||
* Decodes a package using the specified decoder and skips it. Returns true if a frame was skiped.
|
||||
*
|
||||
* @param pPackage is the package that should be decoded, previously read by the
|
||||
* ac_read_package method.
|
||||
* @param pDecoder is the decoder instance that should be used to decode the
|
||||
* package -- use the stream index stored in the package to determine the
|
||||
* correct decoder.
|
||||
*/
|
||||
EXTERN int CALL_CONVT
|
||||
ac_skip_package(lp_ac_package pPackage, lp_ac_decoder pDecoder);
|
||||
|
||||
/**
|
||||
* Decodes a packages using the specified decoder and skips num frames. Returns true if num frames where skiped.
|
||||
*
|
||||
* @param pacInstance is the Acinerella instance from which the data should be
|
||||
* read.
|
||||
* @param pDecoder is the decoder instance that should be used to decode the
|
||||
* package -- use the stream index stored in the package to determine the
|
||||
* correct decoder.
|
||||
* @num number of frames to skip.
|
||||
*/
|
||||
EXTERN int CALL_CONVT
|
||||
ac_skip_frames(lp_ac_instance pacInstance, lp_ac_decoder pDecoder, int num);
|
||||
|
||||
/**
|
||||
* Decodes a video frame using the specified decoder and strores the result in the decoder. Returns true if a frame cloud be decoded.
|
||||
*
|
||||
* @param pacInstance is the Acinerella instance from which the data should be
|
||||
* read.
|
||||
* @param pDecoder is the decoder instance that should be used to decode the
|
||||
* package -- use the stream index stored in the package to determine the
|
||||
* correct decoder.
|
||||
*/
|
||||
EXTERN int CALL_CONVT
|
||||
ac_get_frame(lp_ac_instance pacInstance, lp_ac_decoder pDecoder);
|
||||
|
||||
/**
|
||||
* Decodes a audio frame using the specified decoder and strores the result in the decoder. Returns true if a frame cloud be decoded.
|
||||
*
|
||||
* @param pacInstance is the Acinerella instance from which the data should be
|
||||
* read.
|
||||
* @param pDecoder is the decoder instance that should be used to decode the
|
||||
* package -- use the stream index stored in the package to determine the
|
||||
* correct decoder.
|
||||
*/
|
||||
EXTERN int CALL_CONVT
|
||||
ac_get_audio_frame(lp_ac_instance pacInstance, lp_ac_decoder pDecoder);
|
||||
|
||||
|
||||
/**
|
||||
* Seeks to the given target position in the file. The seek funtion is not able
|
||||
* to seek a single audio/video stream but seeks the whole file forward. The
|
||||
* stream number paremter (nb) is only used for the timecode reference.
|
||||
* The parameter "dir" specifies the seek direction: 0 for forward, -1 for
|
||||
* backward. The target_pos paremeter is in milliseconds. Returns 1 if the
|
||||
* functions succeded.
|
||||
*/
|
||||
EXTERN int CALL_CONVT
|
||||
ac_seek(lp_ac_decoder pDecoder, int dir, int64_t target_pos);
|
||||
|
||||
/**
|
||||
* Checks whether the given input buffer contains data that can potentially be
|
||||
* decoded by Acinerella. If yes, returns a pointer that may be passed to
|
||||
* ac_open in order to speed up the open process. Otherwise returns NULL.
|
||||
*
|
||||
* @param buf is a pointer to the buffer in which the data is stored.
|
||||
* @param bufsize is the size of the buffer.
|
||||
* @param filename is the name of the file the buffer originated from. May be
|
||||
* empty or NULL.
|
||||
* @param score_max is set to the maximum of the previous value of score_max
|
||||
* and an internal score value.
|
||||
* @return either a pointer at an internal "probe result" or NULL if the buffer
|
||||
* contains no decodeable data.
|
||||
*/
|
||||
EXTERN lp_ac_proberesult CALL_CONVT
|
||||
ac_probe_input_buffer(uint8_t *buf, int bufsize, char *filename,
|
||||
int *score_max);
|
||||
|
||||
#endif /* _ACINERELLA_H_ */
|
||||
|
||||
extern int CALL_CONVT ac_get_audio_frame(lp_ac_instance pacInstance, lp_ac_decoder pDecoder);
|
||||
extern int CALL_CONVT ac_get_frame(lp_ac_instance pacInstance, lp_ac_decoder pDecoder);
|
||||
extern int CALL_CONVT ac_skip_frames(lp_ac_instance pacInstance, lp_ac_decoder pDecoder, int num);
|
||||
|
||||
/*Seeks to the given target position in the file. The seek funtion is not able to seek a single audio/video stream
|
||||
but seeks the whole file forward. The stream number paremter (nb) is only used for the timecode reference.
|
||||
The parameter "dir" specifies the seek direction: 0 for forward, -1 for backward.
|
||||
The target_pos paremeter is in milliseconds. Returns 1 if the functions succeded.*/
|
||||
extern int CALL_CONVT ac_seek(lp_ac_decoder pDecoder, int dir, int64_t target_pos);
|
||||
#endif /*VIDEOPLAY_H*/
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/bin/sh
|
||||
PROJECT=$1
|
||||
cd $PROJECT
|
||||
sed -i -e s/GITVERSION/$(git describe --long)/ $PROJECT/Properties/AssemblyInfo.cs
|
||||
shortv=$(git describe --abbrev=0 | sed -e 's/alpha/0/' -e 's/beta/1/' -e 's/rc/2/')
|
||||
sed -i -e s/SHORTVERSION/${shortv}/ $PROJECT/Properties/AssemblyInfo.cs
|
||||
+101
-1
@@ -92,6 +92,9 @@ namespace Vocaluxe
|
||||
|
||||
try
|
||||
{
|
||||
// Create data folder
|
||||
Directory.CreateDirectory(CSettings.DataFolder);
|
||||
|
||||
// Init Log
|
||||
CLog.Init();
|
||||
|
||||
@@ -282,23 +285,120 @@ namespace Vocaluxe
|
||||
try
|
||||
{
|
||||
CController.Close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error during shutdown! (CController)", false, false, e);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
CVocaluxeServer.Close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error during shutdown! (CVocaluxeServer)", false, false, e);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
CGraphics.Close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error during shutdown! (CGraphics)", false, false, e);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
CThemes.Close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error during shutdown! (CThemes)", false, false, e);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
CCover.Close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error during shutdown! (CCover)", false, false, e);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
CFonts.Close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error during shutdown! (CFonts)", false, false, e);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
CBackgroundMusic.Close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error during shutdown! (CBackgroundMusic)", false, false, e);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
CWebcam.Close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error during shutdown! (CWebcam)", false, false, e);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
CDataBase.Close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error during shutdown! (CDataBase)", false, false, e);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
CVideo.Close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error during shutdown! (CVideo)", false, false, e);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
CRecord.Close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error during shutdown! (CRecord)", false, false, e);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
CSound.Close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error during shutdown! (CSound)", false, false, e);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
CDraw.Close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error during shutdown!", false, false, e);
|
||||
CLog.LogError("Error during shutdown! (CDraw)", false, false, e);
|
||||
}
|
||||
|
||||
GC.Collect(); // Do a GC run here before we close logs to have finalizers run
|
||||
try
|
||||
{
|
||||
|
||||
@@ -22,12 +22,12 @@ using System.Runtime.InteropServices;
|
||||
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
|
||||
// die mit einer Assembly verknüpft sind.
|
||||
|
||||
[assembly: AssemblyTitle("Vocaluxe")]
|
||||
[assembly: AssemblyTitle("FULLVERSION")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Vocaluxe")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2016")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2017")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
|
||||
@@ -428,12 +428,12 @@ namespace Vocaluxe.Screens
|
||||
CCreditTranslation asturian = _AddNewTranslation("Asturian", new List<string> { "Puxarra" });
|
||||
CCreditTranslation czech = _AddNewTranslation("Czech", new List<string> { "fri" });
|
||||
CCreditTranslation dutch = _AddNewTranslation("Dutch", new List<string> { "thijsblaauw", "DeMarin" });
|
||||
CCreditTranslation french = _AddNewTranslation("French", new List<string> { "pinky007" });
|
||||
CCreditTranslation hungarian = _AddNewTranslation("Hungarian", new List<string> { "warez" });
|
||||
CCreditTranslation italian = _AddNewTranslation("Italian", new List<string> { "giuseppep", "LFactory" });
|
||||
CCreditTranslation french = _AddNewTranslation("French", new List<string> { "pinky007", "javafrog" });
|
||||
CCreditTranslation hungarian = _AddNewTranslation("Hungarian", new List<string> { "warez", "skyli" });
|
||||
CCreditTranslation italian = _AddNewTranslation("Italian", new List<string> { "giuseppep", "LFactory", "yogotosleepnow" });
|
||||
CCreditTranslation portugese = _AddNewTranslation("Portuguese", new List<string> { "2borG", "xventil" });
|
||||
CCreditTranslation spanish = _AddNewTranslation("Spanish", new List<string> { "Pantero03", "RubenDjOn", "TeLiX", "karv" });
|
||||
CCreditTranslation swedish = _AddNewTranslation("Swedish", new List<string> { "u28151" });
|
||||
CCreditTranslation swedish = _AddNewTranslation("Swedish", new List<string> { "u28151", "Jiiniasu" });
|
||||
CCreditTranslation turkish = _AddNewTranslation("Turkish", new List<string> { "spirax", "Swertyy" });
|
||||
|
||||
_Translations = new List<CCreditTranslation> { intro, asturian, czech, dutch, french, hungarian, italian, spanish, swedish, turkish };
|
||||
|
||||
@@ -285,7 +285,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
private void _ChangePos(int num)
|
||||
{
|
||||
if (_Scores[_Round].Count == 0)
|
||||
if (_Scores[_Round].Count == 0 || _Scores[_Round].Count <= _NumEntrys)
|
||||
_Pos = 0;
|
||||
else
|
||||
{
|
||||
|
||||
@@ -57,6 +57,7 @@ namespace Vocaluxe.Screens
|
||||
_Texts[_TextRelease].Visible = true;
|
||||
_Statics[_StaticWarningProfiles].Visible = false;
|
||||
_Texts[_TextWarningProfiles].Visible = false;
|
||||
_SelectElement(_Buttons[_ButtonSing]);
|
||||
}
|
||||
|
||||
public override bool HandleInput(SKeyEvent keyEvent)
|
||||
@@ -105,6 +106,10 @@ namespace Vocaluxe.Screens
|
||||
return false;
|
||||
|
||||
break;
|
||||
|
||||
case Keys.Escape:
|
||||
_SelectElement(_Buttons[_ButtonExit]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -80,6 +80,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
case Keys.S:
|
||||
CParty.SetNormalGameMode();
|
||||
_SaveConfig();
|
||||
CGraphics.FadeTo(EScreen.Song);
|
||||
break;
|
||||
|
||||
|
||||
@@ -67,6 +67,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
case Keys.S:
|
||||
CParty.SetNormalGameMode();
|
||||
_SaveConfig();
|
||||
CGraphics.FadeTo(EScreen.Song);
|
||||
break;
|
||||
|
||||
|
||||
@@ -112,6 +112,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
case Keys.S:
|
||||
CParty.SetNormalGameMode();
|
||||
_SaveMicConfig();
|
||||
CGraphics.FadeTo(EScreen.Song);
|
||||
break;
|
||||
|
||||
|
||||
@@ -89,6 +89,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
case Keys.S:
|
||||
CParty.SetNormalGameMode();
|
||||
_SaveConfig();
|
||||
CGraphics.FadeTo(EScreen.Song);
|
||||
break;
|
||||
|
||||
|
||||
@@ -92,6 +92,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
case Keys.S:
|
||||
CParty.SetNormalGameMode();
|
||||
_SaveConfig();
|
||||
CGraphics.FadeTo(EScreen.Song);
|
||||
break;
|
||||
|
||||
|
||||
@@ -95,6 +95,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
case Keys.S:
|
||||
CParty.SetNormalGameMode();
|
||||
_SaveConfig();
|
||||
CGraphics.FadeTo(EScreen.Song);
|
||||
break;
|
||||
|
||||
|
||||
@@ -56,6 +56,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
case Keys.S:
|
||||
CParty.SetNormalGameMode();
|
||||
_SaveConfig();
|
||||
CGraphics.FadeTo(EScreen.Song);
|
||||
break;
|
||||
|
||||
|
||||
@@ -319,6 +319,8 @@ namespace Vocaluxe.Screens
|
||||
_Buttons[_ButtonDiscardSnapshot].Visible = false;
|
||||
_Buttons[_ButtonTakeSnapshot].Visible = false;
|
||||
_Buttons[_ButtonWebcam].Visible = false;
|
||||
|
||||
_SelectElement(_Buttons[_ButtonSave]);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -330,6 +332,8 @@ namespace Vocaluxe.Screens
|
||||
_Buttons[_ButtonDiscardSnapshot].Visible = true;
|
||||
_Buttons[_ButtonTakeSnapshot].Visible = false;
|
||||
_Buttons[_ButtonWebcam].Visible = false;
|
||||
|
||||
_SelectElement(_Buttons[_ButtonSaveSnapshot]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -341,6 +345,8 @@ namespace Vocaluxe.Screens
|
||||
_Buttons[_ButtonDiscardSnapshot].Visible = false;
|
||||
_Buttons[_ButtonTakeSnapshot].Visible = false;
|
||||
_Buttons[_ButtonWebcam].Visible = CWebcam.IsDeviceAvailable();
|
||||
|
||||
_SelectElement(_Buttons[_ButtonWebcam]);
|
||||
}
|
||||
|
||||
private void _OnSaveSnapshot()
|
||||
@@ -359,6 +365,8 @@ namespace Vocaluxe.Screens
|
||||
int id = CProfiles.NewAvatar(file);
|
||||
CProfiles.SetAvatar(_SelectSlides[_SelectSlideProfiles].SelectedTag, id);
|
||||
_LoadAvatars(false);
|
||||
|
||||
_SelectElement(_Buttons[_ButtonSave]);
|
||||
}
|
||||
|
||||
private void _OnWebcam()
|
||||
@@ -374,6 +382,8 @@ namespace Vocaluxe.Screens
|
||||
_Buttons[_ButtonDiscardSnapshot].Visible = false;
|
||||
_Buttons[_ButtonTakeSnapshot].Visible = true;
|
||||
_Buttons[_ButtonWebcam].Visible = false;
|
||||
|
||||
_SelectElement(_Buttons[_ButtonTakeSnapshot]);
|
||||
}
|
||||
|
||||
private void _NewProfile()
|
||||
|
||||
@@ -139,6 +139,9 @@ namespace Vocaluxe.Screens
|
||||
_SetVisibility();
|
||||
_UpdateRatings();
|
||||
_SlideShowBG.Visible = _UpdateBackground();
|
||||
|
||||
for (int p = 0; p < CGame.NumPlayers; p++)
|
||||
_Statics[_StaticAvatar[p, CGame.NumPlayers - 1]].Aspect = EAspect.Crop;
|
||||
}
|
||||
|
||||
public override bool UpdateGame()
|
||||
|
||||
@@ -201,8 +201,6 @@ namespace Vocaluxe.Screens
|
||||
CConfig.Config.Theme.PlayerInfo = (EPlayerInfo)mode;
|
||||
CConfig.SaveConfig();
|
||||
_SetVisibility();
|
||||
if (CGame.GetSong() != null)
|
||||
_SetDuetLyricsVisibility(CGame.GetSong().IsDuet); //make sure duet lyrics remain visible
|
||||
break;
|
||||
|
||||
case Keys.S:
|
||||
@@ -596,7 +594,6 @@ namespace Vocaluxe.Screens
|
||||
_DynamicLyricsTop = true;
|
||||
}
|
||||
|
||||
_SetDuetLyricsVisibility(song.IsDuet);
|
||||
_SetNormalLyricsVisibility();
|
||||
|
||||
_TimerSongText.Reset();
|
||||
@@ -609,37 +606,36 @@ namespace Vocaluxe.Screens
|
||||
_StartSong();
|
||||
}
|
||||
|
||||
private void _SetDuetLyricsVisibility(bool isDuet)
|
||||
{
|
||||
_Statics[_StaticLyricsDuet].Visible = isDuet;
|
||||
_Lyrics[_LyricMainDuet].Visible = isDuet;
|
||||
_Lyrics[_LyricSubDuet].Visible = isDuet;
|
||||
|
||||
if (isDuet)
|
||||
{
|
||||
_Lyrics[_LyricMainTop].Visible = false;
|
||||
_Lyrics[_LyricSubTop].Visible = false;
|
||||
_Statics[_StaticLyricsTop].Visible = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
bool lyricsOnTop = CConfig.Config.Game.LyricsPosition == ELyricsPosition.TR_CONFIG_LYRICSPOSITION_TOP
|
||||
|| CConfig.Config.Game.LyricsPosition == ELyricsPosition.TR_CONFIG_LYRICSPOSITION_BOTH
|
||||
|| (CConfig.Config.Game.LyricsPosition == ELyricsPosition.TR_CONFIG_LYRICSPOSITION_DYNAMIC && _DynamicLyricsTop);
|
||||
_Lyrics[_LyricMainTop].Visible = lyricsOnTop;
|
||||
_Lyrics[_LyricSubTop].Visible = lyricsOnTop;
|
||||
_Statics[_StaticLyricsTop].Visible = lyricsOnTop;
|
||||
}
|
||||
}
|
||||
|
||||
private void _SetNormalLyricsVisibility()
|
||||
{
|
||||
bool visible = CConfig.Config.Game.LyricsPosition == ELyricsPosition.TR_CONFIG_LYRICSPOSITION_BOTTOM
|
||||
bool bottomLyricsVisible = CConfig.Config.Game.LyricsPosition == ELyricsPosition.TR_CONFIG_LYRICSPOSITION_BOTTOM
|
||||
|| CConfig.Config.Game.LyricsPosition == ELyricsPosition.TR_CONFIG_LYRICSPOSITION_BOTH
|
||||
|| (CConfig.Config.Game.LyricsPosition == ELyricsPosition.TR_CONFIG_LYRICSPOSITION_DYNAMIC && _DynamicLyricsBottom);
|
||||
_Lyrics[_LyricMain].Visible = visible;
|
||||
_Lyrics[_LyricSub].Visible = visible;
|
||||
_Statics[_StaticLyrics].Visible = visible;
|
||||
|
||||
bool topLyricsVisible = CConfig.Config.Game.LyricsPosition == ELyricsPosition.TR_CONFIG_LYRICSPOSITION_TOP
|
||||
|| CConfig.Config.Game.LyricsPosition == ELyricsPosition.TR_CONFIG_LYRICSPOSITION_BOTH
|
||||
|| (CConfig.Config.Game.LyricsPosition == ELyricsPosition.TR_CONFIG_LYRICSPOSITION_DYNAMIC && _DynamicLyricsTop);
|
||||
|
||||
bool duetLyricsVisible = false;
|
||||
|
||||
if (CGame.GetSong() != null && CGame.GetSong().IsDuet)
|
||||
{
|
||||
bottomLyricsVisible = true;
|
||||
topLyricsVisible = false;
|
||||
duetLyricsVisible = true;
|
||||
}
|
||||
|
||||
_Lyrics[_LyricMain].Visible = bottomLyricsVisible;
|
||||
_Lyrics[_LyricSub].Visible = bottomLyricsVisible;
|
||||
_Statics[_StaticLyrics].Visible = bottomLyricsVisible;
|
||||
|
||||
_Lyrics[_LyricMainTop].Visible = topLyricsVisible;
|
||||
_Lyrics[_LyricSubTop].Visible = topLyricsVisible;
|
||||
_Statics[_StaticLyricsTop].Visible = topLyricsVisible;
|
||||
|
||||
_Lyrics[_LyricMainDuet].Visible = duetLyricsVisible;
|
||||
_Lyrics[_LyricSubDuet].Visible = duetLyricsVisible;
|
||||
_Statics[_StaticLyricsDuet].Visible = duetLyricsVisible;
|
||||
}
|
||||
|
||||
private void _StartSong()
|
||||
@@ -655,7 +651,10 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
//Need this to set other songs to points-var
|
||||
while (!CGame.IsFinished())
|
||||
{
|
||||
CGame.NextRound();
|
||||
CGame.ResetPlayer();
|
||||
}
|
||||
|
||||
_FinishedSinging();
|
||||
}
|
||||
@@ -1115,7 +1114,7 @@ namespace Vocaluxe.Screens
|
||||
}
|
||||
|
||||
// sub
|
||||
if (currentLineSub < lines.Length - 2)
|
||||
if ((currentLineSub + 1) < lines.Length)
|
||||
{
|
||||
float diff = CGame.GetTimeFromBeats(lines[currentLineSub + 1].FirstNoteBeat, song.BPM) - currentTime;
|
||||
|
||||
@@ -1372,4 +1371,4 @@ namespace Vocaluxe.Screens
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -172,7 +172,12 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
keyEvent.Handled = _Playlist.HandleInput(keyEvent);
|
||||
if (keyEvent.Handled)
|
||||
{
|
||||
//Check if playlist was closed and song menu needed to be resized
|
||||
if (!_Playlist.Visible)
|
||||
_SongMenu.SmallView = false;
|
||||
return true;
|
||||
}
|
||||
if (!keyEvent.KeyPressed && keyEvent.Key == Keys.Escape)
|
||||
{
|
||||
_ClosePlaylist();
|
||||
@@ -362,7 +367,10 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
if (CSongs.IsInCategory)
|
||||
_SongMenu.SetSelectedSong(CSongs.GetRandomSong());
|
||||
else
|
||||
}
|
||||
else if (_Buttons[_ButtonOptionsRandomCategory].Selected)
|
||||
{
|
||||
if (!CSongs.IsInCategory)
|
||||
_SongMenu.SetSelectedCategory(CSongs.GetRandomCategory());
|
||||
}
|
||||
else if (_Buttons[_ButtonOptionsSingAll].Selected)
|
||||
@@ -411,7 +419,12 @@ namespace Vocaluxe.Screens
|
||||
_SongMenu.Selected = false;
|
||||
_ToggleSongOptions(ESongOptionsView.None);
|
||||
if (_Playlist.HandleMouse(mouseEvent))
|
||||
{
|
||||
//Check if playlist was closed and song menu needed to be resized
|
||||
if (!_Playlist.Visible)
|
||||
_SongMenu.SmallView = false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (CHelper.IsInBounds(_SongMenu.Rect, mouseEvent))
|
||||
{
|
||||
@@ -1054,7 +1067,7 @@ namespace Vocaluxe.Screens
|
||||
case ESongSorting.TR_CONFIG_FOLDER:
|
||||
if (curSelected >= 0 && curSelected < ct - 1 && songs[curSelected].Folder.StartsWith(letter.ToString(), StringComparison.OrdinalIgnoreCase))
|
||||
start = curSelected + 1;
|
||||
visibleID = _FindIndex(songs, start, element => element.Folder.StartsWith(letter.ToString(), StringComparison.OrdinalIgnoreCase));
|
||||
visibleID = _FindIndex(songs, start, element => element.FolderName.StartsWith(letter.ToString(), StringComparison.OrdinalIgnoreCase));
|
||||
break;
|
||||
}
|
||||
if (visibleID > -1)
|
||||
@@ -1261,6 +1274,8 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
_SongMenu.SmallView = true;
|
||||
_Playlist.Visible = true;
|
||||
_SelectElement(_Playlist);
|
||||
_ToggleSongOptions(ESongOptionsView.None);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1365,4 +1380,4 @@ namespace Vocaluxe.Screens
|
||||
}
|
||||
#endregion Playlist Actions
|
||||
}
|
||||
}
|
||||
}
|
||||
+15
-17
@@ -31,7 +31,8 @@
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
<NuGetPackageImportStamp>3d91144f</NuGetPackageImportStamp>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugWin|x86' ">
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
@@ -477,15 +478,14 @@
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">xcopy /E /D /Y "$(ProjectDir)\Website" "$(SolutionDir)\PhoneGap"
|
||||
powershell -command "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'"
|
||||
powershell -command "(Get-Content -Encoding UTF8 '$(ProjectDir)Properties\AssemblyInfo.cs') | Foreach-Object {$_ -replace '(?<=AssemblyInformationalVersion\(\").*(?=\")', 'GITVERSION'} | Foreach-Object {$_ -replace '(?<=(AssemblyVersion|AssemblyFileVersion)\(\").*(?=\")', 'SHORTVERSION'} | Set-Content -Encoding UTF8 '$(ProjectDir)Properties\AssemblyInfo.cs' "</PostBuildEvent>
|
||||
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">xcopy /E /D /Y "$(ProjectDir)\Website" "$(SolutionDir)\PhoneGap"</PostBuildEvent>
|
||||
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">powershell -ExecutionPolicy Bypass -File $(SolutionDir)\.build\winPostBuild.ps1 $(ProjectDir)</PostBuildEvent>
|
||||
<PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">cp -ruT "$(ProjectDir)Website" "$(SolutionDir)/PhoneGap"</PostBuildEvent>
|
||||
<PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">$(ProjectDir)Linux/Build/PostBuildEvent.sh $(ProjectDir)</PostBuildEvent>
|
||||
<PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">$(SolutionDir)/.build/linuxPostBuildEvent.sh $(ProjectDir)</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">powershell -command " if($Env:GIT_VERSION_TAG) {$version = $Env:GIT_VERSION_TAG;} else {$version = git describe --long;} (Get-Content -Encoding UTF8 '$(ProjectDir)Properties\AssemblyInfo.cs') | Foreach-Object {$_ -replace '(?<=AssemblyInformationalVersion\(\").*(?=\")', $version} | Foreach-Object {$_ -replace '(?<=(AssemblyVersion|AssemblyFileVersion)\(\").*(?=\")', $version.Split('-')[0].replace('alpha','0').replace('beta','1').replace('rc','2')} | Foreach-Object {$_ -replace '(?<=AssemblyCopyright\(\".*)[0-9]+(?=\")', (Get-Date).Year} | Set-Content -Encoding UTF8 '$(ProjectDir)Properties\AssemblyInfo.cs' "</PreBuildEvent>
|
||||
<PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">$(ProjectDir)Linux/Build/PreBuildEvent.sh $(ProjectDir)</PreBuildEvent>
|
||||
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">powershell -ExecutionPolicy Bypass -File $(SolutionDir)\.build\winPreBuild.ps1 $(ProjectDir) $(Platform)</PreBuildEvent>
|
||||
<PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">$(SolutionDir)/.build/linuxPreBuildEvent.sh $(ProjectDir) $(Platform)</PreBuildEvent>
|
||||
</PropertyGroup>
|
||||
<!-- 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.
|
||||
@@ -536,31 +536,29 @@ powershell -command "(Get-Content -Encoding UTF8 '$(ProjectDir)Properties\Assemb
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Rebuild for automatic package restore. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="'$(Configuration)' != 'ReleaseLinux' AND '$(Configuration)' != 'DebugLinux' AND !Exists('..\packages\vocaluxe.dependencies.acinerella.1.0.3\build\vocaluxe.dependencies.acinerella.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.acinerella.1.0.3\build\vocaluxe.dependencies.acinerella.targets'))" />
|
||||
<Error Condition="'$(Configuration)' != 'ReleaseLinux' AND '$(Configuration)' != 'DebugLinux' AND !Exists('..\packages\vocaluxe.dependencies.acinerella.1.0.5\build\vocaluxe.dependencies.acinerella.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.acinerella.1.0.5\build\vocaluxe.dependencies.acinerella.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\vocaluxe.dependencies.aforgevideo.1.0.1\build\vocaluxe.dependencies.aforgevideo.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.aforgevideo.1.0.1\build\vocaluxe.dependencies.aforgevideo.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\vocaluxe.dependencies.csharpsqlite.1.0.1\build\vocaluxe.dependencies.csharpsqlite.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.csharpsqlite.1.0.1\build\vocaluxe.dependencies.csharpsqlite.targets'))" />
|
||||
<Error Condition="'$(Configuration)' != 'ReleaseLinux' AND '$(Configuration)' != 'DebugLinux' AND !Exists('..\packages\vocaluxe.dependencies.ffmpeg.1.0.3\build\vocaluxe.dependencies.ffmpeg.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.ffmpeg.1.0.3\build\vocaluxe.dependencies.ffmpeg.targets'))" />
|
||||
<Error Condition="'$(Configuration)' != 'ReleaseLinux' AND '$(Configuration)' != 'DebugLinux' AND !Exists('..\packages\vocaluxe.dependencies.ffmpeg.1.0.4\build\vocaluxe.dependencies.ffmpeg.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.ffmpeg.1.0.4\build\vocaluxe.dependencies.ffmpeg.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\vocaluxe.dependencies.gstreamersharp.1.0.1\build\vocaluxe.dependencies.gstreamersharp.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.gstreamersharp.1.0.1\build\vocaluxe.dependencies.gstreamersharp.targets'))" />
|
||||
<Error Condition="'$(Configuration)' != 'ReleaseLinux' AND '$(Configuration)' != 'DebugLinux' AND !Exists('..\packages\vocaluxe.dependencies.hidapi.1.0.4\build\vocaluxe.dependencies.hidapi.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.hidapi.1.0.4\build\vocaluxe.dependencies.hidapi.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\vocaluxe.dependencies.opentk.1.0.1\build\vocaluxe.dependencies.opentk.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.opentk.1.0.1\build\vocaluxe.dependencies.opentk.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\vocaluxe.dependencies.portaudiosharp.1.0.2\build\vocaluxe.dependencies.portaudiosharp.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.portaudiosharp.1.0.2\build\vocaluxe.dependencies.portaudiosharp.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\vocaluxe.dependencies.qrcoder.1.0.1\build\vocaluxe.dependencies.qrcoder.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.qrcoder.1.0.1\build\vocaluxe.dependencies.qrcoder.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\vocaluxe.dependencies.slimdx.1.0.1\build\vocaluxe.dependencies.slimdx.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.slimdx.1.0.1\build\vocaluxe.dependencies.slimdx.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\vocaluxe.dependencies.sqlite.1.0.1\build\vocaluxe.dependencies.sqlite.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.sqlite.1.0.1\build\vocaluxe.dependencies.sqlite.targets'))" />
|
||||
<Error Condition="'$(Configuration)' != 'ReleaseLinux' AND '$(Configuration)' != 'DebugLinux' AND !Exists('..\packages\vocaluxe.dependencies.gstreamer.1.0.2\build\vocaluxe.dependencies.gstreamer.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.gstreamer.1.0.2\build\vocaluxe.dependencies.gstreamer.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\vocaluxe.dependencies.1.0.10\build\vocaluxe.dependencies.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.1.0.10\build\vocaluxe.dependencies.targets'))" />
|
||||
<Error Condition="'$(Configuration)' != 'ReleaseLinux' AND '$(Configuration)' != 'DebugLinux' AND !Exists('..\packages\vocaluxe.dependencies.gstreamer.1.0.3\build\vocaluxe.dependencies.gstreamer.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.gstreamer.1.0.3\build\vocaluxe.dependencies.gstreamer.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\vocaluxe.dependencies.portaudiosharp.1.0.3\build\vocaluxe.dependencies.portaudiosharp.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.portaudiosharp.1.0.3\build\vocaluxe.dependencies.portaudiosharp.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\vocaluxe.dependencies.acinerella.1.0.3\build\vocaluxe.dependencies.acinerella.targets" Condition="'$(Configuration)' != 'ReleaseLinux' AND '$(Configuration)' != 'DebugLinux' AND Exists('..\packages\vocaluxe.dependencies.acinerella.1.0.3\build\vocaluxe.dependencies.acinerella.targets')" />
|
||||
<Import Project="..\packages\vocaluxe.dependencies.acinerella.1.0.5\build\vocaluxe.dependencies.acinerella.targets" Condition="'$(Configuration)' != 'ReleaseLinux' AND '$(Configuration)' != 'DebugLinux' AND Exists('..\packages\vocaluxe.dependencies.acinerella.1.0.5\build\vocaluxe.dependencies.acinerella.targets')" />
|
||||
<Import Project="..\packages\vocaluxe.dependencies.aforgevideo.1.0.1\build\vocaluxe.dependencies.aforgevideo.targets" Condition="Exists('..\packages\vocaluxe.dependencies.aforgevideo.1.0.1\build\vocaluxe.dependencies.aforgevideo.targets')" />
|
||||
<Import Project="..\packages\vocaluxe.dependencies.csharpsqlite.1.0.1\build\vocaluxe.dependencies.csharpsqlite.targets" Condition="Exists('..\packages\vocaluxe.dependencies.csharpsqlite.1.0.1\build\vocaluxe.dependencies.csharpsqlite.targets')" />
|
||||
<Import Project="..\packages\vocaluxe.dependencies.ffmpeg.1.0.3\build\vocaluxe.dependencies.ffmpeg.targets" Condition="'$(Configuration)' != 'ReleaseLinux' AND '$(Configuration)' != 'DebugLinux' AND Exists('..\packages\vocaluxe.dependencies.ffmpeg.1.0.3\build\vocaluxe.dependencies.ffmpeg.targets')" />
|
||||
<Import Project="..\packages\vocaluxe.dependencies.ffmpeg.1.0.4\build\vocaluxe.dependencies.ffmpeg.targets" Condition="'$(Configuration)' != 'ReleaseLinux' AND '$(Configuration)' != 'DebugLinux' AND Exists('..\packages\vocaluxe.dependencies.ffmpeg.1.0.4\build\vocaluxe.dependencies.ffmpeg.targets')" />
|
||||
<Import Project="..\packages\vocaluxe.dependencies.gstreamersharp.1.0.1\build\vocaluxe.dependencies.gstreamersharp.targets" Condition="Exists('..\packages\vocaluxe.dependencies.gstreamersharp.1.0.1\build\vocaluxe.dependencies.gstreamersharp.targets')" />
|
||||
<Import Project="..\packages\vocaluxe.dependencies.hidapi.1.0.4\build\vocaluxe.dependencies.hidapi.targets" Condition="'$(Configuration)' != 'ReleaseLinux' AND '$(Configuration)' != 'DebugLinux' AND Exists('..\packages\vocaluxe.dependencies.hidapi.1.0.4\build\vocaluxe.dependencies.hidapi.targets')" />
|
||||
<Import Project="..\packages\vocaluxe.dependencies.opentk.1.0.1\build\vocaluxe.dependencies.opentk.targets" Condition="Exists('..\packages\vocaluxe.dependencies.opentk.1.0.1\build\vocaluxe.dependencies.opentk.targets')" />
|
||||
<Import Project="..\packages\vocaluxe.dependencies.portaudiosharp.1.0.2\build\vocaluxe.dependencies.portaudiosharp.targets" Condition="Exists('..\packages\vocaluxe.dependencies.portaudiosharp.1.0.2\build\vocaluxe.dependencies.portaudiosharp.targets')" />
|
||||
<Import Project="..\packages\vocaluxe.dependencies.qrcoder.1.0.1\build\vocaluxe.dependencies.qrcoder.targets" Condition="Exists('..\packages\vocaluxe.dependencies.qrcoder.1.0.1\build\vocaluxe.dependencies.qrcoder.targets')" />
|
||||
<Import Project="..\packages\vocaluxe.dependencies.slimdx.1.0.1\build\vocaluxe.dependencies.slimdx.targets" Condition="Exists('..\packages\vocaluxe.dependencies.slimdx.1.0.1\build\vocaluxe.dependencies.slimdx.targets')" />
|
||||
<Import Project="..\packages\vocaluxe.dependencies.sqlite.1.0.1\build\vocaluxe.dependencies.sqlite.targets" Condition="Exists('..\packages\vocaluxe.dependencies.sqlite.1.0.1\build\vocaluxe.dependencies.sqlite.targets')" />
|
||||
<Import Project="..\packages\vocaluxe.dependencies.gstreamer.1.0.2\build\vocaluxe.dependencies.gstreamer.targets" Condition="'$(Configuration)' != 'ReleaseLinux' AND '$(Configuration)' != 'DebugLinux' AND Exists('..\packages\vocaluxe.dependencies.gstreamer.1.0.2\build\vocaluxe.dependencies.gstreamer.targets')" />
|
||||
<Import Project="..\packages\vocaluxe.dependencies.1.0.10\build\vocaluxe.dependencies.targets" Condition="Exists('..\packages\vocaluxe.dependencies.1.0.10\build\vocaluxe.dependencies.targets')" />
|
||||
<Import Project="..\packages\vocaluxe.dependencies.gstreamer.1.0.3\build\vocaluxe.dependencies.gstreamer.targets" Condition="'$(Configuration)' != 'ReleaseLinux' AND '$(Configuration)' != 'DebugLinux' AND Exists('..\packages\vocaluxe.dependencies.gstreamer.1.0.3\build\vocaluxe.dependencies.gstreamer.targets')" />
|
||||
<Import Project="..\packages\vocaluxe.dependencies.portaudiosharp.1.0.3\build\vocaluxe.dependencies.portaudiosharp.targets" Condition="Exists('..\packages\vocaluxe.dependencies.portaudiosharp.1.0.3\build\vocaluxe.dependencies.portaudiosharp.targets')" />
|
||||
</Project>
|
||||
@@ -0,0 +1,86 @@
|
||||
{
|
||||
"loginName": "Név:",
|
||||
"loginPassword": "Jelszó:",
|
||||
"loginButton": "Bejelentkezés",
|
||||
"registerButton": "Új Profil",
|
||||
"discoverReadQrButton": "QR-kód beolvasása",
|
||||
"mainPageYourProfileLink": "Saját Profil",
|
||||
"mainPageYourProfileLinkDesc": "Saját profil szerkesztése",
|
||||
"mainPageCurrentSongLink": "Jelenlegi dal",
|
||||
"mainPageCurrentSongLinkDesc": "Információk mutatása a jelenlegi dalról",
|
||||
"mainPageSelectSong": "Minden dal",
|
||||
"mainPageSelectSongDesc": "Minden elérhető dal listázása",
|
||||
"mainPageSelectPlaylist": "Minden lejátszási lista",
|
||||
"mainPageSelectPlaylistDesc": "Minden lejátszási lista mutatása",
|
||||
"mainPageSelectProfile": "Profilok",
|
||||
"mainPageSelectProfileDesc": "Minden profil mutatása",
|
||||
"mainPageTakePhotoLink": "Fénykép készítése",
|
||||
"mainPageTakePhotoLinkDesc": "Fényképet készít és megmutatja a kör végén",
|
||||
"mainPageKeyboard": "Billentyűzet",
|
||||
"mainPageKeyboardDesc": "Billentyűzet kezelése",
|
||||
"mainPageSelectUserAdmin": "Adminisztráció",
|
||||
"mainPageSelectUserAdminDesc": "Felhasználói jogok beállítása",
|
||||
"mainPageLogoutLink": "Kijelentkezés",
|
||||
"mainPageLogoutLinkDesc": "Másik profilra váltáshoz",
|
||||
"selectProfileHeader": "Minden profil",
|
||||
"displayProfileHeader": "Profil",
|
||||
"displayProfileName": "Név:",
|
||||
"displayProfilePlayerType": "Játékos Típusa",
|
||||
"displayProfilePlayerTypeNormal": "Normál",
|
||||
"displayProfilePlayerTypeGuest": "Vendég",
|
||||
"displayProfilePlayerDifficulty": "Nehézségi szint",
|
||||
"displayProfilePlayerDifficultyEasy": "Könnyű",
|
||||
"displayProfilePlayerDifficultyNormal": "Normál",
|
||||
"displayProfilePlayerDifficultyHard": "Nehéz",
|
||||
"displayProfilePlayerPassword": "Új Jelszó:",
|
||||
"displayProfilePlayerSaveButton": "Mentés",
|
||||
"displaySongHeader": "Jelenlegi dal",
|
||||
"displaySongArtist": "Előadó:",
|
||||
"displaySongGenre": "Műfaj:",
|
||||
"displaySongYear": "Év:",
|
||||
"displaySongLanguage": "Nyelv:",
|
||||
"displaySongIsDuet": "Duett:",
|
||||
"popupVideoClose": "Bezárás",
|
||||
"selectSongHeader": "Minden Dal",
|
||||
"keyboardHeader": "Billentyűzet",
|
||||
"keyboardButtonUp": "fel",
|
||||
"keyboardButtonLeft": "balra",
|
||||
"keyboardButtonRight": "jobbra",
|
||||
"keyboardButtonDown": "le",
|
||||
"keyboardButtonEscape": "esc",
|
||||
"keyboardButtonTab": "tab",
|
||||
"keyboardButtonReturn": "enter",
|
||||
"keyboardButtonKeys": "Egyéb billentyűk küldéséhez írd ide:",
|
||||
"selectUserAdminHeader": "Minden profil",
|
||||
"displayUserAdminHeader": "Profil",
|
||||
"displayUserAdminContentSaveButton": "Mentés",
|
||||
"selectPlaylistHeader": "Lejátszási lista kiválasztása",
|
||||
"displayPlaylistHeader": "Lejátszási lista",
|
||||
"displayPlaylistSaveButton": "Mentés",
|
||||
"selectPlaylistAddPlaylistButton": "Hozzáadás",
|
||||
"Loading (external)...": "Betöltés (külső)...",
|
||||
"Loading...": "Betöltés...",
|
||||
"Creating...": "Elkészítés...",
|
||||
"Error...": "Hiba...",
|
||||
"No connection": "Nincs kapcsolat",
|
||||
"No session": "Nincs kapcsolódás",
|
||||
"Uploading photo...": "Fénykép feltöltése...",
|
||||
"Getting current song...": "Jelenlegi dal betöltése...",
|
||||
"Login...": "Bejelentkezés...",
|
||||
"Creating profile...": "Profil létrehozása...",
|
||||
"This is not a valid name.": "Érvénytelen név.",
|
||||
"Uploading profile...": "Profil feltöltése...",
|
||||
"songs": "dalok",
|
||||
"YourName": "IdeÍrdANeved",
|
||||
"discoverConnectHeader": "Kapcsolódás a szerverhez",
|
||||
"discoverConnectServerAddress": "Szerver címe:",
|
||||
"discoverConnectButton": "Kapcsolódás",
|
||||
"Checking...": "Ellenőrzés...",
|
||||
"timeout": "Időtúllépés",
|
||||
"keyboardButtonShift": "Shift",
|
||||
"keyboardButtonAlt": "Alt",
|
||||
"keyboardButtonCtrl": "Ctrl",
|
||||
"keyboardButtonBackspace": "Backspace",
|
||||
"keyboardAutoSend": "Billentyűleütések automatikus küldése",
|
||||
"keyboardButtonSend": "Küldés"
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"loginName": "Användare:",
|
||||
"loginName": "Användarnamn:",
|
||||
"loginPassword": "Lösenord:",
|
||||
"loginButton": "Inloggning",
|
||||
"registerButton": "Skapa Profil",
|
||||
"discoverReadQrButton": "Scanna QRCode",
|
||||
"mainPageYourProfileLink": "Din Profil",
|
||||
"loginButton": "Logga in",
|
||||
"registerButton": "Skapa profil",
|
||||
"discoverReadQrButton": "Scanna QR-kod",
|
||||
"mainPageYourProfileLink": "Din profil",
|
||||
"mainPageYourProfileLinkDesc": "Ändra din profil",
|
||||
"mainPageCurrentSongLink": "Nuvarande Låt",
|
||||
"mainPageCurrentSongLink": "Nuvarande låt",
|
||||
"mainPageCurrentSongLinkDesc": "Visa information om nuvarande låt",
|
||||
"mainPageSelectSong": "Alla låtar",
|
||||
"mainPageSelectSongDesc": "Lista alla tillgängliga låtar",
|
||||
@@ -14,25 +14,25 @@
|
||||
"mainPageSelectPlaylistDesc": "Visa alla spellistor",
|
||||
"mainPageSelectProfile": "Profiler",
|
||||
"mainPageSelectProfileDesc": "Visa alla profiler",
|
||||
"mainPageTakePhotoLink": "Ta Foto",
|
||||
"mainPageTakePhotoLink": "Ta foto",
|
||||
"mainPageTakePhotoLinkDesc": "Tar ett foto och visar det i slutet av rundan",
|
||||
"mainPageKeyboard": "Tangentbord",
|
||||
"mainPageKeyboardDesc": "Skicka tangenter",
|
||||
"mainPageKeyboardDesc": "Skicka tangenttryck",
|
||||
"mainPageSelectUserAdmin": "Administration",
|
||||
"mainPageSelectUserAdminDesc": "Konfigurera användarrättigheter",
|
||||
"mainPageLogoutLink": "Logga ut",
|
||||
"mainPageLogoutLinkDesc": "Avsluta sessionen",
|
||||
"mainPageLogoutLinkDesc": "Avslutar sessionen",
|
||||
"selectProfileHeader": "Alla profiler",
|
||||
"displayProfileHeader": "Profil",
|
||||
"displayProfileName": "Namn:",
|
||||
"displayProfilePlayerType": "Spelar Typ:",
|
||||
"displayProfilePlayerType": "Spelartyp:",
|
||||
"displayProfilePlayerTypeNormal": "Normal",
|
||||
"displayProfilePlayerTypeGuest": "Gäst",
|
||||
"displayProfilePlayerDifficulty": "Svårighetsgrad:",
|
||||
"displayProfilePlayerDifficultyEasy": "Lätt",
|
||||
"displayProfilePlayerDifficultyNormal": "Normal",
|
||||
"displayProfilePlayerDifficultyHard": "Svårt",
|
||||
"displayProfilePlayerPassword": "Nytt Lösenord:",
|
||||
"displayProfilePlayerDifficultyNormal": "Medel",
|
||||
"displayProfilePlayerDifficultyHard": "Svår",
|
||||
"displayProfilePlayerPassword": "Nytt lösenord:",
|
||||
"displayProfilePlayerSaveButton": "Spara och ladda upp",
|
||||
"displaySongHeader": "Ingen nuvarande låt",
|
||||
"displaySongArtist": "Artist:",
|
||||
@@ -48,9 +48,9 @@
|
||||
"keyboardButtonRight": "höger",
|
||||
"keyboardButtonDown": "ner",
|
||||
"keyboardButtonEscape": "avbryt",
|
||||
"keyboardButtonTab": "tab",
|
||||
"keyboardButtonReturn": "enter",
|
||||
"keyboardButtonKeys": "För att skicka andra tangenter skriv här:",
|
||||
"keyboardButtonTab": "tabb",
|
||||
"keyboardButtonReturn": "retur",
|
||||
"keyboardButtonKeys": "För att skicka andra tangenttryck skriv här:",
|
||||
"selectUserAdminHeader": "Alla profiler",
|
||||
"displayUserAdminHeader": "Profil",
|
||||
"displayUserAdminContentSaveButton": "Spara",
|
||||
@@ -71,16 +71,16 @@
|
||||
"This is not a valid name.": "Detta är inget giltigt namn.",
|
||||
"Uploading profile...": "Laddar upp profil...",
|
||||
"songs": "låtar",
|
||||
"YourName": "Ditt Namn",
|
||||
"YourName": "Ditt namn",
|
||||
"discoverConnectHeader": "Anslut till server",
|
||||
"discoverConnectServerAddress": "serveradress:",
|
||||
"discoverConnectServerAddress": "Serveradress:",
|
||||
"discoverConnectButton": "Anslut",
|
||||
"Checking...": "Kontrollerar...",
|
||||
"timeout": "Timeout",
|
||||
"keyboardButtonShift": "Shift",
|
||||
"keyboardButtonShift": "Skift",
|
||||
"keyboardButtonAlt": "Alt",
|
||||
"keyboardButtonCtrl": "Control",
|
||||
"keyboardButtonCtrl": "Ctrl",
|
||||
"keyboardButtonBackspace": "Backsteg",
|
||||
"keyboardAutoSend": "Auto skicka knappar",
|
||||
"keyboardAutoSend": "Autoskicka knappar",
|
||||
"keyboardButtonSend": "Skicka"
|
||||
}
|
||||
@@ -1,15 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="vocaluxe.dependencies" version="1.0.10" targetFramework="net40" />
|
||||
<package id="vocaluxe.dependencies.acinerella" version="1.0.3" targetFramework="net40" />
|
||||
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="net471" />
|
||||
<package id="vocaluxe.dependencies.acinerella" version="1.0.5" targetFramework="net40" />
|
||||
<package id="vocaluxe.dependencies.aforgevideo" version="1.0.1" targetFramework="net40" />
|
||||
<package id="vocaluxe.dependencies.csharpsqlite" version="1.0.1" targetFramework="net40" />
|
||||
<package id="vocaluxe.dependencies.ffmpeg" version="1.0.3" targetFramework="net40" />
|
||||
<package id="vocaluxe.dependencies.gstreamer" version="1.0.2" targetFramework="net40" />
|
||||
<package id="vocaluxe.dependencies.ffmpeg" version="1.0.4" targetFramework="net40" />
|
||||
<package id="vocaluxe.dependencies.gstreamer" version="1.0.3" targetFramework="net40" />
|
||||
<package id="vocaluxe.dependencies.gstreamersharp" version="1.0.1" targetFramework="net40" />
|
||||
<package id="vocaluxe.dependencies.hidapi" version="1.0.4" targetFramework="net40" />
|
||||
<package id="vocaluxe.dependencies.opentk" version="1.0.1" targetFramework="net40" />
|
||||
<package id="vocaluxe.dependencies.portaudiosharp" version="1.0.2" targetFramework="net40" />
|
||||
<package id="vocaluxe.dependencies.portaudiosharp" version="1.0.3" targetFramework="net40" />
|
||||
<package id="vocaluxe.dependencies.qrcoder" version="1.0.1" targetFramework="net40" />
|
||||
<package id="vocaluxe.dependencies.slimdx" version="1.0.1" targetFramework="net40" />
|
||||
<package id="vocaluxe.dependencies.sqlite" version="1.0.1" targetFramework="net40" />
|
||||
|
||||
@@ -135,7 +135,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
MaxRect = button.MaxRect;
|
||||
Color = button.Color;
|
||||
SelColor = button.Color;
|
||||
SelColor = button.SelColor;
|
||||
Texture = button.Texture;
|
||||
SelTexture = button.SelTexture;
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
// along with Vocaluxe. If not, see <http://www.gnu.org/licenses/>.
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
using VocaluxeLib.Draw;
|
||||
@@ -37,7 +38,7 @@ namespace VocaluxeLib.Menu
|
||||
}
|
||||
}
|
||||
|
||||
private bool _Teams;
|
||||
protected bool _Teams = true;
|
||||
protected int _NumTeams = -1;
|
||||
protected int _NumPlayer = -1;
|
||||
protected int[] _NumPlayerTeams;
|
||||
@@ -106,8 +107,6 @@ namespace VocaluxeLib.Menu
|
||||
for (int i = 0; i < _TeamList.Length; i++)
|
||||
_TeamList[i] = new List<int>();
|
||||
|
||||
_Teams = _NumTeams > 0;
|
||||
|
||||
_UpdateSlides();
|
||||
_LoadProfiles();
|
||||
_UpdateButtonVisibility();
|
||||
@@ -589,12 +588,15 @@ namespace VocaluxeLib.Menu
|
||||
}
|
||||
else
|
||||
{
|
||||
_NumPlayerTeams[i] = _NumPlayer;
|
||||
//Get average num players per teams as default player number
|
||||
_NumPlayerTeams[i] = _NumPlayer/(_NumTeams - 1);
|
||||
_NumPlayer += _NumPlayerTeams[i];
|
||||
_TeamList[i] = new List<int>();
|
||||
}
|
||||
}
|
||||
}
|
||||
_UpdateButtonState();
|
||||
_UpdateTeamSlide();
|
||||
}
|
||||
|
||||
public void DecreaseTeamNum()
|
||||
@@ -605,6 +607,7 @@ namespace VocaluxeLib.Menu
|
||||
if (_NumTeams - 1 >= _PartyMode.MinTeams)
|
||||
_NumTeams--;
|
||||
_UpdateButtonState();
|
||||
_UpdateTeamSlide();
|
||||
}
|
||||
|
||||
public void IncreasePlayerNum(int team)
|
||||
@@ -693,16 +696,20 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
private void _UpdateTeamSlide()
|
||||
{
|
||||
int sel = _SelectSlides[_SelectSlideTeams].Selection;
|
||||
|
||||
_SelectSlides[_SelectSlideTeams].Visible = _Teams;
|
||||
_SelectSlides[_SelectSlideTeams].Clear();
|
||||
for (int i = 1; i <= _NumTeams; i++)
|
||||
_SelectSlides[_SelectSlideTeams].AddValue("Team " + i, null, i);
|
||||
|
||||
_SelectSlides[_SelectSlideTeams].Selection = Math.Min(sel, _SelectSlides[_SelectSlideTeams].NumValues - 1);
|
||||
}
|
||||
|
||||
private void _UpdateButtonVisibility()
|
||||
{
|
||||
_Buttons[_ButtonIncreaseTeams].Visible = _AllowChangePlayerNum && _Teams && _PartyMode.MinTeams != _PartyMode.MaxTeams;
|
||||
_Buttons[_ButtonDecreaseTeams].Visible = _AllowChangePlayerNum && _Teams && _PartyMode.MinTeams != _PartyMode.MaxTeams;
|
||||
_Buttons[_ButtonIncreaseTeams].Visible = _AllowChangeTeamNum && _Teams && _PartyMode.MinTeams != _PartyMode.MaxTeams;
|
||||
_Buttons[_ButtonDecreaseTeams].Visible = _AllowChangeTeamNum && _Teams && _PartyMode.MinTeams != _PartyMode.MaxTeams;
|
||||
_Buttons[_ButtonIncreasePlayer].Visible = _AllowChangePlayerNum;
|
||||
_Buttons[_ButtonDecreasePlayer].Visible = _AllowChangePlayerNum;
|
||||
}
|
||||
|
||||
@@ -119,18 +119,24 @@ namespace VocaluxeLib.Menu
|
||||
keyEvent.Handled = PrevValue();
|
||||
else
|
||||
keyEvent.Handled = _NextElement(keyEvent);
|
||||
}
|
||||
|
||||
if (keyEvent.Key == Keys.Right)
|
||||
return true;
|
||||
}
|
||||
else if (keyEvent.Key == Keys.Right)
|
||||
{
|
||||
if (_IsSelectionValid() && _Elements[_Selection].Type == EType.SelectSlide && keyEvent.Mod != EModifier.Shift)
|
||||
keyEvent.Handled = NextValue();
|
||||
else
|
||||
keyEvent.Handled = _NextElement(keyEvent);
|
||||
}
|
||||
|
||||
if (keyEvent.Key == Keys.Up || keyEvent.Key == Keys.Down)
|
||||
return true;
|
||||
}
|
||||
else if (keyEvent.Key == Keys.Up || keyEvent.Key == Keys.Down)
|
||||
{
|
||||
keyEvent.Handled = _NextElement(keyEvent);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -140,16 +146,25 @@ namespace VocaluxeLib.Menu
|
||||
PrevElement();
|
||||
else
|
||||
NextElement();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
if (keyEvent.Key == Keys.Left)
|
||||
{
|
||||
PrevValue();
|
||||
|
||||
if (keyEvent.Key == Keys.Right)
|
||||
return true;
|
||||
}
|
||||
else if (keyEvent.Key == Keys.Right)
|
||||
{
|
||||
NextValue();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
public virtual bool HandleMouse(SMouseEvent mouseEvent)
|
||||
|
||||
@@ -554,7 +554,7 @@ namespace VocaluxeLib.Menu
|
||||
break;
|
||||
|
||||
case Keys.Enter:
|
||||
_StartPlaylistSong(_CurrentPlaylistElement);
|
||||
_StartPlaylistSong(_CurrentPlaylistElement + _Offset);
|
||||
break;
|
||||
|
||||
case Keys.Add: //move the selected song up
|
||||
@@ -880,7 +880,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
//Start selected song with double click
|
||||
if (mouseEvent.LD && _CurrentPlaylistElement != -1)
|
||||
_StartPlaylistSong(_CurrentPlaylistElement);
|
||||
_StartPlaylistSong(_CurrentPlaylistElement + _Offset);
|
||||
|
||||
//Change order with holding LB
|
||||
if (mouseEvent.LBH && _CurrentPlaylistElement != -1 && _PlaylistElementContents.Count > 0 && DragAndDropSongID == -1)
|
||||
@@ -1259,4 +1259,4 @@ namespace VocaluxeLib.Menu
|
||||
}
|
||||
#endregion ThemeEdit
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -586,6 +586,7 @@ namespace VocaluxeLib.Menu
|
||||
Text = new CText(0, 0, 0, _TextH, _MaxW, EAlignment.Center, _Theme.TextStyle, _Theme.TextFont, _TextColor, "T", _PartyModeID),
|
||||
Img = new CStatic(_PartyModeID)
|
||||
};
|
||||
el.Img.Aspect = EAspect.Crop;
|
||||
_VisibleElements.Add(el);
|
||||
}
|
||||
}
|
||||
|
||||
Loaded 100 of 104 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user