Loop preview song and video

This commit is contained in:
Flamefire committed 2014-08-01 16:26:21 +02:00
1 parent ba7627513e
commit f2bd61937f
3 files changed
+12 -5

No files matched your search

+5
View File
@@ -769,6 +769,11 @@ namespace Vocaluxe.Base
{ {
return CVideo.Close(videoStream); return CVideo.Close(videoStream);
} }
public void SetLoop(int streamID, bool loop = true)
{
CVideo.SetLoop(streamID, loop);
}
} }
class CBsound : ISound class CBsound : ISound
+5 -4
View File
@@ -248,10 +248,11 @@ namespace VocaluxeLib
public interface IVideo public interface IVideo
{ {
int Load(string videoFileName); int Load(string videoFileName);
bool Skip(int videoStream, float startPosition, float videoGap); bool Skip(int streamID, float startPosition, float videoGap);
bool GetFrame(int videoStream, ref CTexture videoTexture, float time, out float videoTime); bool GetFrame(int streamID, ref CTexture videoTexture, float time, out float videoTime);
bool IsFinished(int videoStream); bool IsFinished(int streamID);
bool Close(int videoStream); bool Close(int streamID);
void SetLoop(int streamID, bool loop = true);
} }
public interface ISound public interface ISound
@@ -524,7 +524,7 @@ namespace VocaluxeLib.Menu.SongMenu
return; return;
//TODO: Using prescan here causes Vocaluxe to hang a bit on loading the song but we need the length below //TODO: Using prescan here causes Vocaluxe to hang a bit on loading the song but we need the length below
int stream = CBase.Sound.Load(Path.Combine(song.Folder, song.MP3FileName), false, true); int stream = CBase.Sound.Load(Path.Combine(song.Folder, song.MP3FileName), true, true);
float startposition = song.Preview.StartTime; float startposition = song.Preview.StartTime;
float length = CBase.Sound.GetLength(stream); float length = CBase.Sound.GetLength(stream);
@@ -551,6 +551,7 @@ namespace VocaluxeLib.Menu.SongMenu
_PreviewVideoStream = CBase.Video.Load(Path.Combine(song.Folder, song.VideoFileName)); _PreviewVideoStream = CBase.Video.Load(Path.Combine(song.Folder, song.VideoFileName));
if (_PreviewVideoStream == -1) if (_PreviewVideoStream == -1)
return; return;
CBase.Video.SetLoop(_PreviewVideoStream);
CBase.Video.Skip(_PreviewVideoStream, startposition, song.VideoGap); CBase.Video.Skip(_PreviewVideoStream, startposition, song.VideoGap);
_VideoFading = new CFading(0f, 1f, 3f); _VideoFading = new CFading(0f, 1f, 3f);
} }