Add alternative code to retrieve audio meta data using the media kit. Libtag seems to work for more formats...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39468 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#include <new>
|
#include <new>
|
||||||
|
|
||||||
|
#include <MediaFile.h>
|
||||||
#include <Path.h>
|
#include <Path.h>
|
||||||
|
|
||||||
#include <audioproperties.h>
|
#include <audioproperties.h>
|
||||||
@@ -24,7 +25,7 @@ AudioTagAnalyser::InitCheck()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
void
|
void
|
||||||
AudioTagAnalyser::AnalyseEntry(const entry_ref& ref)
|
AudioTagAnalyser::AnalyseEntry(const entry_ref& ref)
|
||||||
{
|
{
|
||||||
@@ -41,16 +42,43 @@ AudioTagAnalyser::AnalyseEntry(const entry_ref& ref)
|
|||||||
printf("artist: %s, title: %s, album: %s\n", artist.toCString(),
|
printf("artist: %s, title: %s, album: %s\n", artist.toCString(),
|
||||||
title.toCString(), album.toCString());
|
title.toCString(), album.toCString());
|
||||||
|
|
||||||
BFile file(path.Path(), B_READ_ONLY);
|
BFile file(&ref, B_READ_ONLY);
|
||||||
if (file.InitCheck() != B_OK)
|
if (file.InitCheck() != B_OK)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const char* cArtist = artist.toCString(true);
|
const char* cArtist = artist.toCString(true);
|
||||||
file.WriteAttr("Media:Artist", B_STRING_TYPE, 0, cArtist, strlen(cArtist));
|
file.WriteAttr("Audio:Artist", B_STRING_TYPE, 0, cArtist, strlen(cArtist));
|
||||||
const char* cTitle = title.toCString(true);
|
const char* cTitle = title.toCString(true);
|
||||||
file.WriteAttr("Media:Title", B_STRING_TYPE, 0, cTitle, strlen(cTitle));
|
file.WriteAttr("Media:Title", B_STRING_TYPE, 0, cTitle, strlen(cTitle));
|
||||||
const char* cAlbum = album.toCString(true);
|
const char* cAlbum = album.toCString(true);
|
||||||
file.WriteAttr("Media:Album", B_STRING_TYPE, 0, cAlbum, strlen(cAlbum));
|
file.WriteAttr("Audio:Album", B_STRING_TYPE, 0, cAlbum, strlen(cAlbum));
|
||||||
|
/*
|
||||||
|
BMediaFile mediaFile(&ref);
|
||||||
|
if (mediaFile.InitCheck() != B_OK)
|
||||||
|
return;
|
||||||
|
|
||||||
|
BMessage metaData;
|
||||||
|
if (mediaFile.GetMetaData(&metaData) != B_OK)
|
||||||
|
return;
|
||||||
|
|
||||||
|
BFile file(&ref, B_READ_ONLY);
|
||||||
|
if (file.InitCheck() != B_OK)
|
||||||
|
return;
|
||||||
|
|
||||||
|
BString dataString;
|
||||||
|
if (metaData.FindString("artist", &dataString) == B_OK)
|
||||||
|
file.WriteAttr("Audio:Artist", B_STRING_TYPE, 0, dataString.String(),
|
||||||
|
dataString.Length());
|
||||||
|
if (metaData.FindString("title", &dataString) == B_OK)
|
||||||
|
file.WriteAttr("Media:Title", B_STRING_TYPE, 0, dataString.String(),
|
||||||
|
dataString.Length());
|
||||||
|
if (metaData.FindString("album", &dataString) == B_OK)
|
||||||
|
file.WriteAttr("Audio:Album", B_STRING_TYPE, 0, dataString.String(),
|
||||||
|
dataString.Length());
|
||||||
|
if (metaData.FindString("track", &dataString) == B_OK)
|
||||||
|
file.WriteAttr("Audio:Track", B_STRING_TYPE, 0, dataString.String(),
|
||||||
|
dataString.Length());*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user