@@ -19,6 +19,7 @@ namespace Mear.Playback
|
|||||||
public class MearPlayer
|
public class MearPlayer
|
||||||
{
|
{
|
||||||
#region Fields
|
#region Fields
|
||||||
|
private static Song _song;
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
@@ -100,7 +101,9 @@ namespace Mear.Playback
|
|||||||
return StreamSong(song);
|
return StreamSong(song);
|
||||||
break;
|
break;
|
||||||
case PlayControls.REPEAT:
|
case PlayControls.REPEAT:
|
||||||
// TODO: Implement repeat
|
// TODO: Not fully implemented
|
||||||
|
CrossMediaManager.Current.ToggleRepeat();
|
||||||
|
var i = CrossMediaManager.Current.RepeatMode;
|
||||||
break;
|
break;
|
||||||
case PlayControls.SHUFFLE:
|
case PlayControls.SHUFFLE:
|
||||||
// TODO: Implement shuffling
|
// TODO: Implement shuffling
|
||||||
|
|||||||
@@ -1,73 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
using Mear.Models;
|
|
||||||
|
|
||||||
namespace Mear.Repositories.Database
|
|
||||||
{
|
|
||||||
// TODO: Implement the database functionality #35
|
|
||||||
public class DBMusicControls : DBRepository
|
|
||||||
{
|
|
||||||
#region Fields
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
#region Properties
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
#region Constructors
|
|
||||||
public DBMusicControls()
|
|
||||||
{
|
|
||||||
Initialize();
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
#region Methods
|
|
||||||
public bool IsShuffleOn()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (DoesTableExist("MusicControls"))
|
|
||||||
{
|
|
||||||
bool? shuffle = _Db.Table<MusicControls>().First().ShuffleOn;
|
|
||||||
|
|
||||||
if (shuffle != null)
|
|
||||||
{
|
|
||||||
return shuffle.Value; ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
var msg = ex.Message;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
public bool IsRepeatOn()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (DoesTableExist("MusicControls"))
|
|
||||||
{
|
|
||||||
bool? repeat = _Db.Table<MusicControls>().First().RepeatOn;
|
|
||||||
|
|
||||||
if (repeat != null)
|
|
||||||
{
|
|
||||||
return repeat.Value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
var msg = ex.Message;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,146 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
using Mear.Models;
|
||||||
|
|
||||||
|
namespace Mear.Repositories.Database
|
||||||
|
{
|
||||||
|
// TODO: Implement the database functionality #35
|
||||||
|
public class DBMusicControlsRepository : DBRepository
|
||||||
|
{
|
||||||
|
#region Fields
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region Properties
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region Constructors
|
||||||
|
public DBMusicControlsRepository()
|
||||||
|
{
|
||||||
|
Initialize();
|
||||||
|
InitializeTable();
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region Methods
|
||||||
|
public bool IsShuffleOn()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (DoesTableExist("MusicControls"))
|
||||||
|
{
|
||||||
|
bool? shuffle = _Db.Table<MusicControls>().First().ShuffleOn;
|
||||||
|
|
||||||
|
if (shuffle != null)
|
||||||
|
{
|
||||||
|
return shuffle.Value; ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
var msg = ex.Message;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
public bool IsRepeatOn()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (DoesTableExist("MusicControls"))
|
||||||
|
{
|
||||||
|
bool? repeat = _Db.Table<MusicControls>().First().RepeatOn;
|
||||||
|
|
||||||
|
if (repeat != null)
|
||||||
|
{
|
||||||
|
return repeat.Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
var msg = ex.Message;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateRepeat()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (DoesTableExist("MusicControls"))
|
||||||
|
{
|
||||||
|
var control = RetrieveMusicControls();
|
||||||
|
control.RepeatOn = !control.RepeatOn;
|
||||||
|
_Db.Update(control);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
var msg = ex.Message;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void UpdateShuffle()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (DoesTableExist("MusicControls"))
|
||||||
|
{
|
||||||
|
var control = RetrieveMusicControls();
|
||||||
|
control.ShuffleOn = (!control.ShuffleOn);
|
||||||
|
|
||||||
|
_Db.Update(control);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
var msg = ex.Message;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private MusicControls RetrieveMusicControls()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var controls = _Db.Table<MusicControls>().First();
|
||||||
|
|
||||||
|
return controls;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
var msg = ex.Message;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
private void InitializeTable()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!DoesTableExist("MusicControls"))
|
||||||
|
{
|
||||||
|
_Db.CreateTable<MusicControls>();
|
||||||
|
}
|
||||||
|
|
||||||
|
var controls = RetrieveMusicControls();
|
||||||
|
|
||||||
|
if (controls == null)
|
||||||
|
{
|
||||||
|
var initControl = new MusicControls();
|
||||||
|
_Db.Insert(initControl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
var msg = ex.Message;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -33,10 +33,10 @@
|
|||||||
<StackLayout Orientation="Horizontal"
|
<StackLayout Orientation="Horizontal"
|
||||||
Grid.Row="3">
|
Grid.Row="3">
|
||||||
<Button x:Name="Repeat"
|
<Button x:Name="Repeat"
|
||||||
Text="Rep"
|
Text="RepOff"
|
||||||
Clicked="Repeat_Clicked" />
|
Clicked="Repeat_Clicked" />
|
||||||
<Button x:Name="Shuffle"
|
<Button x:Name="Shuffle"
|
||||||
Text="Shf"
|
Text="ShfOff"
|
||||||
Clicked="Shuffle_Clicked" />
|
Clicked="Shuffle_Clicked" />
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
<StackLayout Orientation="Horizontal">
|
<StackLayout Orientation="Horizontal">
|
||||||
|
|||||||
@@ -96,6 +96,13 @@ namespace Mear.Views
|
|||||||
var dur = _song.Duration;
|
var dur = _song.Duration;
|
||||||
var endTime = songCnvrt.ConvertToSongTime(dur.Value);
|
var endTime = songCnvrt.ConvertToSongTime(dur.Value);
|
||||||
|
|
||||||
|
var controlRepo = new DBMusicControlsRepository();
|
||||||
|
var shuffleOn = controlRepo.IsShuffleOn();
|
||||||
|
var repeatOn = controlRepo.IsRepeatOn();
|
||||||
|
|
||||||
|
Shuffle.Text = (shuffleOn) ? "ShfOn" : "ShfOff";
|
||||||
|
Repeat.Text = (repeatOn) ? "RepOn" : "RepOff";
|
||||||
|
|
||||||
EndTime.Text = endTime;
|
EndTime.Text = endTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -178,11 +185,21 @@ namespace Mear.Views
|
|||||||
}
|
}
|
||||||
private void Repeat_Clicked(object sender, EventArgs e)
|
private void Repeat_Clicked(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
var musicCtrl = new DBMusicControlsRepository();
|
||||||
|
var control = musicCtrl.IsRepeatOn();
|
||||||
|
Repeat.Text = (!control) ? "RepOn" : "RepOff";
|
||||||
|
|
||||||
|
musicCtrl.UpdateRepeat();
|
||||||
|
|
||||||
|
MearPlayer.ControlMusic(_song, PlayControls.REPEAT);
|
||||||
}
|
}
|
||||||
private void Shuffle_Clicked(object sender, EventArgs e)
|
private void Shuffle_Clicked(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
var musicCtrl = new DBMusicControlsRepository();
|
||||||
|
var control = musicCtrl.IsShuffleOn();
|
||||||
|
Shuffle.Text = (!control) ? "ShfOn" : "ShfOff";
|
||||||
|
|
||||||
|
musicCtrl.UpdateShuffle();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user