From 60bd665e74cfeeaf70882173a0dd56c883e2014a Mon Sep 17 00:00:00 2001 From: "Suren A. Chilingaryan" Date: Fri, 12 Mar 2021 03:55:34 +0100 Subject: Added to git tree --- docs/patches/amarok.txt | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 docs/patches/amarok.txt (limited to 'docs/patches/amarok.txt') diff --git a/docs/patches/amarok.txt b/docs/patches/amarok.txt new file mode 100644 index 0000000..e2f6b5d --- /dev/null +++ b/docs/patches/amarok.txt @@ -0,0 +1,27 @@ +Amarok (1.4.8) устроен примерно следующим образом. Если мы имеем дело с +локальными файлами, то все тэги получаются через Taglib (в функции +MetaBundle::readTags из metabundle.cpp). + +Однако, taglib (1.5 и раньше) не умеет за тагами по сети лазить. По-этому +smb, nfs и т.п. обрабатываются по другому. +1. Во-первых в томже metabundle.cpp есть: + MetaBundle::init( const KFileMetaInfo& info ) + который может принимать тэги в некой KDEшной структуру. Подозреваю, что + это связано с KIO. Впрочем, неважно для SMB файлов эта функция не запускается. +2. Реально для smb файлов тэги ловятся функцией slotEngineMetaData (из + enginecontroller.cpp). Вызывается данная функция по приходу сигнала + "metaData". + + Насколько я понял, данный сигнал посылают всякие enginы, которые проигрывают + музыку для амарок. Типа engine/yauap, engine/xine и т.п. Вот видать они + читают тэги (криво, поскольку не с линкованы с taglib или еще чем с RusXMMS + патчем). + +3. Может еще чего есть ;) + + +Вообщем, резюме. Патчить надо либо эти движки, либо, что мне (на первый взгляд) +кажется проще, надо подцепится к slotEngineMetaData. Трабла там только в том, +что приходит туда тэги уже в UTF-8, некоректно перекодированном. Поэтому, +сначала надо конвертуть UTF-8 обратно в Latin1, а уже потом натравливать +librcc. Впрочем, перекодировку UTF->Latin тоже можно сделать через librcc. -- cgit v1.2.3