Merge branch 'develop' of github.com:Vocaluxe/Vocaluxe into develop

Conflicts:
	Output/Languages/Swedish.xml
This commit is contained in:
Florian Küpper committed 2016-12-20 15:18:39 +01:00
commit f2b0fb7f6a
47 files changed
+469 -145

No files matched your search

+1 -1
View File
@@ -1,6 +1,6 @@
if($Env:APPVEYOR_PULL_REQUEST_NUMBER) if($Env:APPVEYOR_PULL_REQUEST_NUMBER)
{ {
$Env:VersionTag = "PR_$Env:APPVEYOR_PULL_REQUEST_NUMBER" $Env:VersionTag = "0.0.0-na-PR_$Env:APPVEYOR_PULL_REQUEST_NUMBER"
Return $Env:VersionTag Return $Env:VersionTag
} }
+4
View File
@@ -28,6 +28,8 @@ tx.exe
*.vshost.* *.vshost.*
*.userprefs *.userprefs
*.user *.user
*.VC.db
*.VC.opendb
/*.vsp /*.vsp
/*.ctl /*.ctl
/Output/Config.xml /Output/Config.xml
@@ -65,3 +67,5 @@ tx.exe
/packages /packages
/Output/x64 /Output/x64
/Output/x86 /Output/x86
/PitchTracker/bin
/PitchTracker/obj
+1 -1
View File
@@ -73,7 +73,7 @@
<string name="TR_CONFIG_TIMERMODE_TOTAL">Totalt</string> <string name="TR_CONFIG_TIMERMODE_TOTAL">Totalt</string>
<string name="TR_CONFIG_TIMERLOOK_NORMAL">Normal</string> <string name="TR_CONFIG_TIMERLOOK_NORMAL">Normal</string>
<string name="TR_CONFIG_TIMERLOOK_EXPANDED">Utvidgad</string> <string name="TR_CONFIG_TIMERLOOK_EXPANDED">Utvidgad</string>
<string name="TR_CONFIG_HIGHSCORE_LIST_ALL">Lista Alla</string> <string name="TR_CONFIG_HIGHSCORE_LIST_ALL">Lista alla</string>
<string name="TR_CONFIG_HIGHSCORE_LIST_BEST">Lista bästa</string> <string name="TR_CONFIG_HIGHSCORE_LIST_BEST">Lista bästa</string>
<string name="TR_CONFIG_OWN_MUSIC">Egen musik och bakgrundsmusik</string> <string name="TR_CONFIG_OWN_MUSIC">Egen musik och bakgrundsmusik</string>
<string name="TR_CONFIG_NO_OWN_MUSIC">Ingen egen musik</string> <string name="TR_CONFIG_NO_OWN_MUSIC">Ingen egen musik</string>
@@ -187,7 +187,7 @@
<ResizeAlign>Center</ResizeAlign> <ResizeAlign>Center</ResizeAlign>
<Style>Bold</Style> <Style>Bold</Style>
<Font>Outline</Font> <Font>Outline</Font>
<Text>1)</Text> <Text />
</Text> </Text>
<Text Name="TextRoundPlayer"> <Text Name="TextRoundPlayer">
<X>0</X> <X>0</X>
@@ -187,7 +187,7 @@
<ResizeAlign>Center</ResizeAlign> <ResizeAlign>Center</ResizeAlign>
<Style>Bold</Style> <Style>Bold</Style>
<Font>Outline</Font> <Font>Outline</Font>
<Text>1)</Text> <Text />
</Text> </Text>
<Text Name="TextRoundPlayer"> <Text Name="TextRoundPlayer">
<X>0</X> <X>0</X>
@@ -98,7 +98,7 @@
<X>120</X> <X>120</X>
<Y>160</Y> <Y>160</Y>
<Z>0</Z> <Z>0</Z>
<H>42</H> <H>35</H>
<MaxW>0</MaxW> <MaxW>0</MaxW>
<Color Name="StaticColor" /> <Color Name="StaticColor" />
<SelColor Name="TextSelColor" /> <SelColor Name="TextSelColor" />
@@ -2,7 +2,7 @@
<Screen xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Screen xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Informations> <Informations>
<ScreenName>ScreenOptionsGame</ScreenName> <ScreenName>ScreenOptionsGame</ScreenName>
<ScreenVersion>2</ScreenVersion> <ScreenVersion>3</ScreenVersion>
</Informations> </Informations>
<Backgrounds> <Backgrounds>
<Background Name="Background1"> <Background Name="Background1">
@@ -191,6 +191,20 @@
<Font>Outline</Font> <Font>Outline</Font>
<Text>TR_SCREENOGAME_TIMERMODE</Text> <Text>TR_SCREENOGAME_TIMERMODE</Text>
</Text> </Text>
<Text Name="Text8">
<X>75</X>
<Y>467</Y>
<Z>0</Z>
<H>27</H>
<MaxW>0</MaxW>
<Color Name="StaticColor" />
<SelColor Name="TextSelColor" />
<Align>Left</Align>
<ResizeAlign>Center</ResizeAlign>
<Style>Bold</Style>
<Font>Outline</Font>
<Text>TR_SCREENOGAME_HIGHSCORESTYLE</Text>
</Text>
</Texts> </Texts>
<Buttons> <Buttons>
<Button Name="ButtonExit"> <Button Name="ButtonExit">
@@ -519,6 +533,48 @@
<TextStyle>Bold</TextStyle> <TextStyle>Bold</TextStyle>
<NumVisible>3</NumVisible> <NumVisible>3</NumVisible>
</SelectSlide> </SelectSlide>
<SelectSlide Name="SelectSlideHighscoreStyle">
<Skin/>
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
<SkinSelected>SelectSlide</SkinSelected>
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
<Rect>
<X>500</X>
<Y>460</Y>
<W>700</W>
<H>50</H>
<Z>0</Z>
</Rect>
<RectArrowLeft>
<X>505</X>
<Y>465</Y>
<W>40</W>
<H>40</H>
<Z>0</Z>
</RectArrowLeft>
<RectArrowRight>
<X>1170</X>
<Y>465</Y>
<W>40</W>
<H>40</H>
<Z>0</Z>
</RectArrowRight>
<Color Name="SelectSlideColor" />
<SelColor Name="SelectSlideSelColor" />
<ArrowColor Name="ArrowColor" />
<ArrowSelColor Name="ArrowSelColor" />
<TextColor Name="TextColor" />
<TextSelColor Name="TextSelColor" />
<TextH>27</TextH>
<TextRelativeX>50</TextRelativeX>
<TextRelativeY>0</TextRelativeY>
<TextMaxW>205.33</TextMaxW>
<TextFont>Outline</TextFont>
<TextStyle>Bold</TextStyle>
<NumVisible>2</NumVisible>
</SelectSlide>
</SelectSlides> </SelectSlides>
<SingNotes /> <SingNotes />
<NameSelections /> <NameSelections />
@@ -2,7 +2,7 @@
<Screen xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Screen xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Informations> <Informations>
<ScreenName>ScreenOptionsSound</ScreenName> <ScreenName>ScreenOptionsSound</ScreenName>
<ScreenVersion>3</ScreenVersion> <ScreenVersion>4</ScreenVersion>
</Informations> </Informations>
<Backgrounds> <Backgrounds>
<Background Name="Background1"> <Background Name="Background1">
@@ -110,6 +110,20 @@
<Style>Bold</Style> <Style>Bold</Style>
<Font>Outline</Font> <Font>Outline</Font>
<Text>TR_SCREENOSOUND_GAMEMUSICVOLUME</Text> <Text>TR_SCREENOSOUND_GAMEMUSICVOLUME</Text>
</Text>
<Text Name="Text7">
<X>75</X>
<Y>407</Y>
<Z>0</Z>
<H>27</H>
<MaxW>0</MaxW>
<Color Name="StaticColor" />
<SelColor Name="TextSelColor" />
<Align>Left</Align>
<ResizeAlign>Center</ResizeAlign>
<Style>Bold</Style>
<Font>Outline</Font>
<Text>TR_SCREENOSOUND_KARAOKEEFFECT</Text>
</Text> </Text>
</Texts> </Texts>
<Buttons> <Buttons>
@@ -361,6 +375,48 @@
<TextFont>Outline</TextFont> <TextFont>Outline</TextFont>
<TextStyle>Bold</TextStyle> <TextStyle>Bold</TextStyle>
<NumVisible>3</NumVisible> <NumVisible>3</NumVisible>
</SelectSlide>
<SelectSlide Name="SelectSlideKaraokeEffect">
<Skin/>
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
<SkinSelected>SelectSlide</SkinSelected>
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
<Rect>
<X>500</X>
<Y>400</Y>
<W>700</W>
<H>50</H>
<Z>0</Z>
</Rect>
<RectArrowLeft>
<X>505</X>
<Y>405</Y>
<W>40</W>
<H>40</H>
<Z>0</Z>
</RectArrowLeft>
<RectArrowRight>
<X>1170</X>
<Y>405</Y>
<W>40</W>
<H>40</H>
<Z>0</Z>
</RectArrowRight>
<Color Name="SelectSlideColor" />
<SelColor Name="SelectSlideSelColor" />
<ArrowColor Name="ArrowColor" />
<ArrowSelColor Name="ArrowSelColor" />
<TextColor Name="TextColor" />
<TextSelColor Name="TextSelColor" />
<TextH>27</TextH>
<TextRelativeX>50</TextRelativeX>
<TextRelativeY>0</TextRelativeY>
<TextMaxW>500</TextMaxW>
<TextFont>Outline</TextFont>
<TextStyle>Bold</TextStyle>
<NumVisible>2</NumVisible>
</SelectSlide> </SelectSlide>
</SelectSlides> </SelectSlides>
<SingNotes /> <SingNotes />
@@ -1,5 +1,11 @@
ScreenOptionsGame ScreenOptionsGame
++++++++++
Version 3:
Add:
<Text8>
<SelectSlideHighscoreStyle>
++++++++++ ++++++++++
Version 2: Version 2:
@@ -1,5 +1,15 @@
ScreenOptionsSound ScreenOptionsSound
++++++++++
Version 4:
Add:
<SelectSlideKaraokeEffect>
and text for the description (Text7)
"TR_SCREENOSOUND_KARAOKEEFFECT"
++++++++++ ++++++++++
Version 3: Version 3:
+7
View File
@@ -120,6 +120,8 @@ namespace Vocaluxe.Base
[DefaultValue(EOffOn.TR_CONFIG_ON)] public EOffOn BackgroundMusicUseStart; [DefaultValue(EOffOn.TR_CONFIG_ON)] public EOffOn BackgroundMusicUseStart;
[XmlRanged(0, 100), DefaultValue(50)] public int PreviewMusicVolume; [XmlRanged(0, 100), DefaultValue(50)] public int PreviewMusicVolume;
[XmlRanged(0, 100), DefaultValue(80)] public int GameMusicVolume; [XmlRanged(0, 100), DefaultValue(80)] public int GameMusicVolume;
[DefaultValue(EOffOn.TR_CONFIG_OFF)] public EOffOn KaraokeEffect;
[XmlRanged(0, 1), DefaultValue(1.0f)] public float KaraokeEffectLevel;
// ReSharper restore MemberHidesStaticFromOuterClass // ReSharper restore MemberHidesStaticFromOuterClass
} }
@@ -139,6 +141,7 @@ namespace Vocaluxe.Base
[DefaultValue(ELyricsPosition.TR_CONFIG_LYRICSPOSITION_BOTTOM)] public ELyricsPosition LyricsPosition; [DefaultValue(ELyricsPosition.TR_CONFIG_LYRICSPOSITION_BOTTOM)] public ELyricsPosition LyricsPosition;
[DefaultValue(0.1f)] public float MinLineBreakTime; //Minimum time to show the text before it is (to be) sung (if possible) [DefaultValue(0.1f)] public float MinLineBreakTime; //Minimum time to show the text before it is (to be) sung (if possible)
[XmlArrayItem("Player"), XmlArray] public string[] Players; [XmlArrayItem("Player"), XmlArray] public string[] Players;
[DefaultValue(EHighscoreStyle.TR_CONFIG_HIGHSCORE_LIST_BEST)] public EHighscoreStyle HighscoreStyle;
} }
public struct SConfigVideo public struct SConfigVideo
@@ -452,6 +455,10 @@ namespace Vocaluxe.Base
return "Preview Volume from 0 to 100"; return "Preview Volume from 0 to 100";
case "GameMusicVolume": case "GameMusicVolume":
return "Game Volume from 0 to 100"; return "Game Volume from 0 to 100";
case "KaraokeEffect":
return "Apply a karaoke effect to song playback (EPlaybackLib.GstreamerSharp only)";
case "KaraokeEffectLevel":
return "The level of the karaoke effect [0-1] (EPlaybackLib.GstreamerSharp only)";
case "Language": case "Language":
return "Game-Language"; return "Game-Language";
case "SongFolder": case "SongFolder":
+2 -2
View File
@@ -85,9 +85,9 @@ namespace Vocaluxe.Base
return _HighscoreDB.GetDataBaseSongInfos(artist, title, out numPlayed, out dateAdded, out highscoreID); return _HighscoreDB.GetDataBaseSongInfos(artist, title, out numPlayed, out dateAdded, out highscoreID);
} }
public static List<SDBScoreEntry> LoadScore(int songID, EGameMode gameMode) public static List<SDBScoreEntry> LoadScore(int songID, EGameMode gameMode, EHighscoreStyle style)
{ {
return _HighscoreDB == null ? null : _HighscoreDB.LoadScore(songID, gameMode); return _HighscoreDB == null ? null : _HighscoreDB.LoadScore(songID, gameMode, style);
} }
public static int AddScore(SPlayer player) public static int AddScore(SPlayer player)
+5
View File
@@ -91,6 +91,11 @@ namespace Vocaluxe.Base
return CConfig.SongMenu; return CConfig.SongMenu;
} }
public EHighscoreStyle GetHighscoreStyle()
{
return CConfig.Config.Game.HighscoreStyle;
}
public EOffOn GetVideosToBackground() public EOffOn GetVideosToBackground()
{ {
return CConfig.Config.Video.VideosToBackground; return CConfig.Config.Video.VideosToBackground;
+1 -1
View File
@@ -283,7 +283,7 @@ namespace Vocaluxe.Base
compilerParams.ReferencedAssemblies.Add("System.Windows.Forms.dll"); compilerParams.ReferencedAssemblies.Add("System.Windows.Forms.dll");
compilerParams.ReferencedAssemblies.Add("System.dll"); compilerParams.ReferencedAssemblies.Add("System.dll");
compilerParams.ReferencedAssemblies.Add("System.Core.dll"); compilerParams.ReferencedAssemblies.Add("System.Core.dll");
compilerParams.ReferencedAssemblies.Add("libs\\managed\\VocaluxeLib.dll"); compilerParams.ReferencedAssemblies.Add(Path.Combine("libs","managed","VocaluxeLib.dll"));
compilerParams.GenerateInMemory = true; compilerParams.GenerateInMemory = true;
#if DEBUG #if DEBUG
compilerParams.IncludeDebugInformation = true; compilerParams.IncludeDebugInformation = true;
+5
View File
@@ -42,6 +42,11 @@ namespace Vocaluxe.Base
get { return _Playlists.Select(t => t.Name).ToList(); } get { return _Playlists.Select(t => t.Name).ToList(); }
} }
public static List<int> Ids
{
get { return _Playlists.Select(t => t.Id).ToList(); }
}
public static int NumPlaylists public static int NumPlaylists
{ {
get { return _Playlists.Count; } get { return _Playlists.Count; }
+43 -14
View File
@@ -18,6 +18,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq;
using System.Reflection; using System.Reflection;
using System.Windows.Forms; using System.Windows.Forms;
using VocaluxeLib; using VocaluxeLib;
@@ -53,10 +54,44 @@ namespace Vocaluxe.Base
public static EProgramState ProgramState = EProgramState.Start; public static EProgramState ProgramState = EProgramState.Start;
//Adjusting of programName and version now in the assembly config. //Adjusting of programName and version now in the assembly config.
//I'd use the major and minor for Main releases, build number for every public release and revision for every bugfix version without any features private static readonly Dictionary<string,string> _CodeNames = new Dictionary<string, string>()
private const string _ProgramCodeName = "Shining Heaven"; {
{"0.3.", "Shining Heaven"},
{"0.4.", "Blue Sunrise"}
};
public const ERevision VersionRevision = ERevision.Beta; 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
{
get
{
if (_Version.ToLower().Contains("alpha"))
{
return ERevision.Alpha;
}
if (_Version.ToLower().Contains("beta"))
{
return ERevision.Beta;
}
if (_Version.ToLower().Contains("rc"))
{
return ERevision.RC;
}
return ERevision.Release;
}
}
public const int DatabaseHighscoreVersion = 3; public const int DatabaseHighscoreVersion = 3;
public const int DatabaseCoverVersion = 1; public const int DatabaseCoverVersion = 1;
@@ -177,8 +212,7 @@ namespace Vocaluxe.Base
{ {
get get
{ {
Version v = _Assembly.Version; return Application.ProductVersion.Split('-').First();
return "v" + v.Major + "." + v.Minor + "." + v.Build;
} }
} }
@@ -186,11 +220,10 @@ namespace Vocaluxe.Base
{ {
string version = _Version + " (" + _Arch + ")"; string version = _Version + " (" + _Arch + ")";
// ReSharper disable ConditionIsAlwaysTrueOrFalse string gitversion = Application.ProductVersion;
if (VersionRevision != ERevision.Release)
if (VersionRevision != ERevision.Release || gitversion.Split('-')[1] != "0")
{ {
// ReSharper restore ConditionIsAlwaysTrueOrFalse
string gitversion = Application.ProductVersion;
version += " " + _GetVersionStatus() + String.Format(" ({0})", gitversion); version += " " + _GetVersionStatus() + String.Format(" ({0})", gitversion);
} }
@@ -201,9 +234,7 @@ namespace Vocaluxe.Base
{ {
string version = ProgramName; string version = ProgramName;
// ReSharper disable ConditionIsAlwaysTrueOrFalse
if (_ProgramCodeName != "") if (_ProgramCodeName != "")
// ReSharper restore ConditionIsAlwaysTrueOrFalse
version += " \"" + _ProgramCodeName + "\""; version += " \"" + _ProgramCodeName + "\"";
return version + " " + _GetVersionText(); return version + " " + _GetVersionText();
@@ -211,11 +242,9 @@ namespace Vocaluxe.Base
private static string _GetVersionStatus() private static string _GetVersionStatus()
{ {
string result; string result = "";
// ReSharper disable ConditionIsAlwaysTrueOrFalse
if (VersionRevision != ERevision.Release) if (VersionRevision != ERevision.Release)
// ReSharper restore ConditionIsAlwaysTrueOrFalse
result = Enum.GetName(typeof(ERevision), VersionRevision); result = Enum.GetName(typeof(ERevision), VersionRevision);
return result; return result;
+3 -2
View File
@@ -22,6 +22,7 @@ using Vocaluxe.Lib.Sound.Playback.OpenAL;
using Vocaluxe.Lib.Sound.Playback.PortAudio; using Vocaluxe.Lib.Sound.Playback.PortAudio;
using VocaluxeLib; using VocaluxeLib;
using System.Threading; using System.Threading;
using Vocaluxe.Lib.Sound;
namespace Vocaluxe.Base namespace Vocaluxe.Base
{ {
@@ -88,9 +89,9 @@ namespace Vocaluxe.Base
} }
#region Stream Handling #region Stream Handling
public static int Load(string media, bool loop = false, bool prescan = false) public static int Load(string media, bool loop = false, bool prescan = false, EAudioEffect effekt = EAudioEffect.None)
{ {
return _Playback.Load(media, loop, prescan); return _Playback.Load(media, loop, prescan, effekt);
} }
public static void Close(int stream) public static void Close(int stream)
+33 -5
View File
@@ -266,7 +266,7 @@ namespace Vocaluxe.Lib.Database
return lastInsertID; return lastInsertID;
} }
public List<SDBScoreEntry> LoadScore(int songID, EGameMode gameMode) public List<SDBScoreEntry> LoadScore(int songID, EGameMode gameMode, EHighscoreStyle style)
{ {
var scores = new List<SDBScoreEntry>(); var scores = new List<SDBScoreEntry>();
using (var connection = new SQLiteConnection()) using (var connection = new SQLiteConnection())
@@ -304,9 +304,37 @@ namespace Vocaluxe.Lib.Database
if (dataBaseSongID < 0) if (dataBaseSongID < 0)
return scores; return scores;
command.CommandText = "SELECT PlayerName, Score, Date, Difficulty, LineNr, id FROM Scores " + switch (style)
"WHERE [SongID] = @SongID AND [Medley] = @Medley AND [Duet] = @Duet AND [ShortSong] = @ShortSong " + {
"ORDER BY [Score] DESC"; case EHighscoreStyle.TR_CONFIG_HIGHSCORE_LIST_BEST:
command.CommandText = "SELECT os.PlayerName, os.Score, os.Date, os.Difficulty, os.LineNr, os.id " +
"FROM Scores os " +
"INNER JOIN ( " +
"SELECT sc.PlayerName, sc.Score, sc.Difficulty, sc.LineNr, MIN(sc.Date) AS Date " +
"FROM Scores sc " +
"INNER JOIN ( " +
"SELECT Playername, MAX(Score) AS Score, Difficulty, LineNr " +
"FROM Scores " +
"WHERE [SongID] = @SongID AND [Medley] = @Medley AND [Duet] = @Duet AND [ShortSong] = @ShortSong " +
"GROUP BY PlayerName, Difficulty, LineNr " +
") AS mc " +
"ON sc.PlayerName = mc.PlayerName AND sc.Difficulty = mc.Difficulty AND sc.LineNr = mc.LineNr AND sc.Score = mc.Score " +
"WHERE [SongID] = @SongID AND [Medley] = @Medley AND [Duet] = @Duet AND [ShortSong] = @ShortSong " +
"GROUP BY sc.PlayerName, sc.Difficulty, sc.LineNr, sc.Score " +
") AS iq " +
"ON os.PlayerName = iq.PlayerName AND os.Difficulty = iq.Difficulty AND os.LineNr = iq.LineNr AND os.Score = iq.Score AND os.Date = iq.Date " +
"WHERE [SongID] = @SongID AND [Medley] = @Medley AND [Duet] = @Duet AND [ShortSong] = @ShortSong " +
"GROUP BY os.PlayerName, os.Difficulty, os.LineNr, os.Score " +
"ORDER BY os.Score DESC, os.Date ASC";
break;
case EHighscoreStyle.TR_CONFIG_HIGHSCORE_LIST_ALL:
command.CommandText = "SELECT PlayerName, Score, Date, Difficulty, LineNr, id " +
"FROM Scores " +
"WHERE [SongID] = @SongID AND [Medley] = @Medley AND [Duet] = @Duet AND [ShortSong] = @ShortSong " +
"ORDER BY [Score] DESC, [Date] ASC";
break;
}
command.Parameters.Add("@SongID", DbType.Int32, 0).Value = dataBaseSongID; command.Parameters.Add("@SongID", DbType.Int32, 0).Value = dataBaseSongID;
command.Parameters.Add("@Medley", DbType.Int32, 0).Value = medley; command.Parameters.Add("@Medley", DbType.Int32, 0).Value = medley;
command.Parameters.Add("@Duet", DbType.Int32, 0).Value = duet; command.Parameters.Add("@Duet", DbType.Int32, 0).Value = duet;
@@ -475,7 +503,7 @@ namespace Vocaluxe.Lib.Database
command.ExecuteNonQuery(); command.ExecuteNonQuery();
command.CommandText = "CREATE TABLE IF NOT EXISTS Songs ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, " + command.CommandText = "CREATE TABLE IF NOT EXISTS Songs ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, " +
"Artist TEXT NOT NULL, Title TEXT NOT NULL, NumPlayed INTEGER, DateAdded BIGING);"; "Artist TEXT NOT NULL, Title TEXT NOT NULL, NumPlayed INTEGER, DateAdded BIGINT);";
command.ExecuteNonQuery(); command.ExecuteNonQuery();
command.CommandText = "CREATE TABLE IF NOT EXISTS Scores ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, " + command.CommandText = "CREATE TABLE IF NOT EXISTS Scores ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, " +
+1 -1
View File
@@ -161,7 +161,7 @@ namespace Vocaluxe.Lib.Input
key = Keys.Space; key = Keys.Space;
else if (buttonStates.Buttons.A == OpenTK.Input.ButtonState.Pressed && _OldButtonStates.Buttons.A == OpenTK.Input.ButtonState.Released) else if (buttonStates.Buttons.A == OpenTK.Input.ButtonState.Pressed && _OldButtonStates.Buttons.A == OpenTK.Input.ButtonState.Released)
key = Keys.Enter; key = Keys.Enter;
else if (buttonStates.Buttons.X == OpenTK.Input.ButtonState.Pressed && _OldButtonStates.Buttons.X == OpenTK.Input.ButtonState.Released) else if (buttonStates.Buttons.B == OpenTK.Input.ButtonState.Pressed && _OldButtonStates.Buttons.B == OpenTK.Input.ButtonState.Released)
key = Keys.Escape; key = Keys.Escape;
else if (buttonStates.Buttons.Back == OpenTK.Input.ButtonState.Pressed && _OldButtonStates.Buttons.Back == OpenTK.Input.ButtonState.Released) else if (buttonStates.Buttons.Back == OpenTK.Input.ButtonState.Pressed && _OldButtonStates.Buttons.Back == OpenTK.Input.ButtonState.Released)
key = Keys.Back; key = Keys.Back;
+14
View File
@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Vocaluxe.Lib.Sound
{
[Flags]
public enum EAudioEffect
{
None = 0,
Karaoke = 1
}
}
@@ -25,6 +25,7 @@ namespace Vocaluxe.Lib.Sound.Playback
private readonly int _ID; private readonly int _ID;
protected readonly string _Medium; protected readonly string _Medium;
protected readonly bool _Loop; protected readonly bool _Loop;
protected readonly EAudioEffect _Effect;
protected ICloseStreamListener _CloseStreamListener; protected ICloseStreamListener _CloseStreamListener;
@@ -48,11 +49,12 @@ namespace Vocaluxe.Lib.Sound.Playback
public abstract bool IsPaused { get; set; } public abstract bool IsPaused { get; set; }
public abstract bool IsFinished { get; } public abstract bool IsFinished { get; }
protected CAudioStreamBase(int id, string medium, bool loop) protected CAudioStreamBase(int id, string medium, bool loop, EAudioEffect effect = EAudioEffect.None)
{ {
_ID = id; _ID = id;
_Medium = medium; _Medium = medium;
_Loop = loop; _Loop = loop;
_Effect = effect;
} }
~CAudioStreamBase() ~CAudioStreamBase()
+3 -3
View File
@@ -113,13 +113,13 @@ namespace Vocaluxe.Lib.Sound.Playback
#region Stream Handling #region Stream Handling
//Factory method to get a stream instance //Factory method to get a stream instance
protected abstract IAudioStream _CreateStream(int id, string media, bool loop); protected abstract IAudioStream _CreateStream(int id, string media, bool loop, EAudioEffect effect = EAudioEffect.None);
public int Load(string medium, bool loop = false, bool prescan = false) public int Load(string medium, bool loop = false, bool prescan = false, EAudioEffect effect = EAudioEffect.None)
{ {
if (!_Initialized) if (!_Initialized)
return -1; return -1;
IAudioStream stream = _CreateStream(_NextID++, medium, loop); IAudioStream stream = _CreateStream(_NextID++, medium, loop, effect);
if (stream.Open(prescan)) if (stream.Open(prescan))
{ {
@@ -35,26 +35,29 @@ namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp
#if ARCH_X64 #if ARCH_X64
const string varName = "GSTREAMER_1_0_ROOT_X86_64"; const string varName = "GSTREAMER_1_0_ROOT_X86_64";
#endif #endif
string gstreamerEnvVar = Environment.GetEnvironmentVariable(varName, EnvironmentVariableTarget.User);
string dllDirectory; string dllDirectory;
if (gstreamerEnvVar == null || !Directory.Exists(gstreamerEnvVar))
{
#if ARCH_X86 #if ARCH_X86
dllDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "libs\\unmanaged\\gstreamer86\\bin\\"); dllDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "libs\\unmanaged\\gstreamer86\\bin\\");
#endif #endif
#if ARCH_X64 #if ARCH_X64
dllDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "libs\\unmanaged\\gstreamer64\\bin\\"); dllDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "libs\\unmanaged\\gstreamer64\\bin\\");
#endif #endif
if (!Directory.Exists(dllDirectory)) if (!Directory.Exists(dllDirectory))
{
string gstreamerEnvVar = Environment.GetEnvironmentVariable(varName, EnvironmentVariableTarget.User);
if (gstreamerEnvVar == null || !Directory.Exists(gstreamerEnvVar))
{ {
CLog.LogError("Gstreamer not found! Make sure you installed it correctly and if it set the environment variable '" + varName + "'!", true); CLog.LogError("Gstreamer not found! Make sure you installed it correctly and if it set the environment variable '" + varName + "'!", true);
return false; return false;
} }
else
{
dllDirectory = gstreamerEnvVar + "bin\\";
}
} }
else
{
dllDirectory = gstreamerEnvVar + "bin\\";
}
COSFunctions.AddEnvironmentPath(dllDirectory); COSFunctions.AddEnvironmentPath(dllDirectory);
#endif #endif
@@ -72,9 +75,9 @@ namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp
Application.Deinit(); Application.Deinit();
} }
protected override IAudioStream _CreateStream(int id, string media, bool loop) protected override IAudioStream _CreateStream(int id, string media, bool loop, EAudioEffect effect = EAudioEffect.None)
{ {
return new CGstreamerSharpAudioStream(id, media, loop); return new CGstreamerSharpAudioStream(id, media, loop, effect);
} }
} }
} }
@@ -19,6 +19,7 @@ using System;
using GLib; using GLib;
using Gst; using Gst;
using Vocaluxe.Base; using Vocaluxe.Base;
using VocaluxeLib;
namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp
{ {
@@ -101,7 +102,7 @@ namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp
} }
} }
public CGstreamerSharpAudioStream(int id, string medium, bool loop) : base(id, medium, loop) {} public CGstreamerSharpAudioStream(int id, string medium, bool loop, EAudioEffect effect = EAudioEffect.None) : base(id, medium, loop, effect) {}
public override bool Open(bool prescan) public override bool Open(bool prescan)
{ {
@@ -123,9 +124,29 @@ namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp
} }
var audioSinkBin = new Bin("Audiosink"); var audioSinkBin = new Bin("Audiosink");
audioSinkBin.Add(convert); Element audiokaraoke = null;
audioSinkBin.Add(audiosink); if (_Effect.HasFlag(EAudioEffect.Karaoke))
convert.Link(audiosink); {
audiokaraoke = ElementFactory.Make("audiokaraoke", "karaoke");
audioSinkBin.Add(audiokaraoke);
audioSinkBin.Add(convert);
audioSinkBin.Add(audiosink);
audiokaraoke.Link(audiosink);
audiokaraoke["level"] = CConfig.Config.Sound.KaraokeEffectLevel;
audiokaraoke["mono-level"] = CConfig.Config.Sound.KaraokeEffectLevel;
convert.Link(audiokaraoke);
}
else
{
audioSinkBin.Add(convert);
audioSinkBin.Add(audiosink);
convert.Link(audiosink);
}
Pad pad = convert.GetStaticPad("sink"); Pad pad = convert.GetStaticPad("sink");
GhostPad ghostpad = new GhostPad("sink", pad); GhostPad ghostpad = new GhostPad("sink", pad);
@@ -135,6 +156,10 @@ namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp
convert.Dispose(); convert.Dispose();
audiosink.Dispose(); audiosink.Dispose();
audioSinkBin.Dispose(); audioSinkBin.Dispose();
if (audiokaraoke != null)
{
audiokaraoke.Dispose();
}
return false; return false;
} }
@@ -145,6 +170,10 @@ namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp
audiosink.Dispose(); audiosink.Dispose();
audioSinkBin.Dispose(); audioSinkBin.Dispose();
ghostpad.Dispose(); ghostpad.Dispose();
if (audiokaraoke != null)
{
audiokaraoke.Dispose();
}
return false; return false;
} }
if (!audioSinkBin.AddPad(ghostpad)) if (!audioSinkBin.AddPad(ghostpad))
@@ -154,6 +183,10 @@ namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp
audiosink.Dispose(); audiosink.Dispose();
audioSinkBin.Dispose(); audioSinkBin.Dispose();
ghostpad.Dispose(); ghostpad.Dispose();
if (audiokaraoke != null)
{
audiokaraoke.Dispose();
}
return false; return false;
} }
@@ -165,6 +198,10 @@ namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp
audiosink.Dispose(); audiosink.Dispose();
audioSinkBin.Dispose(); audioSinkBin.Dispose();
ghostpad.Dispose(); ghostpad.Dispose();
if (audiokaraoke != null)
{
audiokaraoke.Dispose();
}
return false; return false;
} }
_Element["audio-sink"] = audioSinkBin; _Element["audio-sink"] = audioSinkBin;
+1 -1
View File
@@ -36,7 +36,7 @@ namespace Vocaluxe.Lib.Sound.Playback
void CloseAll(); void CloseAll();
#region stream Handling #region stream Handling
int Load(string medium, bool loop = false, bool prescan = false); int Load(string medium, bool loop = false, bool prescan = false, EAudioEffect effekt= EAudioEffect.None);
void Close(int streamID); void Close(int streamID);
void Play(int streamID); void Play(int streamID);
@@ -44,9 +44,9 @@ namespace Vocaluxe.Lib.Sound.Playback.OpenAL
_Context = null; _Context = null;
} }
protected override IAudioStream _CreateStream(int id, string media, bool loop) protected override IAudioStream _CreateStream(int id, string media, bool loop, EAudioEffect effect = EAudioEffect.None)
{ {
return new COpenAlStream(id, media, loop); return new COpenAlStream(id, media, loop, effect);
} }
} }
} }
@@ -122,7 +122,7 @@ namespace Vocaluxe.Lib.Sound.Playback.OpenAL
} }
} }
public COpenAlStream(int id, string medium, bool loop) : base(id, medium, loop) {} public COpenAlStream(int id, string medium, bool loop, EAudioEffect effect = EAudioEffect.None) : base(id, medium, loop, effect) {}
protected override void _Dispose(bool disposing) protected override void _Dispose(bool disposing)
{ {
@@ -29,9 +29,9 @@ namespace Vocaluxe.Lib.Sound.Playback.PortAudio
return true; return true;
} }
protected override IAudioStream _CreateStream(int id, string media, bool loop) protected override IAudioStream _CreateStream(int id, string media, bool loop, EAudioEffect effect = EAudioEffect.None)
{ {
return new CPortAudioStream(id, media, loop); return new CPortAudioStream(id, media, loop, effect);
} }
} }
} }
@@ -131,7 +131,7 @@ namespace Vocaluxe.Lib.Sound.Playback.PortAudio
} }
} }
public CPortAudioStream(int id, string medium, bool loop) : base(id, medium, loop) {} public CPortAudioStream(int id, string medium, bool loop, EAudioEffect effect = EAudioEffect.None) : base(id, medium, loop, effect) {}
public override bool Open(bool prescan) public override bool Open(bool prescan)
{ {
+2
View File
@@ -2,4 +2,6 @@
PROJECT=$1 PROJECT=$1
cd $PROJECT cd $PROJECT
sed -i -r -e 's/AssemblyInformationalVersion\(".*?"\)/AssemblyInformationalVersion("GITVERSION")/' $PROJECT/Properties/AssemblyInfo.cs 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 -e 's/var matchingServerVersion = "";/var matchingServerVersion = "'$(git describe --long)'";/' $PROJECT/../Output/Website/js/main.js sed -i -e 's/var matchingServerVersion = "";/var matchingServerVersion = "'$(git describe --long)'";/' $PROJECT/../Output/Website/js/main.js
+2
View File
@@ -2,3 +2,5 @@
PROJECT=$1 PROJECT=$1
cd $PROJECT cd $PROJECT
sed -i -e s/GITVERSION/$(git describe --long)/ $PROJECT/Properties/AssemblyInfo.cs 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
+3 -3
View File
@@ -27,7 +27,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")] [assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")] [assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Vocaluxe")] [assembly: AssemblyProduct("Vocaluxe")]
[assembly: AssemblyCopyright("Copyright © 2013")] [assembly: AssemblyCopyright("Copyright © 2016")]
[assembly: AssemblyTrademark("")] [assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")] [assembly: AssemblyCulture("")]
@@ -49,6 +49,6 @@ using System.Runtime.InteropServices;
// Revision // Revision
// //
[assembly: AssemblyVersion("0.3.0.83")] [assembly: AssemblyVersion("SHORTVERSION")]
[assembly: AssemblyFileVersion("0.3.0.83")] [assembly: AssemblyFileVersion("SHORTVERSION")]
[assembly: AssemblyInformationalVersion("GITVERSION")] [assembly: AssemblyInformationalVersion("GITVERSION")]
+3 -2
View File
@@ -177,7 +177,7 @@ namespace Vocaluxe.Screens
name += " (P" + (_Scores[_Round][_Pos + p].VoiceNr + 1) + ")"; name += " (P" + (_Scores[_Round][_Pos + p].VoiceNr + 1) + ")";
_Texts[_TextName[p]].Text = name; _Texts[_TextName[p]].Text = name;
_Texts[_TextScore[p]].Text = _Scores[_Round][_Pos + p].Score.ToString("00000"); _Texts[_TextScore[p]].Text = _Scores[_Round][_Pos + p].Score.ToString("D");
_Texts[_TextDate[p]].Text = _Scores[_Round][_Pos + p].Date; _Texts[_TextDate[p]].Text = _Scores[_Round][_Pos + p].Date;
_ParticleEffects[_ParticleEffectNew[p]].Visible = _IsNewEntry(_Scores[_Round][_Pos + p].ID); _ParticleEffects[_ParticleEffectNew[p]].Visible = _IsNewEntry(_Scores[_Round][_Pos + p].ID);
@@ -239,7 +239,8 @@ namespace Vocaluxe.Screens
{ {
int songID = CGame.GetSong(round).ID; int songID = CGame.GetSong(round).ID;
EGameMode gameMode = CGame.GetGameMode(round); EGameMode gameMode = CGame.GetGameMode(round);
_Scores[round] = CDataBase.LoadScore(songID, gameMode); EHighscoreStyle style = CBase.Config.GetHighscoreStyle();
_Scores[round] = CDataBase.LoadScore(songID, gameMode, style);
} }
} }
+1 -3
View File
@@ -54,9 +54,7 @@ namespace Vocaluxe.Screens
base.LoadTheme(xmlPath); base.LoadTheme(xmlPath);
_Texts[_TextRelease].Text = CSettings.GetFullVersionText(); _Texts[_TextRelease].Text = CSettings.GetFullVersionText();
// ReSharper disable ConditionIsAlwaysTrueOrFalse _Texts[_TextRelease].Visible = true;
_Texts[_TextRelease].Visible = CSettings.VersionRevision != ERevision.Release;
// ReSharper restore ConditionIsAlwaysTrueOrFalse
_Statics[_StaticWarningProfiles].Visible = false; _Statics[_StaticWarningProfiles].Visible = false;
_Texts[_TextWarningProfiles].Visible = false; _Texts[_TextWarningProfiles].Visible = false;
} }
+5 -2
View File
@@ -27,7 +27,7 @@ namespace Vocaluxe.Screens
// Version number for theme files. Increment it, if you've changed something on the theme files! // Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion protected override int _ScreenVersion
{ {
get { return 2; } get { return 3; }
} }
private const string _SelectSlideLanguage = "SelectSlideLanguage"; private const string _SelectSlideLanguage = "SelectSlideLanguage";
@@ -36,6 +36,7 @@ namespace Vocaluxe.Screens
private const string _SelectSlideSongSorting = "SelectSlideSongSorting"; private const string _SelectSlideSongSorting = "SelectSlideSongSorting";
private const string _SelectSlideTabs = "SelectSlideTabs"; private const string _SelectSlideTabs = "SelectSlideTabs";
private const string _SelectSlideTimerMode = "SelectSlideTimerMode"; private const string _SelectSlideTimerMode = "SelectSlideTimerMode";
private const string _SelectSlideHighscoreStyle = "SelectSlideHighscoreStyle";
private const string _ButtonExit = "ButtonExit"; private const string _ButtonExit = "ButtonExit";
private const string _ButtonServer = "ButtonServer"; private const string _ButtonServer = "ButtonServer";
@@ -45,7 +46,7 @@ namespace Vocaluxe.Screens
base.Init(); base.Init();
_ThemeButtons = new string[] {_ButtonExit, _ButtonServer}; _ThemeButtons = new string[] {_ButtonExit, _ButtonServer};
_ThemeSelectSlides = new string[] {_SelectSlideLanguage, _SelectSlideDebugLevel, _SelectSlideSongMenu, _SelectSlideSongSorting, _SelectSlideTabs, _SelectSlideTimerMode}; _ThemeSelectSlides = new string[] {_SelectSlideLanguage, _SelectSlideDebugLevel, _SelectSlideSongMenu, _SelectSlideSongSorting, _SelectSlideTabs, _SelectSlideTimerMode, _SelectSlideHighscoreStyle};
} }
public override void LoadTheme(string xmlPath) public override void LoadTheme(string xmlPath)
@@ -60,6 +61,7 @@ namespace Vocaluxe.Screens
_SelectSlides[_SelectSlideSongSorting].SetValues<ESongSorting>((int)CConfig.Config.Game.SongSorting); _SelectSlides[_SelectSlideSongSorting].SetValues<ESongSorting>((int)CConfig.Config.Game.SongSorting);
_SelectSlides[_SelectSlideTabs].SetValues<EOffOn>((int)CConfig.Config.Game.Tabs); _SelectSlides[_SelectSlideTabs].SetValues<EOffOn>((int)CConfig.Config.Game.Tabs);
_SelectSlides[_SelectSlideTimerMode].SetValues<ETimerMode>((int)CConfig.Config.Game.TimerMode); _SelectSlides[_SelectSlideTimerMode].SetValues<ETimerMode>((int)CConfig.Config.Game.TimerMode);
_SelectSlides[_SelectSlideHighscoreStyle].SetValues<EHighscoreStyle>((int)CConfig.Config.Game.HighscoreStyle);
} }
public override bool HandleInput(SKeyEvent keyEvent) public override bool HandleInput(SKeyEvent keyEvent)
@@ -140,6 +142,7 @@ namespace Vocaluxe.Screens
CConfig.Config.Game.SongSorting = (ESongSorting)_SelectSlides[_SelectSlideSongSorting].Selection; CConfig.Config.Game.SongSorting = (ESongSorting)_SelectSlides[_SelectSlideSongSorting].Selection;
CConfig.Config.Game.Tabs = (EOffOn)_SelectSlides[_SelectSlideTabs].Selection; CConfig.Config.Game.Tabs = (EOffOn)_SelectSlides[_SelectSlideTabs].Selection;
CConfig.Config.Game.TimerMode = (ETimerMode)_SelectSlides[_SelectSlideTimerMode].Selection; CConfig.Config.Game.TimerMode = (ETimerMode)_SelectSlides[_SelectSlideTimerMode].Selection;
CConfig.Config.Game.HighscoreStyle = (EHighscoreStyle)_SelectSlides[_SelectSlideHighscoreStyle].Selection;
CConfig.SaveConfig(); CConfig.SaveConfig();
+12 -2
View File
@@ -27,7 +27,7 @@ namespace Vocaluxe.Screens
// Version number for theme files. Increment it, if you've changed something on the theme files! // Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion protected override int _ScreenVersion
{ {
get { return 3; } get { return 4; }
} }
private const string _SelectSlideBackgroundMusic = "SelectSlideBackgroundMusic"; private const string _SelectSlideBackgroundMusic = "SelectSlideBackgroundMusic";
@@ -35,6 +35,7 @@ namespace Vocaluxe.Screens
private const string _SelectSlideBackgroundMusicSource = "SelectSlideBackgroundMusicSource"; private const string _SelectSlideBackgroundMusicSource = "SelectSlideBackgroundMusicSource";
private const string _SelectSlidePreviewMusicVolume = "SelectSlidePreviewMusicVolume"; private const string _SelectSlidePreviewMusicVolume = "SelectSlidePreviewMusicVolume";
private const string _SelectSlideGameMusicVolume = "SelectSlideGameMusicVolume"; private const string _SelectSlideGameMusicVolume = "SelectSlideGameMusicVolume";
private const string _SelectSlideKaraokeEffect = "SelectSlideKaraokeEffect";
private const string _ButtonExit = "ButtonExit"; private const string _ButtonExit = "ButtonExit";
@@ -46,7 +47,7 @@ namespace Vocaluxe.Screens
_ThemeButtons = new string[] {_ButtonExit}; _ThemeButtons = new string[] {_ButtonExit};
_ThemeSelectSlides = new string[] _ThemeSelectSlides = new string[]
{_SelectSlideBackgroundMusic, _SelectSlideBackgroundMusicVolume, _SelectSlideBackgroundMusicSource, _SelectSlidePreviewMusicVolume, _SelectSlideGameMusicVolume}; {_SelectSlideBackgroundMusic, _SelectSlideBackgroundMusicVolume, _SelectSlideBackgroundMusicSource, _SelectSlidePreviewMusicVolume, _SelectSlideGameMusicVolume, _SelectSlideKaraokeEffect};
} }
public override void LoadTheme(string xmlPath) public override void LoadTheme(string xmlPath)
@@ -64,6 +65,11 @@ namespace Vocaluxe.Screens
_SelectSlides[_SelectSlideGameMusicVolume].AddValues(new string[] _SelectSlides[_SelectSlideGameMusicVolume].AddValues(new string[]
{"0", "5", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "60", "65", "70", "75", "80", "85", "90", "95", "100"}); {"0", "5", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "60", "65", "70", "75", "80", "85", "90", "95", "100"});
_SelectSlides[_SelectSlideGameMusicVolume].Selection = CConfig.GameMusicVolume / 5; _SelectSlides[_SelectSlideGameMusicVolume].Selection = CConfig.GameMusicVolume / 5;
if (CConfig.Config.Sound.PlayBackLib == EPlaybackLib.GstreamerSharp)
{
_SelectSlides[_SelectSlideKaraokeEffect].SetValues<EOffOn>((int)CConfig.Config.Sound.KaraokeEffect);
_SelectSlides[_SelectSlideBackgroundMusicSource].Selection = (int)CConfig.Config.Sound.KaraokeEffect;
}
} }
public override bool HandleInput(SKeyEvent keyEvent) public override bool HandleInput(SKeyEvent keyEvent)
@@ -147,6 +153,10 @@ namespace Vocaluxe.Screens
CConfig.Config.Sound.BackgroundMusic = (EBackgroundMusicOffOn)_SelectSlides[_SelectSlideBackgroundMusic].Selection; CConfig.Config.Sound.BackgroundMusic = (EBackgroundMusicOffOn)_SelectSlides[_SelectSlideBackgroundMusic].Selection;
CConfig.Config.Sound.BackgroundMusicSource = (EBackgroundMusicSource)_SelectSlides[_SelectSlideBackgroundMusicSource].Selection; CConfig.Config.Sound.BackgroundMusicSource = (EBackgroundMusicSource)_SelectSlides[_SelectSlideBackgroundMusicSource].Selection;
CConfig.BackgroundMusicVolume = _SelectSlides[_SelectSlideBackgroundMusicVolume].Selection * 5; CConfig.BackgroundMusicVolume = _SelectSlides[_SelectSlideBackgroundMusicVolume].Selection * 5;
if (CConfig.Config.Sound.PlayBackLib == EPlaybackLib.GstreamerSharp)
{
CConfig.Config.Sound.KaraokeEffect = (EOffOn)_SelectSlides[_SelectSlideKaraokeEffect].Selection;
}
CConfig.SaveConfig(); CConfig.SaveConfig();
CBackgroundMusic.SetMusicSource(CConfig.Config.Sound.BackgroundMusicSource); CBackgroundMusic.SetMusicSource(CConfig.Config.Sound.BackgroundMusicSource);
+2 -1
View File
@@ -24,6 +24,7 @@ using System.Linq;
using System.Windows.Forms; using System.Windows.Forms;
using Vocaluxe.Base; using Vocaluxe.Base;
using Vocaluxe.Base.Fonts; using Vocaluxe.Base.Fonts;
using Vocaluxe.Lib.Sound;
using VocaluxeLib; using VocaluxeLib;
using VocaluxeLib.Draw; using VocaluxeLib.Draw;
using VocaluxeLib.Menu; using VocaluxeLib.Menu;
@@ -525,7 +526,7 @@ namespace Vocaluxe.Screens
songname += " (" + CGame.RoundNr + "/" + rounds + ")"; songname += " (" + CGame.RoundNr + "/" + rounds + ")";
_Texts[_TextSongName].Text = songname; _Texts[_TextSongName].Text = songname;
_CurrentStream = CSound.Load(song.GetMP3(), false, true); _CurrentStream = CSound.Load(song.GetMP3(), false, true, CConfig.Config.Sound.KaraokeEffect == EOffOn.TR_CONFIG_ON ? EAudioEffect.Karaoke : EAudioEffect.None);
CSound.SetStreamVolume(_CurrentStream, 100); CSound.SetStreamVolume(_CurrentStream, 100);
CSound.SetPosition(_CurrentStream, song.Start); CSound.SetPosition(_CurrentStream, song.Start);
_CurrentTime = song.Start; _CurrentTime = song.Start;
+15 -15
View File
@@ -372,9 +372,9 @@ namespace Vocaluxe.Screens
else if (_Buttons[_ButtonOptionsOpenSelectedItem].Selected) else if (_Buttons[_ButtonOptionsOpenSelectedItem].Selected)
_HandleSelectButton(); _HandleSelectButton();
else if (_SelectSlides[_SelectSlideOptionsPlaylistOpen].Selected) else if (_SelectSlides[_SelectSlideOptionsPlaylistOpen].Selected)
_OpenPlaylist(_SelectSlides[_SelectSlideOptionsPlaylistOpen].Selection); _OpenPlaylist(_SelectSlides[_SelectSlideOptionsPlaylistOpen].SelectedTag);
else if (_SelectSlides[_SelectSlideOptionsPlaylistAdd].Selected) else if (_SelectSlides[_SelectSlideOptionsPlaylistAdd].Selected)
_OpenPlaylist(_SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection - 1); _OpenPlaylist(_SelectSlides[_SelectSlideOptionsPlaylistAdd].SelectedTag);
else if (_Buttons[_ButtonOptionsRandomMedley].Selected) else if (_Buttons[_ButtonOptionsRandomMedley].Selected)
_ToggleSongOptions(ESongOptionsView.Medley); _ToggleSongOptions(ESongOptionsView.Medley);
else if (_Buttons[_ButtonOptionsStartMedley].Selected) else if (_Buttons[_ButtonOptionsStartMedley].Selected)
@@ -533,12 +533,12 @@ namespace Vocaluxe.Screens
} }
else if (_SelectSlides[_SelectSlideOptionsPlaylistOpen].IsValueSelected) else if (_SelectSlides[_SelectSlideOptionsPlaylistOpen].IsValueSelected)
{ {
_OpenPlaylist(_SelectSlides[_SelectSlideOptionsPlaylistOpen].Selection); _OpenPlaylist(_SelectSlides[_SelectSlideOptionsPlaylistOpen].SelectedTag);
return true; return true;
} }
else if (_SelectSlides[_SelectSlideOptionsPlaylistAdd].IsValueSelected) else if (_SelectSlides[_SelectSlideOptionsPlaylistAdd].IsValueSelected)
{ {
_OpenPlaylist(_SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection - 1); _OpenPlaylist(_SelectSlides[_SelectSlideOptionsPlaylistAdd].SelectedTag);
return true; return true;
} }
else if (_Buttons[_ButtonOptionsRandomMedley].Selected) else if (_Buttons[_ButtonOptionsRandomMedley].Selected)
@@ -1279,16 +1279,16 @@ namespace Vocaluxe.Screens
private void _UpdatePlaylistNames() private void _UpdatePlaylistNames()
{ {
_SelectSlides[_SelectSlideOptionsPlaylistAdd].Clear(); _SelectSlides[_SelectSlideOptionsPlaylistAdd].Clear();
_SelectSlides[_SelectSlideOptionsPlaylistAdd].AddValue("TR_SCREENSONG_NEWPLAYLIST"); _SelectSlides[_SelectSlideOptionsPlaylistAdd].AddValue("TR_SCREENSONG_NEWPLAYLIST", tag: -1);
_SelectSlides[_SelectSlideOptionsPlaylistAdd].AddValues(CPlaylists.Names); _SelectSlides[_SelectSlideOptionsPlaylistAdd].AddValues(CPlaylists.Names, CPlaylists.Ids);
_SelectSlides[_SelectSlideOptionsPlaylistOpen].Clear(); _SelectSlides[_SelectSlideOptionsPlaylistOpen].Clear();
_SelectSlides[_SelectSlideOptionsPlaylistOpen].AddValues(CPlaylists.Names); _SelectSlides[_SelectSlideOptionsPlaylistOpen].AddValues(CPlaylists.Names, CPlaylists.Ids);
} }
private void _OpenAndAddPlaylistAction() private void _OpenAndAddPlaylistAction()
{ {
if (_Playlist.ActivePlaylistID != (_SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection - 1) && if (_Playlist.ActivePlaylistID != (_SelectSlides[_SelectSlideOptionsPlaylistAdd].SelectedTag) &&
(_SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection - 1) != -1) (_SelectSlides[_SelectSlideOptionsPlaylistAdd].SelectedTag) != -1)
{ {
//Open an existing playlist and add song //Open an existing playlist and add song
//Check selected game-mode //Check selected game-mode
@@ -1301,9 +1301,9 @@ namespace Vocaluxe.Screens
gm = EGameMode.TR_GAMEMODE_NORMAL; gm = EGameMode.TR_GAMEMODE_NORMAL;
//Check if Playlist really exists //Check if Playlist really exists
if (_SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection - 1 >= 0) if (_SelectSlides[_SelectSlideOptionsPlaylistAdd].SelectedTag >= 0)
{ {
_Playlist.ActivePlaylistID = _SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection - 1; _Playlist.ActivePlaylistID = _SelectSlides[_SelectSlideOptionsPlaylistAdd].SelectedTag;
//Add song to playlist //Add song to playlist
CPlaylists.AddSong(_Playlist.ActivePlaylistID, CSongs.VisibleSongs[_SongMenu.GetPreviewSongNr()].ID, gm); CPlaylists.AddSong(_Playlist.ActivePlaylistID, CSongs.VisibleSongs[_SongMenu.GetPreviewSongNr()].ID, gm);
@@ -1314,7 +1314,7 @@ namespace Vocaluxe.Screens
_Playlist.ScrollToBottom(); _Playlist.ScrollToBottom();
} }
} }
else if ((_SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection - 1) == -1) else if ((_SelectSlides[_SelectSlideOptionsPlaylistAdd].SelectedTag) == -1)
{ {
//Create a new playlist and add song //Create a new playlist and add song
//Check selected game-mode //Check selected game-mode
@@ -1336,8 +1336,8 @@ namespace Vocaluxe.Screens
_OpenPlaylist(_Playlist.ActivePlaylistID); _OpenPlaylist(_Playlist.ActivePlaylistID);
//Add new playlist to select-slide //Add new playlist to select-slide
_SelectSlides[_SelectSlideOptionsPlaylistAdd].AddValue(CPlaylists.GetName(_Playlist.ActivePlaylistID)); _SelectSlides[_SelectSlideOptionsPlaylistAdd].AddValue(CPlaylists.GetName(_Playlist.ActivePlaylistID), _Playlist.ActivePlaylistID);
_SelectSlides[_SelectSlideOptionsPlaylistOpen].AddValue(CPlaylists.GetName(_Playlist.ActivePlaylistID)); _SelectSlides[_SelectSlideOptionsPlaylistOpen].AddValue(CPlaylists.GetName(_Playlist.ActivePlaylistID), _Playlist.ActivePlaylistID);
} }
else else
{ {
@@ -1359,7 +1359,7 @@ namespace Vocaluxe.Screens
private void _SetSelectSlidePlaylistToCurrentPlaylist() private void _SetSelectSlidePlaylistToCurrentPlaylist()
{ {
if (_Playlist.ActivePlaylistID > -1) if (_Playlist.ActivePlaylistID > -1)
_SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection = _Playlist.ActivePlaylistID + 1; _SelectSlides[_SelectSlideOptionsPlaylistAdd].SelectedTag = _Playlist.ActivePlaylistID;
else else
_SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection = 0; _SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection = 0;
} }
+15 -14
View File
@@ -185,6 +185,7 @@
<Compile Include="Lib\Draw\CTextureBase.cs" /> <Compile Include="Lib\Draw\CTextureBase.cs" />
<Compile Include="Lib\Draw\CTextureProvider.cs" /> <Compile Include="Lib\Draw\CTextureProvider.cs" />
<Compile Include="Lib\Input\CGamePad.cs" /> <Compile Include="Lib\Input\CGamePad.cs" />
<Compile Include="Lib\Sound\EAudioEffect.cs" />
<Compile Include="Lib\Sound\Playback\CAudioStreamBase.cs" /> <Compile Include="Lib\Sound\Playback\CAudioStreamBase.cs" />
<Compile Include="Lib\Sound\Playback\CPlaybackBase.cs" /> <Compile Include="Lib\Sound\Playback\CPlaybackBase.cs" />
<Compile Include="Lib\Sound\Playback\CRingBuffer.cs" /> <Compile Include="Lib\Sound\Playback\CRingBuffer.cs" />
@@ -478,12 +479,12 @@
<PropertyGroup> <PropertyGroup>
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">xcopy /E /D /Y "$(ProjectDir)\Website" "$(SolutionDir)\PhoneGap" <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 '(?&lt;=var *matchingServerVersion * = *\")\w*(?=\" *;)', "$version"} | Set-Content -Encoding UTF8 '$(ProjectDir)..\Output\Website\js\main.js'" 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 '(?&lt;=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 '(?&lt;=AssemblyInformationalVersion\()(.*)(?=\))', '\"GITVERSION\"'} | Set-Content -Encoding UTF8 '$(ProjectDir)Properties\AssemblyInfo.cs'"</PostBuildEvent> powershell -command "(Get-Content -Encoding UTF8 '$(ProjectDir)Properties\AssemblyInfo.cs') | Foreach-Object {$_ -replace '(?&lt;=AssemblyInformationalVersion\(\").*(?=\")', 'GITVERSION'} | Foreach-Object {$_ -replace '(?&lt;=(AssemblyVersion|AssemblyFileVersion)\(\").*(?=\")', 'SHORTVERSION'} | Set-Content -Encoding UTF8 '$(ProjectDir)Properties\AssemblyInfo.cs' "</PostBuildEvent>
<PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">cp -ruT "$(ProjectDir)Website" "$(SolutionDir)/PhoneGap"</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' ">$(ProjectDir)Linux/Build/PostBuildEvent.sh $(ProjectDir)</PostBuildEvent>
</PropertyGroup> </PropertyGroup>
<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 'GITVERSION', $version} | Set-Content -Encoding UTF8 '$(ProjectDir)Properties\AssemblyInfo.cs'"</PreBuildEvent> <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 '(?&lt;=AssemblyInformationalVersion\(\").*(?=\")', $version} | Foreach-Object {$_ -replace '(?&lt;=(AssemblyVersion|AssemblyFileVersion)\(\").*(?=\")', $version.Split('-')[0].replace('alpha','0').replace('beta','1').replace('rc','2')} | Foreach-Object {$_ -replace '(?&lt;=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' ">$(ProjectDir)Linux/Build/PreBuildEvent.sh $(ProjectDir)</PreBuildEvent>
</PropertyGroup> </PropertyGroup>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
@@ -535,31 +536,31 @@ powershell -command "(Get-Content -Encoding UTF8 '$(ProjectDir)Properties\Assemb
<PropertyGroup> <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> <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> </PropertyGroup>
<Error Condition="!Exists('..\packages\vocaluxe.dependencies.acinerella.1.0.1\build\vocaluxe.dependencies.acinerella.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.acinerella.1.0.1\build\vocaluxe.dependencies.acinerella.targets'))" /> <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="!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.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="!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="!Exists('..\packages\vocaluxe.dependencies.ffmpeg.1.0.1\build\vocaluxe.dependencies.ffmpeg.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.ffmpeg.1.0.1\build\vocaluxe.dependencies.ffmpeg.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="!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="!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="!Exists('..\packages\vocaluxe.dependencies.hidapi.1.0.3\build\vocaluxe.dependencies.hidapi.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.hidapi.1.0.3\build\vocaluxe.dependencies.hidapi.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.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.1\build\vocaluxe.dependencies.portaudiosharp.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.portaudiosharp.1.0.1\build\vocaluxe.dependencies.portaudiosharp.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.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.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="!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="!Exists('..\packages\vocaluxe.dependencies.gstreamer.1.0.1\build\vocaluxe.dependencies.gstreamer.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.gstreamer.1.0.1\build\vocaluxe.dependencies.gstreamer.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.8\build\vocaluxe.dependencies.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\vocaluxe.dependencies.1.0.8\build\vocaluxe.dependencies.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'))" />
</Target> </Target>
<Import Project="..\packages\vocaluxe.dependencies.acinerella.1.0.1\build\vocaluxe.dependencies.acinerella.targets" Condition="Exists('..\packages\vocaluxe.dependencies.acinerella.1.0.1\build\vocaluxe.dependencies.acinerella.targets')" /> <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.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.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.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.1\build\vocaluxe.dependencies.ffmpeg.targets" Condition="Exists('..\packages\vocaluxe.dependencies.ffmpeg.1.0.1\build\vocaluxe.dependencies.ffmpeg.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.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.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.3\build\vocaluxe.dependencies.hidapi.targets" Condition="Exists('..\packages\vocaluxe.dependencies.hidapi.1.0.3\build\vocaluxe.dependencies.hidapi.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.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.1\build\vocaluxe.dependencies.portaudiosharp.targets" Condition="Exists('..\packages\vocaluxe.dependencies.portaudiosharp.1.0.1\build\vocaluxe.dependencies.portaudiosharp.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.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.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.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.1\build\vocaluxe.dependencies.gstreamer.targets" Condition="Exists('..\packages\vocaluxe.dependencies.gstreamer.1.0.1\build\vocaluxe.dependencies.gstreamer.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.8\build\vocaluxe.dependencies.targets" Condition="Exists('..\packages\vocaluxe.dependencies.1.0.8\build\vocaluxe.dependencies.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')" />
</Project> </Project>
+6 -6
View File
@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="vocaluxe.dependencies" version="1.0.8" targetFramework="net40" /> <package id="vocaluxe.dependencies" version="1.0.10" targetFramework="net40" />
<package id="vocaluxe.dependencies.acinerella" version="1.0.1" targetFramework="net40" /> <package id="vocaluxe.dependencies.acinerella" version="1.0.3" targetFramework="net40" />
<package id="vocaluxe.dependencies.aforgevideo" version="1.0.1" 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.csharpsqlite" version="1.0.1" targetFramework="net40" />
<package id="vocaluxe.dependencies.ffmpeg" 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.1" targetFramework="net40" /> <package id="vocaluxe.dependencies.gstreamer" version="1.0.2" targetFramework="net40" />
<package id="vocaluxe.dependencies.gstreamersharp" version="1.0.1" targetFramework="net40" /> <package id="vocaluxe.dependencies.gstreamersharp" version="1.0.1" targetFramework="net40" />
<package id="vocaluxe.dependencies.hidapi" version="1.0.3" 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.opentk" version="1.0.1" targetFramework="net40" />
<package id="vocaluxe.dependencies.portaudiosharp" version="1.0.1" targetFramework="net40" /> <package id="vocaluxe.dependencies.portaudiosharp" version="1.0.2" targetFramework="net40" />
<package id="vocaluxe.dependencies.qrcoder" version="1.0.1" 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.slimdx" version="1.0.1" targetFramework="net40" />
<package id="vocaluxe.dependencies.sqlite" version="1.0.1" targetFramework="net40" /> <package id="vocaluxe.dependencies.sqlite" version="1.0.1" targetFramework="net40" />
+6
View File
@@ -369,6 +369,12 @@ namespace VocaluxeLib
Game Game
} }
public enum EHighscoreStyle
{
TR_CONFIG_HIGHSCORE_LIST_ALL,
TR_CONFIG_HIGHSCORE_LIST_BEST
}
/// <summary> /// <summary>
/// Base screens /// Base screens
/// </summary> /// </summary>
+2
View File
@@ -46,6 +46,8 @@ namespace VocaluxeLib
ESongMenu GetSongMenuType(); ESongMenu GetSongMenuType();
EHighscoreStyle GetHighscoreStyle();
EOffOn GetDrawNoteLines(); EOffOn GetDrawNoteLines();
EOffOn GetDrawToneHelper(); EOffOn GetDrawToneHelper();
+5 -2
View File
@@ -618,6 +618,7 @@ namespace VocaluxeLib.Menu
_UpdatePlayerSlide(); _UpdatePlayerSlide();
} }
_UpdateButtonState(); _UpdateButtonState();
_UpdateNextButtonVisibility();
} }
public void DecreasePlayerNum(int team) public void DecreasePlayerNum(int team)
@@ -633,6 +634,7 @@ namespace VocaluxeLib.Menu
_UpdatePlayerSlide(); _UpdatePlayerSlide();
} }
_UpdateButtonState(); _UpdateButtonState();
_UpdateNextButtonVisibility();
} }
#region private methods #region private methods
@@ -725,7 +727,7 @@ namespace VocaluxeLib.Menu
{ {
if (_NumPlayerTeams[team] == _TeamList[team].Count && !_ChangePlayerNumDynamic) if (_NumPlayerTeams[team] == _TeamList[team].Count && !_ChangePlayerNumDynamic)
return; return;
if (_NumPlayerTeams[team] == _PartyMode.MaxPlayersPerTeam) if (_NumPlayerTeams[team] > _PartyMode.MaxPlayersPerTeam)
return; return;
_NameSelections[_NameSelection].UseProfile(profileID); _NameSelections[_NameSelection].UseProfile(profileID);
@@ -774,7 +776,8 @@ namespace VocaluxeLib.Menu
for (int p = 0; p < _NumPlayerTeams[t]; p++) for (int p = 0; p < _NumPlayerTeams[t]; p++)
{ {
int profileID = _NameSelections[_NameSelection].GetRandomUnusedProfile(); int profileID = _NameSelections[_NameSelection].GetRandomUnusedProfile();
_AddPlayer(t, profileID); if(profileID >= 0) //only add valid profiles
_AddPlayer(t, profileID);
} }
} }
} }
+3 -15
View File
@@ -465,23 +465,11 @@ namespace VocaluxeLib.Menu
public int GetRandomUnusedProfile() public int GetRandomUnusedProfile()
{ {
int id = -1;
if (_VisibleProfiles.Count == 0) if (_VisibleProfiles.Count == 0)
return id; return -1;
if (_VisibleProfiles.Count == _UsedProfiles.Count) int rand = CBase.Game.GetRandom(_VisibleProfiles.Count);
return id; return _VisibleProfiles[rand];
while (id == -1)
{
int rand = CBase.Game.GetRandom(_VisibleProfiles.Count);
if (_UsedProfiles.Contains(_VisibleProfiles[rand]))
continue;
id = _VisibleProfiles[rand];
}
return id;
} }
private void _PrepareTiles() private void _PrepareTiles()
+1
View File
@@ -1087,6 +1087,7 @@ namespace VocaluxeLib.Menu
}; };
_PlaylistElementContents.Add(pec); _PlaylistElementContents.Add(pec);
} }
_SetSelectionToFirstEntry();
_Update(); _Update();
return true; return true;
} }
+20 -4
View File
@@ -436,6 +436,22 @@ namespace VocaluxeLib.Menu
AddValue(value); AddValue(value);
} }
public void AddValues(IEnumerable<string> values, IEnumerable<int> tags)
{
using (var e1 = values.GetEnumerator())
using (var e2 = tags.GetEnumerator())
{
while (e1.MoveNext() && e2.MoveNext())
{
AddValue(e1.Current, tag: e2.Current);
}
if (e1.MoveNext() || e2.MoveNext())
{
throw new ArgumentException("the lists must have the same length");
}
}
}
public void AddValues(string[] values, CTextureRef[] textures) public void AddValues(string[] values, CTextureRef[] textures)
{ {
Debug.Assert(values.Length == textures.Length); Debug.Assert(values.Length == textures.Length);
@@ -566,10 +582,10 @@ namespace VocaluxeLib.Menu
for (int i = 0; i < numvis; i++) for (int i = 0; i < numvis; i++)
{ {
var el = new CElement var el = new CElement
{ {
Text = new CText(0, 0, 0, _TextH, _MaxW, EAlignment.Center, _Theme.TextStyle, _Theme.TextFont, _TextColor, "T", _PartyModeID), Text = new CText(0, 0, 0, _TextH, _MaxW, EAlignment.Center, _Theme.TextStyle, _Theme.TextFont, _TextColor, "T", _PartyModeID),
Img = new CStatic(_PartyModeID) Img = new CStatic(_PartyModeID)
}; };
_VisibleElements.Add(el); _VisibleElements.Add(el);
} }
} }
+44 -17
View File
@@ -11,47 +11,72 @@ environment:
GitHubKey: GitHubKey:
secure: JSlN/em0JdspVn8jwaQ4IjugY6OQi0au4Qq0rhctJmcfGMaEGnUAOmDFULI48REW secure: JSlN/em0JdspVn8jwaQ4IjugY6OQi0au4Qq0rhctJmcfGMaEGnUAOmDFULI48REW
install: install:
- ps: >- - ps: |
$Env:CurrentCommitSha = "$(git rev-parse --verify HEAD)" $Env:CurrentCommitSha = "$(git rev-parse --verify HEAD)"
$Env:githubRepoApiUri = "https://api.github.com/repos/Vocaluxe/Vocaluxe/" if((-not $Env:githubRepoApiUri) -or ($Env:APPVEYOR_ACCOUNT_NAME -eq "VocaluxeBuildBot")){
$Env:githubRepoApiUri = "https://api.github.com/repos/Vocaluxe/Vocaluxe/"
}
Write-Host "GitHub api url: $Env:githubRepoApiUri"
./.appveyor/gitDescribe.ps1 ./.appveyor/gitDescribe.ps1
$Env:GIT_VERSION_TAG = $Env:VersionTag $Env:GIT_VERSION_TAG = $Env:VersionTag
Write-Host "GIT_VERSION_TAG: $Env:GIT_VERSION_TAG"
if($Env:APPVEYOR_REPO_TAG -eq "true"){ if($Env:APPVEYOR_REPO_TAG -eq "true"){
$Env:TAG_NAME_WITH_BRANCH_NAME_FALLBACK = $Env:APPVEYOR_REPO_TAG_NAME
$Env:TAG_NAME_WITH_BRANCH_NAME_FALLBACK = $Env:APPVEYOR_REPO_TAG_NAME
} }
else{ else{
$Env:TAG_NAME_WITH_BRANCH_NAME_FALLBACK = $Env:APPVEYOR_REPO_BRANCH
$Env:TAG_NAME_WITH_BRANCH_NAME_FALLBACK = $Env:APPVEYOR_REPO_BRANCH
} }
./.appveyor/moveTagForSpecialBranches.ps1
before_build: before_build:
- ps: >- - ps: |
Try
{
Start-FileDownload 'https://github.com/lukeIam/VocaluxeDependencies/blob/master/zips/themes/vocaluxe.themes.ambient.video.zip?raw=true'
& 7z x '-aoa' '-oOutput/' './vocaluxe.themes.ambient.video.zip'
Remove-Item './vocaluxe.themes.ambient.video.zip'
}
Catch
{
Write-Warning "Ambient-Video download failed"
}
nuget restore -DisableParallelProcessing nuget restore -DisableParallelProcessing
#(Get-Content -Encoding UTF8 'PitchTracker\PitchTracker.vcxproj') | Foreach-Object {$_ -replace 'v110_xp', 'v120_xp'} | Set-Content -Encoding UTF8 'PitchTracker\PitchTracker.vcxproj'
build: build:
project: Vocaluxe.sln project: Vocaluxe.sln
verbosity: normal verbosity: normal
after_build: after_build:
- ps: >- - ps: |
cd Output cd Output
7z a "Vocaluxe_$($Env:TAG_NAME_WITH_BRANCH_NAME_FALLBACK)_Windows_$($Env:PLATFORM).zip" * $Env:MAIN_REPO = $False
appveyor PushArtifact "Vocaluxe_$($Env:TAG_NAME_WITH_BRANCH_NAME_FALLBACK)_Windows_$($Env:PLATFORM).zip" -FileName "Vocaluxe_$($Env:TAG_NAME_WITH_BRANCH_NAME_FALLBACK)_Windows_$($Env:PLATFORM).zip" -DeploymentName ReleaseZip if($Env:APPVEYOR_REPO_NAME -eq "Vocaluxe/Vocaluxe"){
$Env:MAIN_REPO = $True
Write-Host "Main repo Vocaluxe/Vocaluxe detected"
}
$forkBuildTag = ""
if(($Env:MAIN_REPO -ne $True) -or ($Env:APPVEYOR_ACCOUNT_NAME -ne "VocaluxeBuildBot")){
$forkBuildTag = "_non-official-by-$Env:APPVEYOR_ACCOUNT_NAME"
Write-Host "Non official build detected: $Env:APPVEYOR_REPO_NAME by $Env:APPVEYOR_ACCOUNT_NAME"
}
7z a "Vocaluxe_$($Env:TAG_NAME_WITH_BRANCH_NAME_FALLBACK)_Windows_$($Env:PLATFORM)$forkBuildTag.zip" *
appveyor PushArtifact "Vocaluxe_$($Env:TAG_NAME_WITH_BRANCH_NAME_FALLBACK)_Windows_$($Env:PLATFORM)$forkBuildTag.zip" -FileName "Vocaluxe_$($Env:TAG_NAME_WITH_BRANCH_NAME_FALLBACK)_Windows_$($Env:PLATFORM)$forkBuildTag.zip" -DeploymentName ReleaseZip
cd .. cd ..
.\.appveyor\nightlyDetect.ps1 Write-Host "Created artifact: Vocaluxe_$($Env:TAG_NAME_WITH_BRANCH_NAME_FALLBACK)_Windows_$($Env:PLATFORM)$forkBuildTag.zip"
if($Env:MAIN_REPO -eq $True){
.\.appveyor\nightlyDetect.ps1
.\.appveyor\moveTagForSpecialBranches.ps1
}
test: off test: off
before_deploy: before_deploy:
- ps: ./.appveyor/prepareDeploy.ps1 - ps: ./.appveyor/prepareDeploy.ps1
@@ -67,6 +92,7 @@ deploy:
on: on:
APPVEYOR_REPO_TAG: true APPVEYOR_REPO_TAG: true
NIGHTLY_BUILD: false NIGHTLY_BUILD: false
MAIN_REPO: true
- provider: GitHub - provider: GitHub
tag: $(APPVEYOR_REPO_TAG_NAME) tag: $(APPVEYOR_REPO_TAG_NAME)
release: Latest Nightly build release: Latest Nightly build
@@ -77,3 +103,4 @@ deploy:
on: on:
APPVEYOR_REPO_TAG: true APPVEYOR_REPO_TAG: true
NIGHTLY_BUILD: true NIGHTLY_BUILD: true
MAIN_REPO: true