diff options
author | cvs2svn <admin@example.com> | 2009-10-21 00:02:02 +0000 |
---|---|---|
committer | cvs2svn <admin@example.com> | 2009-10-21 00:02:02 +0000 |
commit | 97a97ca3358eb48de3eb7a222e487e800566569f (patch) | |
tree | 97c920d0225a1c9773a3bce2207f261d7d230123 /tools/metainfo_menu.c | |
parent | a61961358c5a2ec92340b3f8e056bab55438f103 (diff) | |
download | xineliboutput-CVS.tar.gz xineliboutput-CVS.tar.bz2 |
This commit was manufactured by cvs2svn to create branch 'CVS'.CVS
Diffstat (limited to 'tools/metainfo_menu.c')
-rw-r--r-- | tools/metainfo_menu.c | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/tools/metainfo_menu.c b/tools/metainfo_menu.c deleted file mode 100644 index 4a31b18c..00000000 --- a/tools/metainfo_menu.c +++ /dev/null @@ -1,101 +0,0 @@ -/* - * metainfo_menu.c: Media file info menu - * - * See the main source file 'xineliboutput.c' for copyright information and - * how to reach the author. - * - * $Id: metainfo_menu.c,v 1.8 2009-08-18 10:35:45 phintuka Exp $ - * - */ - -#include "../features.h" - -#ifdef HAVE_LIBEXTRACTOR -# include <extractor.h> -#endif - -#include <vdr/status.h> -#include <vdr/i18n.h> - -#include "../config.h" - -#include "metainfo_menu.h" - - -// -// cMetainfoMenu -// - -cMetainfoMenu::cMetainfoMenu(cString Filename) : - cOsdMenu(Filename), - m_Filename(Filename) -{ - const char *Title = strrchr(Filename, '/'); - if(Title && *(Title+1)) - SetTitle(Title+1); -} - -cMetainfoMenu::~cMetainfoMenu() -{ -} - -void cMetainfoMenu::Display(void) -{ - cOsdMenu::Display(); - - char metadata[4096]; - metadata[0] = 0; - -#ifdef HAVE_LIBEXTRACTOR - EXTRACTOR_ExtractorList * plugins; - EXTRACTOR_KeywordList * md_list; - plugins = EXTRACTOR_loadDefaultLibraries(); - md_list = EXTRACTOR_getKeywords(plugins, m_Filename); - md_list = EXTRACTOR_removeEmptyKeywords (md_list); - md_list = EXTRACTOR_removeDuplicateKeywords(md_list, 0); - md_list = EXTRACTOR_removeKeywordsOfType(md_list, EXTRACTOR_THUMBNAILS); - - uint pos = 0; - int n; - while(md_list) { - const char *key = EXTRACTOR_getKeywordTypeAsString(md_list->keywordType); - if(key && pos < sizeof(metadata)) - if(0 < (n = snprintf(metadata+pos, sizeof(metadata)-pos, "%s: %s\n", key, md_list->keyword))) - pos += n; - md_list = md_list->next; - } - metadata[sizeof(metadata)-1] = 0; - - EXTRACTOR_freeKeywords(md_list); - EXTRACTOR_removeAll(plugins); /* unload plugins */ -#else - cString cmd; - if(xc.IsPlaylistFile(m_Filename)) - cmd = cString::sprintf("file -b '%s'; cat '%s'", *m_Filename, *m_Filename); - else if(xc.IsAudioFile(m_Filename)) - cmd = cString::sprintf("mp3info -x '%s' ; file -b '%s'", *m_Filename, *m_Filename); - else if(xc.IsVideoFile(m_Filename)) - cmd = cString::sprintf("file -b '%s'; midentify '%s'", *m_Filename, *m_Filename); - else if(xc.IsImageFile(m_Filename)) - cmd = cString::sprintf("file -b '%s'; identify '%s'", *m_Filename, *m_Filename); - else - cmd = cString::sprintf("file -b '%s'", *m_Filename); - - cPipe p; - if(p.Open(*cmd, "r")) { - int n = fread(metadata, 1, sizeof(metadata)-1, p); - if(n>0) { - metadata[n] = 0; - strreplace(metadata, ',', '\n'); - } - } -#endif - DisplayMenu()->SetText(metadata, false); - cStatus::MsgOsdTextItem(cString::sprintf("%s\n%s", tr("Metainfo"), *m_Filename)); -} - -eOSState cMetainfoMenu::ProcessKey(eKeys Key) -{ - eOSState state = cOsdMenu::ProcessKey(Key); - return state; -} |