Added video support, still need to fix some things
This commit is contained in:
1 parent
7ae34d6c08
commit
01ec1b0927
2 files changed
+75
-5
No files matched your search
@@ -26,8 +26,10 @@ namespace Vocaluxe.Base
|
||||
private static bool _OwnMusicAdded;
|
||||
private static bool _BackgroundMusicAdded;
|
||||
private static bool _Playing;
|
||||
private static bool _VideoEnabled;
|
||||
|
||||
private static int _Video;
|
||||
private static int _Video = -1;
|
||||
private static STexture _CurrentVideoTexture = new STexture(-1);
|
||||
|
||||
public static void Init()
|
||||
{
|
||||
@@ -63,12 +65,16 @@ namespace Vocaluxe.Base
|
||||
}
|
||||
else
|
||||
Next();
|
||||
if (_VideoEnabled)
|
||||
LoadVideo();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void Stop()
|
||||
{
|
||||
if (_Video != 0)
|
||||
CVideo.VdClose(_Video);
|
||||
CSound.FadeAndStop(_CurrentMusicStream, 0f, CSettings.BackgroundMusicFadeTime);
|
||||
|
||||
_CurrentPlaylistElement = new PlaylistElement();
|
||||
@@ -77,6 +83,8 @@ namespace Vocaluxe.Base
|
||||
|
||||
public static void Pause()
|
||||
{
|
||||
if (_Video != 0)
|
||||
CVideo.VdPause(_Video);
|
||||
CSound.FadeAndPause(_CurrentMusicStream, 0f, CSettings.BackgroundMusicFadeTime);
|
||||
_Playing = false;
|
||||
}
|
||||
@@ -275,8 +283,37 @@ namespace Vocaluxe.Base
|
||||
|
||||
public static void ToggleVideo()
|
||||
{
|
||||
_Video = CVideo.VdLoad(_CurrentPlaylistElement.GetVideoFilePath());
|
||||
CVideo.VdSkip(_Video, CSound.GetLength(_CurrentMusicStream) / 4f, _CurrentPlaylistElement.GetVideoGap());
|
||||
if (_Video != -1)
|
||||
{
|
||||
if (_VideoEnabled)
|
||||
{
|
||||
_VideoEnabled = false;
|
||||
CVideo.VdClose(_Video);
|
||||
_Video = -1;
|
||||
CDraw.RemoveTexture(ref _CurrentVideoTexture);
|
||||
return;
|
||||
}
|
||||
if (CVideo.VdFinished(_Video))
|
||||
{
|
||||
CVideo.VdClose(_Video);
|
||||
CDraw.RemoveTexture(ref _CurrentVideoTexture);
|
||||
_Video = -1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
LoadVideo();
|
||||
}
|
||||
|
||||
public static STexture UploadNewFrame()
|
||||
{
|
||||
if (_Video != -1)
|
||||
{
|
||||
float vtime = 0f;
|
||||
CVideo.VdGetFrame(_Video, ref _CurrentVideoTexture, CSound.GetPosition(_CurrentMusicStream), ref vtime);
|
||||
return _CurrentVideoTexture;
|
||||
}
|
||||
return _CurrentVideoTexture;
|
||||
}
|
||||
|
||||
public static int GetSongNr()
|
||||
@@ -284,11 +321,26 @@ namespace Vocaluxe.Base
|
||||
return _CurrentPlaylistElement.GetSongNr();
|
||||
}
|
||||
|
||||
public static EAspect GetVideoAspect()
|
||||
{
|
||||
return _CurrentPlaylistElement.GetVideoAspect();
|
||||
}
|
||||
|
||||
public static bool IsDuet()
|
||||
{
|
||||
return _CurrentPlaylistElement.IsDuet();
|
||||
}
|
||||
|
||||
public static bool IsVideoEnabled()
|
||||
{
|
||||
return _VideoEnabled;
|
||||
}
|
||||
|
||||
public static bool HasVideo()
|
||||
{
|
||||
return File.Exists(_CurrentPlaylistElement.GetVideoFilePath());
|
||||
}
|
||||
|
||||
private static bool IsBackgroundFile(PlaylistElement element)
|
||||
{
|
||||
foreach (PlaylistElement elements in _BGMusicFileNames)
|
||||
@@ -298,6 +350,14 @@ namespace Vocaluxe.Base
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static void LoadVideo()
|
||||
{
|
||||
CVideo.VdClose(_Video);
|
||||
_Video = CVideo.VdLoad(_CurrentPlaylistElement.GetVideoFilePath());
|
||||
CVideo.VdSkip(_Video, CSound.GetPosition(_CurrentMusicStream), _CurrentPlaylistElement.GetVideoGap());
|
||||
_VideoEnabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -311,6 +371,7 @@ class PlaylistElement
|
||||
float _VideoGap;
|
||||
int _SongNr;
|
||||
bool _Duet;
|
||||
EAspect _VideoAspect;
|
||||
|
||||
public PlaylistElement(CSong song)
|
||||
{
|
||||
@@ -322,6 +383,7 @@ class PlaylistElement
|
||||
_VideoGap = song.VideoGap;
|
||||
_SongNr = song.ID;
|
||||
_Duet = song.IsDuet;
|
||||
_VideoAspect = song.VideoAspect;
|
||||
}
|
||||
|
||||
public PlaylistElement(string FilePath)
|
||||
@@ -379,6 +441,11 @@ class PlaylistElement
|
||||
return _SongNr;
|
||||
}
|
||||
|
||||
public EAspect GetVideoAspect()
|
||||
{
|
||||
return _VideoAspect;
|
||||
}
|
||||
|
||||
public bool IsDuet()
|
||||
{
|
||||
return _Duet;
|
||||
|
||||
@@ -136,7 +136,11 @@ namespace Vocaluxe.Screens
|
||||
Buttons[htButtons(ButtonPause)].Visible = CBackgroundMusic.IsPlaying();
|
||||
Buttons[htButtons(ButtonPlay)].Visible = !CBackgroundMusic.IsPlaying();
|
||||
Texts[htTexts(TextCurrentSong)].Text = CBackgroundMusic.GetSongArtistAndTitle();
|
||||
Statics[htStatics(StaticCover)].Texture = CBackgroundMusic.GetCover();
|
||||
if(CBackgroundMusic.IsVideoEnabled() && CBackgroundMusic.HasVideo())
|
||||
Statics[htStatics(StaticCover)].Texture = CBackgroundMusic.UploadNewFrame();
|
||||
else
|
||||
Statics[htStatics(StaticCover)].Texture = CBackgroundMusic.GetCover();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -150,7 +154,6 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
if (!_Active)
|
||||
return false;
|
||||
|
||||
return base.Draw();
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user