Skip to content

Commit

Permalink
Added logic to EqualizerPresetsPresenter.
Browse files Browse the repository at this point in the history
iOS: Updated EqualizerPresetsViewController.

Related to issue #397 and issue #405.
  • Loading branch information
ycastonguay committed Apr 19, 2013
1 parent 7d7497d commit e454ca7
Show file tree
Hide file tree
Showing 14 changed files with 385 additions and 158 deletions.
6 changes: 3 additions & 3 deletions MPfm/MPfm.Library/Database/DatabaseFacade.cs
Expand Up @@ -463,7 +463,7 @@ public EQPreset SelectEQPreset(string name)
/// Inserts a new EQ preset into the database.
/// </summary>
/// <param name="eq">EQ preset to insert</param>
public void InsertEqualizer(EQPreset eq)
public void InsertEQPreset(EQPreset eq)
{
_gateway.Insert<EQPreset>(eq, "EQPresets");
}
Expand All @@ -472,7 +472,7 @@ public void InsertEqualizer(EQPreset eq)
/// Updates an existing EQ preset in the database.
/// </summary>
/// <param name="eq">EQ preset to update</param>
public void UpdateEqualizer(EQPreset eq)
public void UpdateEQPreset(EQPreset eq)
{
_gateway.Update<EQPreset>(eq, "EQPresets", "EQPresetId", eq.EQPresetId);
}
Expand All @@ -481,7 +481,7 @@ public void UpdateEqualizer(EQPreset eq)
/// Deletes an EQ preset from the database.
/// </summary>
/// <param name="eqPresetId">EQ preset identifier</param>
public void DeleteEqualizer(Guid eqPresetId)
public void DeleteEQPreset(Guid eqPresetId)
{
// Delete item
_gateway.Delete("EQPresets", "EQPresetId", eqPresetId);
Expand Down
9 changes: 3 additions & 6 deletions MPfm/MPfm.Library/Database/Interfaces/IDatabaseFacade.cs
Expand Up @@ -23,14 +23,11 @@

namespace MPfm.Library.Database.Interfaces
{
/// <summary>
/// Interface for the DatabaseFacade class.
/// </summary>
public interface IDatabaseFacade
{
void DeleteAudioFile(Guid audioFileId);
void DeleteAudioFiles(string basePath);
void DeleteEqualizer(Guid eqPresetId);
void DeleteEQPreset(Guid eqPresetId);
void DeleteFolder(Guid folderId);
void DeleteFolders();
void DeleteLoop(Guid loopId);
Expand All @@ -41,7 +38,7 @@ public interface IDatabaseFacade
DateTime? GetAudioFileLastPlayedFromHistory(Guid audioFileId);
int GetAudioFilePlayCountFromHistory(Guid audioFileId);
void InsertAudioFile(AudioFile audioFile);
void InsertEqualizer(EQPreset eq);
void InsertEQPreset(EQPreset eq);
void InsertFolder(string folderPath, bool recursive);
void InsertHistory(Guid audioFileId);
void InsertHistory(Guid audioFileId, DateTime eventDateTime);
Expand Down Expand Up @@ -75,7 +72,7 @@ public interface IDatabaseFacade
Setting SelectSetting(string name);
List<Setting> SelectSettings();
void UpdateAudioFile(AudioFile audioFile);
void UpdateEqualizer(EQPreset eq);
void UpdateEQPreset(EQPreset eq);
void UpdateLoop(Loop dto);
void UpdateMarker(Marker dto);
void UpdatePlayCount(Guid audioFileId);
Expand Down
54 changes: 47 additions & 7 deletions MPfm/MPfm.MVP/Presenters/EqualizerPresetsPresenter.cs
Expand Up @@ -15,6 +15,10 @@
// You should have received a copy of the GNU General Public License
// along with MPfm. If not, see <http://www.gnu.org/licenses/>.

using System;
using System.Collections.Generic;
using System.Linq;
using MPfm.Player.Objects;
using MPfm.MVP.Navigation;
using MPfm.MVP.Presenters.Interfaces;
using MPfm.MVP.Services.Interfaces;
Expand All @@ -26,18 +30,20 @@ public class EqualizerPresetsPresenter : BasePresenter<IEqualizerPresetsView>, I
{
readonly MobileNavigationManager _navigationManager;
readonly IPlayerService _playerService;
readonly ILibraryService _libraryService;
List<EQPreset> _presets;

public EqualizerPresetsPresenter(MobileNavigationManager navigationManager, IPlayerService playerService)
public EqualizerPresetsPresenter(MobileNavigationManager navigationManager, IPlayerService playerService, ILibraryService libraryService)
{
_navigationManager = navigationManager;
_playerService = playerService;
_libraryService = libraryService;
}

public override void BindView(IEqualizerPresetsView view)
{
base.BindView(view);

view.OnBypassEqualizer = BypassEqualizer;
view.OnAddPreset = AddPreset;
view.OnLoadPreset = LoadPreset;
view.OnEditPreset = EditPreset;
Expand All @@ -53,24 +59,58 @@ private void BypassEqualizer()

private void AddPreset()
{
var view = _navigationManager.CreateEqualizerPresetDetailsView();
_navigationManager.PushDialogSubview("EqualizerPresets", view);
try
{
var view = _navigationManager.CreateEqualizerPresetDetailsView();
_navigationManager.PushDialogSubview("EqualizerPresets", view);
}
catch(Exception ex)
{
Console.WriteLine("An error occured while refreshing markera: " + ex.Message);
View.EqualizerPresetsError(ex);
}
}

private void LoadPreset(string presetName)
private void LoadPreset(Guid presetId)
{

}

private void EditPreset(string presetName)
private void EditPreset(Guid presetId)
{
try
{
var view = _navigationManager.CreateEqualizerPresetDetailsView();
_navigationManager.PushDialogSubview("EqualizerPresets", view);
}
catch(Exception ex)
{
Console.WriteLine("An error occured while refreshing markera: " + ex.Message);
View.EqualizerPresetsError(ex);
}
}

private void DeletePreset(string presetName)
private void DeletePreset(Guid presetId)
{
}

private void RefreshPresets()
{
try
{

_presets = _libraryService.SelectEQPresets().ToList();
_presets.Add(new EQPreset(){
EQPresetId = Guid.Empty,
Name = "Bypass"
});
View.RefreshPresets(_presets);
}
catch(Exception ex)
{
Console.WriteLine("An error occured while refreshing markera: " + ex.Message);
View.EqualizerPresetsError(ex);
}
}
}
}
Expand Down
5 changes: 5 additions & 0 deletions MPfm/MPfm.MVP/Services/Interfaces/ILibraryService.cs
Expand Up @@ -57,5 +57,10 @@ public interface ILibraryService
List<Loop> SelectLoops(Guid audioFileId);
void UpdateLoop(Loop Loop);
void DeleteLoop(Guid LoopId);

void InsertEQPreset(EQPreset preset);
IEnumerable<EQPreset> SelectEQPresets();
void UpdateEQPreset(EQPreset preset);
void DeleteEQPreset(Guid presetId);
}
}
90 changes: 36 additions & 54 deletions MPfm/MPfm.MVP/Services/LibraryService.cs
Expand Up @@ -32,97 +32,53 @@ namespace MPfm.MVP.Services
/// </summary>
public class LibraryService : ILibraryService
{
// Private variables
private readonly IDatabaseFacade gateway = null;

/// <summary>
/// Initializes a new instance of the <see cref="MPfm.Library.UpdateLibraryService"/> class.
/// </summary>
/// <param name='gateway'>
/// MPfm Gateway.
/// </param>
/// <exception cref='ArgumentNullException'>
/// Is thrown when an argument passed to a method is invalid because it is <see langword="null" /> .
/// </exception>
public LibraryService(IDatabaseFacade gateway)
{
// Check for null
if(gateway == null)
throw new ArgumentNullException("The gateway parameter cannot be null!");

// Set gateway
this.gateway = gateway;
}

/// <summary>
/// Compacts the database.
/// </summary>
public void CompactDatabase()
{
gateway.CompactDatabase();
}

#region Audio Files

/// <summary>
/// Returns the list of configured folders in the database.
/// </summary>
/// <returns>List of folders</returns>
public IEnumerable<Folder> SelectFolders()
{
return gateway.SelectFolders();
}

/// <summary>
/// Returns the list of audio file paths from the Song table.
/// </summary>
/// <returns>List of file paths</returns>
public IEnumerable<string> SelectFilePaths()
{
return gateway.SelectFilePaths();
}

/// <summary>
/// Selects all audio file metadata from the database.
/// </summary>
/// <returns>List of audio files</returns>
public IEnumerable<AudioFile> SelectAudioFiles()
{
return gateway.SelectAudioFiles();
}

/// <summary>
/// Selects audio file metadata from the database by creating a query based on the method parameters.
/// </summary>
/// <param name='format'>Audio file format</param>
/// <param name='artistName'>Artist name</param>
/// <param name='albumTitle'>Album title</param>
/// <param name='search'>Search terms</param>
/// <returns>List of audio files</returns>
public IEnumerable<AudioFile> SelectAudioFiles(AudioFileFormat format, string artistName, string albumTitle, string search)
{
return gateway.SelectAudioFiles(format, artistName, albumTitle, search);
}

/// <summary>
/// Inserts an audio file into the database.
/// </summary>
/// <param name='audioFile'>Audio file to insert</param>
public void InsertAudioFile(AudioFile audioFile)
{
gateway.InsertAudioFile(audioFile);
}

/// <summary>
/// Inserts a playlist file into the database.
/// </summary>
/// <param name='playlistFile'>Playlist file to insert</param>
public void InsertPlaylistFile(PlaylistFile playlistFile)
{
gateway.InsertPlaylistFile(playlistFile);
}

/// <summary>
/// Removes the audio files with broken file paths (i.e. that do not exist anymore on the hard drive).
/// </summary>
public void RemoveAudioFilesWithBrokenFilePaths()
{
// Get all audio files
Expand Down Expand Up @@ -199,6 +155,8 @@ public List<string> SelectDistinctArtistNames(AudioFileFormat format)
return gateway.SelectDistinctAlbumTitles(format, artistName);
}

#endregion

#region Markers

public void InsertMarker(Marker marker)
Expand Down Expand Up @@ -230,29 +188,53 @@ public void DeleteMarker(Guid markerId)

#region Loops

public void InsertLoop(Loop Loop)
public void InsertLoop(Loop loop)
{
gateway.InsertLoop(Loop);
gateway.InsertLoop(loop);
}

public Loop SelectLoop(Guid LoopId)
public Loop SelectLoop(Guid loopId)
{
return gateway.SelectLoop(LoopId);
return gateway.SelectLoop(loopId);
}

public List<Loop> SelectLoops(Guid audioFileId)
{
return gateway.SelectLoops(audioFileId);
}

public void UpdateLoop(Loop Loop)
public void UpdateLoop(Loop loop)
{
gateway.UpdateLoop(loop);
}

public void DeleteLoop(Guid loopId)
{
gateway.DeleteLoop(loopId);
}

#endregion

#region Equalizer Presets

public void InsertEQPreset(EQPreset preset)
{
gateway.InsertEQPreset(preset);
}

public IEnumerable<EQPreset> SelectEQPresets()
{
return gateway.SelectEQPresets();
}

public void UpdateEQPreset(EQPreset preset)
{
gateway.UpdateLoop(Loop);
gateway.UpdateEQPreset(preset);
}

public void DeleteLoop(Guid LoopId)
public void DeleteEQPreset(Guid presetId)
{
gateway.DeleteLoop(LoopId);
gateway.DeleteEQPreset(presetId);
}

#endregion
Expand Down
11 changes: 6 additions & 5 deletions MPfm/MPfm.MVP/Views/IEqualizerPresetsView.cs
Expand Up @@ -17,17 +17,18 @@

using System;
using System.Collections.Generic;
using MPfm.Player.Objects;

namespace MPfm.MVP.Views
{
public interface IEqualizerPresetsView : IBaseView
{
Action OnBypassEqualizer { get; set; }
Action OnAddPreset { get; set; }
Action<string> OnLoadPreset { get; set; }
Action<string> OnEditPreset { get; set; }
Action<string> OnDeletePreset { get; set; }
Action<Guid> OnLoadPreset { get; set; }
Action<Guid> OnEditPreset { get; set; }
Action<Guid> OnDeletePreset { get; set; }

void UpdatePresetList(IEnumerable<string> presets);
void EqualizerPresetsError(Exception ex);
void RefreshPresets(IEnumerable<EQPreset> presets);
}
}

0 comments on commit e454ca7

Please sign in to comment.