Fix missing song length and wrong volumes (int=0-100, float=0-1)
Also fade in preview music
This commit is contained in:
1 parent
b99f9467de
commit
4a78dd4b31
17 files changed
+65
-73
No files matched your search
@@ -267,14 +267,14 @@ namespace VocaluxeLib
|
||||
int Load(string soundFile, bool loop = false, bool prescan = false);
|
||||
void SetPosition(int soundStream, float newPosition);
|
||||
void Play(int soundStream);
|
||||
void Fade(int soundStream, float targetVolume, float duration, EStreamAction afterFadeAction = EStreamAction.Nothing);
|
||||
void Fade(int soundStream, int targetVolume, float duration, EStreamAction afterFadeAction = EStreamAction.Nothing);
|
||||
void Close(int soundStream);
|
||||
|
||||
bool IsFinished(int soundStream);
|
||||
float GetPosition(int soundStream);
|
||||
float GetLength(int soundStream);
|
||||
|
||||
void SetStreamVolume(int soundStream, float volume);
|
||||
void SetStreamVolume(int soundStream, int volume);
|
||||
void SetGlobalVolume(int volume);
|
||||
}
|
||||
|
||||
|
||||
@@ -480,7 +480,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
{
|
||||
foreach (CStatic tile in _Tiles)
|
||||
{
|
||||
if (tile.Selected && Selected)
|
||||
if (tile.Selected)
|
||||
tile.Draw(EAspect.Crop, SelectedTileZoomFactor, -0.1f);
|
||||
else
|
||||
{
|
||||
|
||||
@@ -133,14 +133,7 @@ namespace VocaluxeLib.Utils.Player
|
||||
Load(file, position, autoplay);
|
||||
}
|
||||
|
||||
public new void Play()
|
||||
{
|
||||
CBase.Sound.SetPosition(_StreamID, _StartPosition);
|
||||
CBase.Video.Skip(_Video, _StartPosition, _Song.VideoGap);
|
||||
TogglePause();
|
||||
}
|
||||
|
||||
public new void Stop()
|
||||
public override void Stop()
|
||||
{
|
||||
base.Stop();
|
||||
|
||||
@@ -150,7 +143,7 @@ namespace VocaluxeLib.Utils.Player
|
||||
CBase.Video.Close(ref _Video);
|
||||
}
|
||||
|
||||
public new void TogglePause()
|
||||
public override void TogglePause()
|
||||
{
|
||||
if (IsPlaying && _Video != null)
|
||||
{
|
||||
|
||||
@@ -15,21 +15,16 @@
|
||||
// along with Vocaluxe. If not, see <http://www.gnu.org/licenses/>.
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace VocaluxeLib.Utils.Player
|
||||
{
|
||||
public class CSoundPlayer
|
||||
{
|
||||
protected int _StreamID = -1;
|
||||
protected float _Volume;
|
||||
protected int _Volume = 100;
|
||||
protected float _StartPosition;
|
||||
protected float _FadeTime = CBase.Settings.GetSoundPlayerFadeTime();
|
||||
protected readonly float _FadeTime = CBase.Settings.GetSoundPlayerFadeTime();
|
||||
|
||||
public float Volume
|
||||
public int Volume
|
||||
{
|
||||
set
|
||||
{
|
||||
@@ -107,19 +102,19 @@ namespace VocaluxeLib.Utils.Player
|
||||
return;
|
||||
|
||||
CBase.Sound.SetPosition(_StreamID, _StartPosition);
|
||||
CBase.Sound.SetStreamVolume(_StreamID, 0f);
|
||||
CBase.Sound.SetStreamVolume(_StreamID, 0);
|
||||
CBase.Sound.Fade(_StreamID, Volume, _FadeTime);
|
||||
CBase.Sound.Play(_StreamID);
|
||||
IsPlaying = true;
|
||||
}
|
||||
|
||||
public void TogglePause()
|
||||
public virtual void TogglePause()
|
||||
{
|
||||
if (_StreamID == -1)
|
||||
return;
|
||||
|
||||
if (IsPlaying)
|
||||
CBase.Sound.Fade(_StreamID, 0f, _FadeTime, EStreamAction.Pause);
|
||||
CBase.Sound.Fade(_StreamID, 0, _FadeTime, EStreamAction.Pause);
|
||||
else
|
||||
{
|
||||
CBase.Sound.Fade(_StreamID, Volume, _FadeTime);
|
||||
@@ -129,12 +124,12 @@ namespace VocaluxeLib.Utils.Player
|
||||
IsPlaying = !IsPlaying;
|
||||
}
|
||||
|
||||
public void Stop()
|
||||
public virtual void Stop()
|
||||
{
|
||||
if (_StreamID == -1 || !IsPlaying)
|
||||
return;
|
||||
|
||||
CBase.Sound.Fade(_StreamID, 0f, _FadeTime, EStreamAction.Close);
|
||||
CBase.Sound.Fade(_StreamID, 0, _FadeTime, EStreamAction.Close);
|
||||
_StreamID = -1;
|
||||
|
||||
IsPlaying = false;
|
||||
|
||||
Reference in new issue
Block a user