TCMediaInfo 0.5 plugin for Total Commander ========================================================= Описание плагина ---------------- TCMediaInfo - контентный плагин для извлечения информации из видео и аудио файлов. Плагин использует библиотеку MediaInfo и поддерживает все форматы, которые поддерживаются библиотекой. Полный список форматов смотрите здесь: http://mediainfo.sourceforge.net/Support/Formats Требования ---------- Плагин тестировался на Total Commander 7.x и Total Commander 7.50 под Windows XP Professional SP3 (x86), но должен работать под Vista и Seven. В настоящее время только версия ANSI. Установка --------- Просто откройте wdx_tcmediainfo.zip в Total Commander для запуска автоматической установки. Использование ------------- Поскольку библиотека MediaInfo может извлекать множество информации, плагин сделан полностью настраиваемым и позволяет использовать практически любой параметр библиотеки MediaInfo. По-умолчанию несколько наиболее полезных параметров уже настроены в стандартной конфигурации. Конфигурирование колонок в Total Commander смотрите в документации на программу. Конфигурация ------------ Если вам нужна дополнительная информация, которой нет в стандартной конфигурации, придется отредактировать файл TCMediaInfo.ini и добавить свои параметры. В файле allfields.txt находится полный список свойств библиотеки. Если вы обновляете библиотеку до новой версии, запустите saveprops.bat чтобы обновить файл списка. [Settings] - основные настройки Formats - список поддерживаемых расширений, разделенных точкой с запятой. MultiSeparator - строка, которой будут разделены несколько результатов в одном поле (например, список языков звуковых дорожек в фильме). Если ваша строка содержит пробелы, заключите ее в кавычки. [Columns] - определения колонок В этой секции задаются пары значений, левая часть - английское название колонки, как она будет выглядет в TC, правая - параметр библиотеки MediaInfo, за которым опционально следует контекст и номер потока. Допустимо создавать несколько разных колонок, основанных на одном параметре библиотеки. В общем случае синтаксис следующий: TC_Column_Name=ML_Parameter_Name(Context#StreamID|All) TC_Column_Name - имя колонки TC ML_Parameter_Name - имя параметра MediaInfo Context - поскольку многие поля возвращают свою информацию для для разных типов объектов (контейнер, видео, аудио, и т.д.), и некоторые работают только для определенных типов контента, вам нужно задавать, для какого типа (в каком контексте) будет получена информация. Контекст задается в круглых скобках и может быть Video, Audio, Text, Chapters, Image и Menu. Если контекст опущен, будет извлекаться информация в контексте General (обычно это контейнер или общая информация, например, теги). StreamID - опционально, после контекста можно поместить знак # и за ним номер потока, для которого будет извлечена информация. Если вместо числа будет задано ключевое слово "All" - будет извлечена информация по всем доступным потокам в данном контексте (данные будут разделены строкой, заданной в ключе MultiSeparator). Ели вы хотите вставить разделитель в меню, формируемое TC, то поместите строку -=-. [TC_Column_Name] - имя колонки TC, если вы хотите переопределить получаемое из библиотеки значение Большинство полей не нуждаются в дополнительной обработке, но если вы хотите обработать получаемое значение самостоятельно (или хотите использовать единицы), вы можете использовать некоторые параметры. В этом случае создайте новую секцию с именем колонки, значение которой вы хотите дополнительно обрабатывать. OutType - тип вывода, в основном это нужно для форматов даты/времени: ft_datetime, ft_time и ft_date. По-умолчанию используется ft_string. Другие типы обрабатываются, но пока не тестировались :) DefaultExpr - выражение по-умолчанию для колонки (не используется, если заданы единицы). Вы можете использовать в нем арифметические и строчные выражения (см. приложение). Используйте переменную "var" в месте, где должен подставляться вывод MediaInfo. Unit<1..n> - имя единицы, например Bytes, Kbytes и т.д. Unit<1..n>Expr - выражение для вычисления значения единицы. Вы можете использовать в нем арифметические и строчные выражения (см. приложение). Используйте переменную "var" в месте, где должен подставляться вывод MediaInfo. Очевидно, что число единиц должно быть равно числу выражений. Обратите внимание, что специальная обработка, особенно сложные выражения, несколько замедляет работу плагина. Перевод ------- Для перевода используйте стандартный механизм TC. Посмотрите содержимое файла TCMediaInfo.lng, его содержимое очевидно. История версий -------------- Version 0.50 (2009-09-07) Первый релиз. Благодарности ------------- Christian Ghisler - за бесконечно мощный инструмент. Команде MediaInfo - за отличную библиотеку. Jan Tungli - за лёгкий и быстрый движок выражений TCalcul. Лицензия -------- Copyright (c) 2009 Dmitry Yudin Плагин распространяется бесплатно. А лицензии у нас все равно никто не читает :) Приложение ---------- Синтаксис движка выражений. _____________________________________________________________________ | Basic operations: | |=====================================================================| | numeric: x + y , x - y , x * y, x / y, x ^ y | | compare: x > y, x < y, x >= y, x <= y, x = y, x <> y | | ansi compare: s > t, s < t, s >= t, s <= t, s = t, s <> t | | boolean (1/0): a AND b, a OR b, NOT(a) | | set variable : x:=formula (or value) ; | | destroy variable: FreeVar(s); // s=variable name | | logical: ExistVar(s) // s=variable name | |_____________________________________________________________________| _____________________________________________________________________ | Type conversion: | |=====================================================================| | boolean (1/0): Logic(x) | | numeric: Numeric(s) | | string: String(x) | | char: Char(x) | | integer: Ascii(s) | | all types: Eval(f) // where f string is formula in [...] | | string : NumBase(x,base) // base from <2..16> | | integer: BaseNum(s,base) // base from <2..16> |_____________________________________________________________________| _____________________________________________________________________ | Math operations: | |=====================================================================| | numeric (integer): x Div y, x Mod y | |_____________________________________________________________________| _____________________________________________________________________ | Math functions: | |=====================================================================| | Abs(x), Frac(x), Trunc(x), Heaviside(x) or H(x), Sign(x), | | Sqrt(x), Ln(x), Exp(x), Round(x, y) | | Cos(x), CTg(x), Ch(x), CTh(x), Sin(x), Sh(x), Tg(x), Th(x), | | ArcSin(x), ArcCos(x), ArcTg(x), ArcCtg(x), | | MaxVal(x [,y, ...]), MinVal(x [,y, ...]), | | SumVal(x [,y,...]), AvgVal(x [,y, ...]) | |_____________________________________________________________________| _____________________________________________________________________ | String operations: | |=====================================================================| | s || t , | | s Like t, // (%,_) | | s Wildcard t // (*,?) | |_____________________________________________________________________| _____________________________________________________________________ | String functions: | |=====================================================================| | integer: Length(s), Pos(t,s) | | string: Trim(s), TrimLeft(s), TrimRight(s), Upper(s), Lower(s), | | Copy(s,x,[y]), CopyTo(s,x,[y]), Delete(s,x,[y]), | | Insert(s,t,x), | | Replace(s,t,v,[1/0=ReplaceAll,[1/0=IgnoreCase]] ), | | IFF(a,s,t); //IF a>=1 then Result:=s else Result:=t | | numeric: Eval(s) | |_____________________________________________________________________| _____________________________________________________________________ | Date & Time functions: | |=====================================================================| | integer: Year(s), Month(s), Day(s), WeekDay(s), | | Hour(s), Minute(s), Sec(s) | | numeric: StrToStamp(d) | | string: StampToStr(x), StampToDateStr(x), StampToTimeStr(x) | |_____________________________________________________________________|