1
0
mirror of https://github.com/ZetaKebab/MpcNET.git synced 2024-09-16 05:30:09 +00:00

TagConverter created from Mpc

This commit is contained in:
glucaci 2016-11-30 22:33:40 +01:00
parent ae983aa282
commit cd04213791
2 changed files with 62 additions and 56 deletions

View File

@ -23,21 +23,6 @@ namespace LibMpc
/// </summary> /// </summary>
public class Mpc : IMpc public class Mpc : IMpc
{ {
private const string TAG_ANY = "any";
private const string TAG_FILENAME = "filename";
private const string TAG_ARTIST = "artist";
private const string TAG_ALBUM = "album";
private const string TAG_TITLE = "title";
private const string TAG_TRACK = "track";
private const string TAG_NAME = "name";
private const string TAG_GENRE = "genre";
private const string TAG_DATE = "date";
private const string TAG_COMPOSER = "composer";
private const string TAG_PERFORMER = "performer";
private const string TAG_COMMENT = "comment";
private const string TAG_DISC = "disc";
private static readonly Regex STATUS_AUDIO_REGEX = new Regex("^(?<sampleRate>[0-9]*):(?<bits>[0-9]*):(?<channels>[0-9]*)$"); private static readonly Regex STATUS_AUDIO_REGEX = new Regex("^(?<sampleRate>[0-9]*):(?<bits>[0-9]*):(?<channels>[0-9]*)$");
private MpcConnection _connection; private MpcConnection _connection;
@ -223,7 +208,7 @@ namespace LibMpc
if (token == null) if (token == null)
throw new ArgumentNullException("token"); throw new ArgumentNullException("token");
MpdResponse response = _connection.Exec("find", new string[] { toTag(scopeSpecifier), token }); MpdResponse response = _connection.Exec("find", new string[] { TagConverter.ToTag(scopeSpecifier), token });
if (response.IsError) if (response.IsError)
throw new MpdResponseException(response.ErrorCode, response.ErrorMessage); throw new MpdResponseException(response.ErrorCode, response.ErrorMessage);
@ -237,7 +222,7 @@ namespace LibMpc
/// <returns>All values found in files of the MPD for the given attribute.</returns> /// <returns>All values found in files of the MPD for the given attribute.</returns>
public List<string> List(ScopeSpecifier scopeSpecifier) public List<string> List(ScopeSpecifier scopeSpecifier)
{ {
MpdResponse response = _connection.Exec("list", new string[] { toTag(scopeSpecifier) }); MpdResponse response = _connection.Exec("list", new string[] { TagConverter.ToTag(scopeSpecifier) });
if (response.IsError) if (response.IsError)
throw new MpdResponseException(response.ErrorCode, response.ErrorMessage); throw new MpdResponseException(response.ErrorCode, response.ErrorMessage);
@ -256,7 +241,7 @@ namespace LibMpc
if (searchValue == null) if (searchValue == null)
throw new ArgumentNullException("searchValue"); throw new ArgumentNullException("searchValue");
MpdResponse response = _connection.Exec("list", new string[] { toTag(resultTag), toTag(searchTag), searchValue }); MpdResponse response = _connection.Exec("list", new string[] { TagConverter.ToTag(resultTag), TagConverter.ToTag(searchTag), searchValue });
if (response.IsError) if (response.IsError)
throw new MpdResponseException(response.ErrorCode, response.ErrorMessage); throw new MpdResponseException(response.ErrorCode, response.ErrorMessage);
@ -337,7 +322,7 @@ namespace LibMpc
if (token == null) if (token == null)
throw new ArgumentNullException("token"); throw new ArgumentNullException("token");
MpdResponse response = _connection.Exec("search", new string[] { toTag(scopeSpecifier), token }); MpdResponse response = _connection.Exec("search", new string[] { TagConverter.ToTag(scopeSpecifier), token });
if (response.IsError) if (response.IsError)
throw new MpdResponseException(response.ErrorCode, response.ErrorMessage); throw new MpdResponseException(response.ErrorCode, response.ErrorMessage);
@ -774,7 +759,7 @@ namespace LibMpc
if (token == null) if (token == null)
throw new ArgumentNullException("token"); throw new ArgumentNullException("token");
MpdResponse response = _connection.Exec("playlistfind", new string[] { toTag(scopeSpecifier), token }); MpdResponse response = _connection.Exec("playlistfind", new string[] { TagConverter.ToTag(scopeSpecifier), token });
if (response.IsError) if (response.IsError)
throw new MpdResponseException(response.ErrorCode, response.ErrorMessage); throw new MpdResponseException(response.ErrorCode, response.ErrorMessage);
@ -792,7 +777,7 @@ namespace LibMpc
if (token == null) if (token == null)
throw new ArgumentNullException("token"); throw new ArgumentNullException("token");
MpdResponse response = _connection.Exec("playlistsearch", new string[] { toTag(scopeSpecifier), token }); MpdResponse response = _connection.Exec("playlistsearch", new string[] { TagConverter.ToTag(scopeSpecifier), token });
if (response.IsError) if (response.IsError)
throw new MpdResponseException(response.ErrorCode, response.ErrorMessage); throw new MpdResponseException(response.ErrorCode, response.ErrorMessage);
@ -1268,40 +1253,5 @@ namespace LibMpc
} }
#endregion #endregion
private string toTag(ScopeSpecifier scopeSpecifier)
{
switch (scopeSpecifier)
{
default:
throw new ArgumentException("scopeSpecifier");
case ScopeSpecifier.Any:
return TAG_ANY;
case ScopeSpecifier.Filename:
return TAG_FILENAME;
case ScopeSpecifier.Artist:
return TAG_ARTIST;
case ScopeSpecifier.Album:
return TAG_ALBUM;
case ScopeSpecifier.Title:
return TAG_TITLE;
case ScopeSpecifier.Track:
return TAG_TRACK;
case ScopeSpecifier.Name:
return TAG_NAME;
case ScopeSpecifier.Genre:
return TAG_GENRE;
case ScopeSpecifier.Date:
return TAG_DATE;
case ScopeSpecifier.Composer:
return TAG_COMPOSER;
case ScopeSpecifier.Performer:
return TAG_PERFORMER;
case ScopeSpecifier.Comment:
return TAG_COMMENT;
case ScopeSpecifier.Disc:
return TAG_DISC;
}
}
} }
} }

56
LibMpc/TagConverter.cs Normal file
View File

@ -0,0 +1,56 @@
using System;
namespace LibMpc
{
public static class TagConverter
{
private const string TagAny = "any";
private const string TagFilename = "filename";
private const string TagArtist = "artist";
private const string TagAlbum = "album";
private const string TagTitle = "title";
private const string TagTrack = "track";
private const string TagName = "name";
private const string TagGenre = "genre";
private const string TagDate = "date";
private const string TagComposer = "composer";
private const string TagPerformer = "performer";
private const string TagComment = "comment";
private const string TagDisc = "disc";
public static string ToTag(ScopeSpecifier scopeSpecifier)
{
switch (scopeSpecifier)
{
default:
throw new ArgumentException("scopeSpecifier");
case ScopeSpecifier.Any:
return TagAny;
case ScopeSpecifier.Filename:
return TagFilename;
case ScopeSpecifier.Artist:
return TagArtist;
case ScopeSpecifier.Album:
return TagAlbum;
case ScopeSpecifier.Title:
return TagTitle;
case ScopeSpecifier.Track:
return TagTrack;
case ScopeSpecifier.Name:
return TagName;
case ScopeSpecifier.Genre:
return TagGenre;
case ScopeSpecifier.Date:
return TagDate;
case ScopeSpecifier.Composer:
return TagComposer;
case ScopeSpecifier.Performer:
return TagPerformer;
case ScopeSpecifier.Comment:
return TagComment;
case ScopeSpecifier.Disc:
return TagDisc;
}
}
}
}