Added full-video-preview. Toggle wie "V" or click on video-icon.

This commit is contained in:
Florian Kuepper committed 2012-12-01 23:11:54 +01:00
1 parent 26a5086fc8
commit aa68edfba9
5 files changed
+188 -99

No files matched your search

+10
View File
@@ -143,6 +143,16 @@ namespace Vocaluxe.Menu.SongMenu
_SongMenu.SetSmallView(SmallView); _SongMenu.SetSmallView(SmallView);
} }
public void ToggleVideoFull()
{
_SongMenu.ToggleVideoFull();
}
public bool IsVideoFull()
{
return _SongMenu.IsVideoFull();
}
#endregion ISongMenu #endregion ISongMenu
#region IMenuElement #region IMenuElement
@@ -484,6 +484,9 @@ namespace Vocaluxe.Menu.SongMenu
_timer.Stop(); _timer.Stop();
_timer.Reset(); _timer.Reset();
_SelectedInternal = _SelectedPending; _SelectedInternal = _SelectedPending;
if (IsVideoFull())
ToggleVideoFull();
} }
public virtual void HandleInput(ref KeyEvent KeyEvent) public virtual void HandleInput(ref KeyEvent KeyEvent)
@@ -553,6 +556,17 @@ namespace Vocaluxe.Menu.SongMenu
return false; return false;
} }
public virtual void ToggleVideoFull()
{
if (!_Initialized)
return;
}
public virtual bool IsVideoFull()
{
return false;
}
public virtual void UnloadTextures() public virtual void UnloadTextures()
{ {
} }
+38 -7
View File
@@ -41,6 +41,7 @@ namespace Vocaluxe.Menu.SongMenu
private int _actualSelection = -1; private int _actualSelection = -1;
private bool _SmallView = false; private bool _SmallView = false;
private bool _VidFull = false;
public override int GetActualSelection() public override int GetActualSelection()
{ {
@@ -359,6 +360,10 @@ namespace Vocaluxe.Menu.SongMenu
} }
else if (_PreviewSelected != -1 && MouseEvent.LB && CSongs.Category != -1) else if (_PreviewSelected != -1 && MouseEvent.LB && CSongs.Category != -1)
{ {
if (CHelper.IsInBounds(_VideoIcon.Rect, MouseEvent))
{
ToggleVideoFull();
}
if (CHelper.IsInBounds(_CoverBig.Rect, MouseEvent) || CHelper.IsInBounds(_TextBG.Rect, MouseEvent)) if (CHelper.IsInBounds(_CoverBig.Rect, MouseEvent) || CHelper.IsInBounds(_TextBG.Rect, MouseEvent))
{ {
_Locked = _PreviewSelected; _Locked = _PreviewSelected;
@@ -375,6 +380,10 @@ namespace Vocaluxe.Menu.SongMenu
} }
} }
} }
else if (MouseEvent.LB && CHelper.IsInBounds(_VideoIcon.Rect, MouseEvent))
{
ToggleVideoFull();
}
if (MouseEvent.Wheel > 0) if (MouseEvent.Wheel > 0)
{ {
@@ -472,14 +481,26 @@ namespace Vocaluxe.Menu.SongMenu
if (_vidtex.index != -1 && _Video != -1) if (_vidtex.index != -1 && _Video != -1)
{ {
RectangleF bounds = new RectangleF(_CoverBig.Rect.X, _CoverBig.Rect.Y, _CoverBig.Rect.W, _CoverBig.Rect.H); if (_VidFull)
RectangleF rect = new RectangleF(0f, 0f, _vidtex.width, _vidtex.height); {
CHelper.SetRect(bounds, ref rect, rect.Width / rect.Height, EAspect.Crop); RectangleF bounds = new RectangleF(0, 0, CSettings.iRenderW, CSettings.iRenderH);
RectangleF rect = new RectangleF(0f, 0f, _vidtex.width, _vidtex.height);
CHelper.SetRect(bounds, ref rect, rect.Width / rect.Height, EAspect.Crop);
CDraw.DrawTexture(_vidtex, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, _CoverBig.Rect.Z), CDraw.DrawTexture(_vidtex, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, CSettings.zNear),
_vidtex.color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f), false); _vidtex.color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f), false);
CDraw.DrawTextureReflection(_vidtex, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, _CoverBig.Rect.Z), }
_vidtex.color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f), _CoverBig.ReflectionSpace, _CoverBig.ReflectionHeight); else
{
RectangleF bounds = new RectangleF(_CoverBig.Rect.X, _CoverBig.Rect.Y, _CoverBig.Rect.W, _CoverBig.Rect.H);
RectangleF rect = new RectangleF(0f, 0f, _vidtex.width, _vidtex.height);
CHelper.SetRect(bounds, ref rect, rect.Width / rect.Height, EAspect.Crop);
CDraw.DrawTexture(_vidtex, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, _CoverBig.Rect.Z),
_vidtex.color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f), false);
CDraw.DrawTextureReflection(_vidtex, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, _CoverBig.Rect.Z),
_vidtex.color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f), _CoverBig.ReflectionSpace, _CoverBig.ReflectionHeight);
}
} }
@@ -793,6 +814,16 @@ namespace Vocaluxe.Menu.SongMenu
return _SmallView; return _SmallView;
} }
public override void ToggleVideoFull()
{
_VidFull = !_VidFull;
}
public override bool IsVideoFull()
{
return _VidFull;
}
public override void LoadTextures() public override void LoadTextures()
{ {
base.LoadTextures(); base.LoadTextures();
+3
View File
@@ -33,6 +33,9 @@ namespace Vocaluxe.Menu.SongMenu
bool IsVisible(); bool IsVisible();
void SetVisible(bool Visible); void SetVisible(bool Visible);
void ToggleVideoFull();
bool IsVideoFull();
bool IsSmallView(); bool IsSmallView();
void SetSmallView(bool SmallView); void SetSmallView(bool SmallView);
+123 -92
View File
@@ -141,7 +141,9 @@ namespace Vocaluxe.Screens
switch (KeyEvent.Key) switch (KeyEvent.Key)
{ {
case Keys.Escape: case Keys.Escape:
if (CSongs.Category < 0 || CConfig.Tabs == EOffOn.TR_CONFIG_OFF) if (SongMenus[htSongMenus(SongMenu)].IsVideoFull())
SongMenus[htSongMenus(SongMenu)].ToggleVideoFull();
else if (CSongs.Category < 0 || CConfig.Tabs == EOffOn.TR_CONFIG_OFF)
CGraphics.FadeTo(EScreens.ScreenMain); CGraphics.FadeTo(EScreens.ScreenMain);
break; break;
@@ -149,7 +151,11 @@ namespace Vocaluxe.Screens
if (CSongs.NumVisibleSongs > 0) if (CSongs.NumVisibleSongs > 0)
{ {
if (SongMenus[htSongMenus(SongMenu)].GetSelectedSong() != -1 && !_SongOptionsActive) if (SongMenus[htSongMenus(SongMenu)].GetSelectedSong() != -1 && !_SongOptionsActive)
{
ToggleSongOptions(ESongOptionsView.Song); ToggleSongOptions(ESongOptionsView.Song);
if (SongMenus[htSongMenus(SongMenu)].IsVideoFull())
SongMenus[htSongMenus(SongMenu)].ToggleVideoFull();
}
} }
break; break;
@@ -174,6 +180,8 @@ namespace Vocaluxe.Screens
break; break;
case Keys.Space: case Keys.Space:
if (SongMenus[htSongMenus(SongMenu)].IsVideoFull())
SongMenus[htSongMenus(SongMenu)].ToggleVideoFull();
ToggleSongOptions(ESongOptionsView.General); ToggleSongOptions(ESongOptionsView.General);
break; break;
@@ -187,6 +195,8 @@ namespace Vocaluxe.Screens
else else
{ {
_SearchActive = true; _SearchActive = true;
if (SongMenus[htSongMenus(SongMenu)].IsVideoFull())
SongMenus[htSongMenus(SongMenu)].ToggleVideoFull();
} }
break; break;
@@ -215,6 +225,8 @@ namespace Vocaluxe.Screens
else else
{ {
_SearchActive = true; _SearchActive = true;
if (SongMenus[htSongMenus(SongMenu)].IsVideoFull())
SongMenus[htSongMenus(SongMenu)].ToggleVideoFull();
} }
} }
break; break;
@@ -234,13 +246,16 @@ namespace Vocaluxe.Screens
//TODO: Delete that! //TODO: Delete that!
case Keys.S: case Keys.S:
if (CSongs.NumVisibleSongs > 0) if (CSongs.NumVisibleSongs > 0)
{
StartMedleySong(SongMenus[htSongMenus(SongMenu)].GetSelectedSong()); StartMedleySong(SongMenus[htSongMenus(SongMenu)].GetSelectedSong());
}
break; break;
} }
} }
} }
else else if(!SongMenus[htSongMenus(SongMenu)].IsVideoFull())
{ {
switch (KeyEvent.Key) switch (KeyEvent.Key)
{ {
@@ -294,118 +309,134 @@ namespace Vocaluxe.Screens
} }
} }
if (KeyEvent.Key == Keys.V)
{
if (CSongs.Category != -1)
{
SongMenus[htSongMenus(SongMenu)].ToggleVideoFull();
}
}
return true; return true;
} }
public override bool HandleMouse(MouseEvent MouseEvent) public override bool HandleMouse(MouseEvent MouseEvent)
{ {
base.HandleMouse(MouseEvent); if (!SongMenus[htSongMenus(SongMenu)].IsVideoFull())
if (Playlists[htPlaylists(Playlist)].Visible && Playlists[htPlaylists(Playlist)].IsMouseOver(MouseEvent))
{ {
_PlaylistActive = true; base.HandleMouse(MouseEvent);
Playlists[htPlaylists(Playlist)].Selected = _PlaylistActive;
SongMenus[htSongMenus(SongMenu)].SetActive(!_PlaylistActive);
}
else if (CHelper.IsInBounds(SongMenus[htSongMenus(SongMenu)].Rect, MouseEvent.X, MouseEvent.Y))
{
_PlaylistActive = false;
Playlists[htPlaylists(Playlist)].Selected = _PlaylistActive;
SongMenus[htSongMenus(SongMenu)].SetActive(!_PlaylistActive);
}
if (Playlists[htPlaylists(Playlist)].Visible && Playlists[htPlaylists(Playlist)].HandleMouse(MouseEvent)) if (Playlists[htPlaylists(Playlist)].Visible && Playlists[htPlaylists(Playlist)].IsMouseOver(MouseEvent))
return true;
if (!_SongOptionsActive)
{
if ((MouseEvent.RB) && (CSongs.Category < 0))
{ {
CGraphics.FadeTo(EScreens.ScreenMain); _PlaylistActive = true;
Playlists[htPlaylists(Playlist)].Selected = _PlaylistActive;
SongMenus[htSongMenus(SongMenu)].SetActive(!_PlaylistActive);
}
else if (CHelper.IsInBounds(SongMenus[htSongMenus(SongMenu)].Rect, MouseEvent.X, MouseEvent.Y))
{
_PlaylistActive = false;
Playlists[htPlaylists(Playlist)].Selected = _PlaylistActive;
SongMenus[htSongMenus(SongMenu)].SetActive(!_PlaylistActive);
} }
else if (MouseEvent.RB && _SongOptionsActive)
ToggleSongOptions(ESongOptionsView.None);
if (MouseEvent.MB && CSongs.Category != -1) if (Playlists[htPlaylists(Playlist)].Visible && Playlists[htPlaylists(Playlist)].HandleMouse(MouseEvent))
return true;
if (!_SongOptionsActive)
{ {
Console.WriteLine("MB pressed");
SongMenus[htSongMenus(SongMenu)].SetSelectedSong(CSongs.GetRandomSong()); if ((MouseEvent.RB) && (CSongs.Category < 0))
} {
else if (MouseEvent.MB && CSongs.Category == -1) CGraphics.FadeTo(EScreens.ScreenMain);
{ }
Console.WriteLine("MB pressed"); else if (MouseEvent.RB && _SongOptionsActive)
SongMenus[htSongMenus(SongMenu)].SetSelectedCategory(CSongs.GetRandomCategory()); ToggleSongOptions(ESongOptionsView.None);
if (MouseEvent.MB && CSongs.Category != -1)
{
Console.WriteLine("MB pressed");
SongMenus[htSongMenus(SongMenu)].SetSelectedSong(CSongs.GetRandomSong());
}
else if (MouseEvent.MB && CSongs.Category == -1)
{
Console.WriteLine("MB pressed");
SongMenus[htSongMenus(SongMenu)].SetSelectedCategory(CSongs.GetRandomCategory());
}
else
SongMenus[htSongMenus(SongMenu)].HandleMouse(ref MouseEvent);
if (MouseEvent.LB && CSongs.NumVisibleSongs > 0 && SongMenus[htSongMenus(SongMenu)].GetActualSelection() != -1)
{
if (SongMenus[htSongMenus(SongMenu)].GetSelectedSong() != -1 && !_SongOptionsActive)
{
ToggleSongOptions(ESongOptionsView.Song);
}
}
else if (MouseEvent.LB && IsMouseOver(MouseEvent))
{
if (Buttons[htButtons(ButtonOpenOptions)].Selected)
{
ToggleSongOptions(ESongOptionsView.General);
}
}
} }
else else
SongMenus[htSongMenus(SongMenu)].HandleMouse(ref MouseEvent);
if (MouseEvent.LB && CSongs.NumVisibleSongs > 0 && SongMenus[htSongMenus(SongMenu)].GetActualSelection() != -1)
{ {
if (SongMenus[htSongMenus(SongMenu)].GetSelectedSong() != -1 && !_SongOptionsActive) if (MouseEvent.LB && IsMouseOver(MouseEvent))
{ {
ToggleSongOptions(ESongOptionsView.Song); if (Buttons[htButtons(ButtonOptionsClose)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
}
else if (Buttons[htButtons(ButtonOptionsSing)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
StartSong(SongMenus[htSongMenus(SongMenu)].GetSelectedSong());
}
else if (Buttons[htButtons(ButtonOptionsPlaylist)].Selected)
{
OpenAndAddPlaylistAction();
}
else if (Buttons[htButtons(ButtonOptionsRandom)].Selected)
{
if (CSongs.Category != -1)
{
SongMenus[htSongMenus(SongMenu)].SetSelectedSong(CSongs.GetRandomSong());
}
}
else if (Buttons[htButtons(ButtonOptionsRandomCategory)].Selected)
{
if (CSongs.Category == -1)
{
SongMenus[htSongMenus(SongMenu)].SetSelectedCategory(CSongs.GetRandomCategory());
}
}
else if (Buttons[htButtons(ButtonOptionsSingAll)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
StartRandomAllSongs();
}
else if (Buttons[htButtons(ButtonOptionsSingAllVisible)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
StartRandomVisibleSongs();
}
else if (Buttons[htButtons(ButtonOptionsOpenPlaylist)].Selected)
{
OpenPlaylistAction();
}
} }
} if (MouseEvent.RB)
else if (MouseEvent.LB && IsMouseOver(MouseEvent))
{
if (Buttons[htButtons(ButtonOpenOptions)].Selected)
{ {
ToggleSongOptions(ESongOptionsView.General); ToggleSongOptions(ESongOptionsView.None);
} }
} }
} }
else else
{ {
if (MouseEvent.LB && IsMouseOver(MouseEvent)) if(MouseEvent.RB || MouseEvent.LB)
{ SongMenus[htSongMenus(SongMenu)].ToggleVideoFull();
if (Buttons[htButtons(ButtonOptionsClose)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
}
else if (Buttons[htButtons(ButtonOptionsSing)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
StartSong(SongMenus[htSongMenus(SongMenu)].GetSelectedSong());
}
else if (Buttons[htButtons(ButtonOptionsPlaylist)].Selected)
{
OpenAndAddPlaylistAction();
}
else if (Buttons[htButtons(ButtonOptionsRandom)].Selected)
{
if (CSongs.Category != -1)
{
SongMenus[htSongMenus(SongMenu)].SetSelectedSong(CSongs.GetRandomSong());
}
}
else if (Buttons[htButtons(ButtonOptionsRandomCategory)].Selected)
{
if (CSongs.Category == -1)
{
SongMenus[htSongMenus(SongMenu)].SetSelectedCategory(CSongs.GetRandomCategory());
}
}
else if (Buttons[htButtons(ButtonOptionsSingAll)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
StartRandomAllSongs();
}
else if (Buttons[htButtons(ButtonOptionsSingAllVisible)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
StartRandomVisibleSongs();
}
else if (Buttons[htButtons(ButtonOptionsOpenPlaylist)].Selected)
{
OpenPlaylistAction();
}
}
if (MouseEvent.RB)
{
ToggleSongOptions(ESongOptionsView.None);
}
} }
return true; return true;