Working on #56

This commit is contained in:
kdeng00
2019-08-10 01:03:52 -04:00
parent 16f0c1aed0
commit 5b19cdaa46
2 changed files with 28 additions and 1 deletions
+4 -1
View File
@@ -7,6 +7,7 @@ using NLog;
using TagLib; using TagLib;
using Icarus.Models; using Icarus.Models;
using Icarus.Controllers.Managers;
namespace Icarus.Controllers.Utilities namespace Icarus.Controllers.Utilities
{ {
@@ -63,7 +64,9 @@ namespace Icarus.Controllers.Utilities
#region C++ Libs #region C++ Libs
[DllImport("libicarus.so")] [DllImport("libicarus.so")]
public static extern void retrieve_metadata(ref Icarus.Controllers.Managers.SongManager.Sng sng, string file_path); public static extern void retrieve_metadata(ref SongManager.Sng sng, string file_path);
[DllImport("libicarus.so")]
public static extern void update_metadata(ref SongManager.Sng sng_updated, ref SongManager.Sng sng_old);
#endregion #endregion
public byte[] RetrieveCoverArtBytes(Song song) public byte[] RetrieveCoverArtBytes(Song song)
+24
View File
@@ -10,6 +10,7 @@ extern "C"
{ {
void retrieve_metadata(Song*, char*); void retrieve_metadata(Song*, char*);
void update_metadata(Song*, Song*);
void retrieve_metadata(Song *sng, char* song_path) void retrieve_metadata(Song *sng, char* song_path)
{ {
@@ -24,5 +25,28 @@ void retrieve_metadata(Song *sng, char* song_path)
sng->Duration = file.audioProperties()->lengthInSeconds(); sng->Duration = file.audioProperties()->lengthInSeconds();
strcpy(sng->SongPath, song_path); strcpy(sng->SongPath, song_path);
} }
void update_metadata(Song *sng_updated, Song *sng_old)
{
std::cout<<"updating metadata"<<std::endl;
TagLib::FileRef file(sng_old->SongPath);
if (strlen(sng_updated->Title) > 0) {
file.tag()->setTitle(sng_updated->Title);
}
if (strlen(sng_updated->Artist) > 0) {
file.tag()->setArtist(sng_updated->Artist);
}
if (strlen(sng_updated->Album) > 0) {
file.tag()->setAlbum(sng_updated->Album);
}
if (strlen(sng_updated->Genre) > 0) {
file.tag()->setGenre(sng_updated->Genre);
}
if (sng_updated->Year > 0) {
file.tag()->setYear(sng_updated->Year);
}
file.save();
}
} }