#93: Add flac support #101
@@ -170,7 +170,7 @@ public class SongManager : BaseManager
|
||||
dirMgr.CreateDirectory();
|
||||
|
||||
var tempPath = song.SongPath();
|
||||
song.Filename = song.GenerateFilename(1);
|
||||
song.Filename = song.GenerateFilename(true, AudioFileExtensionsType.WAV);
|
||||
var filePath = $"{dirMgr.SongDirectory}{song.Filename}";
|
||||
|
||||
_logger.Info($"Absolute song path: {filePath}");
|
||||
@@ -205,7 +205,7 @@ public class SongManager : BaseManager
|
||||
|
||||
if (string.IsNullOrEmpty(song.Filename))
|
||||
{
|
||||
song.Filename = song.GenerateFilename(1);
|
||||
song.Filename = song.GenerateFilename(true, AudioFileExtensionsType.WAV);
|
||||
}
|
||||
|
||||
_logger.Info($"Temporary directory: {_tempDirectoryRoot}");
|
||||
@@ -254,7 +254,6 @@ public class SongManager : BaseManager
|
||||
var coverMgr = new CoverArtManager(_config);
|
||||
var coverArt = coverMgr.SaveCoverArt(coverArtData, song);
|
||||
|
||||
|
||||
var meta = new Utilities.MetadataRetriever();
|
||||
meta.UpdateMetadata(song, song);
|
||||
|
||||
@@ -264,6 +263,7 @@ public class SongManager : BaseManager
|
||||
var tempPath = song.SongPath();
|
||||
|
||||
song.SongDirectory = dirMgr.SongDirectory;
|
||||
song.Filename = song.GenerateFilename(true, AudioFileExtensionsType.FLAC);
|
||||
|
||||
var filePath = song.SongPath();
|
||||
_logger.Info($"Absolute song path: {filePath}");
|
||||
@@ -340,7 +340,7 @@ public class SongManager : BaseManager
|
||||
{
|
||||
_logger.Info("Assigning song filename");
|
||||
var song = new Song { SongDirectory = this._tempDirectoryRoot };
|
||||
var filename = await song.GenerateFilenameAsync(0) + "-" + songFile.FileName;
|
||||
var filename = await song.GenerateFilenameAsync(false) + "-" + songFile.FileName;
|
||||
song.Filename = filename;
|
||||
var songPath = song.SongPath();
|
||||
|
||||
|
||||
+30
-6
@@ -88,26 +88,43 @@ public class Song
|
||||
return fullPath;
|
||||
}
|
||||
|
||||
public string GenerateFilename(int flag = 0)
|
||||
public string GenerateFilename(bool includeExtension = false, AudioFileExtensionsType flag = AudioFileExtensionsType.Default)
|
||||
{
|
||||
int length = Constants.DirectoryPaths.FILENAME_LENGTH;
|
||||
string chars = Constants.DirectoryPaths.FILENAME_CHARACTERS;
|
||||
var filename = this.Generate(length, chars);
|
||||
var extension = Icarus.Constants.FileExtensions.DEFAULT_AUDIO_EXTENSION;
|
||||
// var extension = Icarus.Constants.FileExtensions.DEFAULT_AUDIO_EXTENSION;
|
||||
var extension = this.DetermineFileExtension(flag);
|
||||
|
||||
return flag == 0 ? filename : $"{filename}{extension}";
|
||||
return includeExtension ? $"{filename}{extension}" : filename;
|
||||
}
|
||||
public async Task<string> GenerateFilenameAsync(int flag = 0)
|
||||
public async Task<string> GenerateFilenameAsync(bool includeExtension = false, AudioFileExtensionsType flag = AudioFileExtensionsType.Default)
|
||||
{
|
||||
int length = Constants.DirectoryPaths.FILENAME_LENGTH;
|
||||
string chars = Constants.DirectoryPaths.FILENAME_CHARACTERS;
|
||||
var extension = Icarus.Constants.FileExtensions.DEFAULT_AUDIO_EXTENSION;
|
||||
// var extension = Icarus.Constants.FileExtensions.DEFAULT_AUDIO_EXTENSION;
|
||||
var extension = this.DetermineFileExtension(flag);
|
||||
var filename = await Task.Run(() =>
|
||||
{
|
||||
return this.Generate(length, chars);
|
||||
});
|
||||
|
||||
return flag == 0 ? filename : $"{filename}{extension}";
|
||||
return includeExtension ? $"{filename}{extension}" : filename;
|
||||
}
|
||||
|
||||
private string DetermineFileExtension(AudioFileExtensionsType flag)
|
||||
{
|
||||
switch (flag)
|
||||
{
|
||||
case AudioFileExtensionsType.Default:
|
||||
return Constants.FileExtensions.DEFAULT_AUDIO_EXTENSION;
|
||||
case AudioFileExtensionsType.WAV:
|
||||
return Constants.FileExtensions.WAV_EXTENSION;
|
||||
case AudioFileExtensionsType.FLAC:
|
||||
return Constants.FileExtensions.FLAC_EXTENSION;
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
private string Generate(int length, string chars)
|
||||
@@ -119,3 +136,10 @@ public class Song
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
public enum AudioFileExtensionsType
|
||||
{
|
||||
Default = 0,
|
||||
WAV = 1,
|
||||
FLAC = 2
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user