Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

[wlx/wdx] TCMediaInfo
Goto page Previous  1, 2, 3 ... , 63, 64, 65  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Loopback



Joined: 07 Sep 2009
Posts: 1526

Post (Separately) Posted: Thu May 29, 2025 23:43    Post subject: Reply with quote

Для wlx так и есть. Посмотрим, если там никаких подводных камней нет, можно будет и для wdx включить обратно.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 772

Post (Separately) Posted: Fri May 30, 2025 00:03    Post subject: Reply with quote

Loopback
От идеи с переменной окружения вижу только плюсы. Во-первых, не нужно будет делать никаких опций в файле конфигурации. Во-вторых, фильтрацией можно будет легко и красиво управлять нажатием кнопки или выполнением команды. Допустим, переменная будет называться TC_MEDIAINFO_FORMATS и по умолчанию она будет включена. Тогда пользователю можно и даже нужно будет управлять ее состоянием через Autorun:
Code:
If TC_MEDIAINFO_FORMATS = 1 Then
   SetEnv TC_MEDIAINFO_FORMATS 0
   MsgBox("Фильтрация форматов отключена")
Else
   SetEnv TC_MEDIAINFO_FORMATS 1
   MsgBox("Фильтрация форматов включена")   
EndIf

Или искать другие пути воздействия на неё.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1526

Post (Separately) Posted: Fri May 30, 2025 01:08    Post subject: Reply with quote

Значит переменную придется дёргать на каждом файле. Нет, такого здесь я не хочу, равно как горячих клавиш, нажатых Ctrl и чего-то подобного. Я вообще не уверен, что стоит делать такую откровенно вредную опцию, чтобы под нее еще какую-то специальную обработку через переменные окружения вводить...
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 329

Post (Separately) Posted: Fri May 30, 2025 04:11    Post subject: Reply with quote

Loopback wrote:
Посмотрим, если там никаких подводных камней нет, можно будет и для wdx включить обратно.

Посмотрите, если не трудно. Хотелось-бы возможность и из TCMediaInfo перевод брать. В соответствии со справкой.
Orion9 wrote:
От идеи с переменной окружения вижу только плюсы.

Мне уже при смене языка пришлось решать вопрос бесконечного подергивания меню, которое не позволяло его открыть из-за постоянной проверки переменной. Опция самое то.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 772

Post (Separately) Posted: Fri May 30, 2025 13:51    Post subject: Reply with quote

Loopback wrote:
Значит переменную придется дёргать на каждом файле.

И что произойдёт, камень перегреется? ) Можно подумать, это мы дергать будем. Пусть об этом позаботится наш многоядерный друг и его кэш второго уровня.

В скорости, конечно, будет небольшое падение, но это вопрос миллисекунд, что, кстати, проверить можно. Вот мне и загорелось проверить и заодно и потестировать вашу новую функцию FileFind в Autorun:
 Hidden text

 Hidden text

Кнопка ищет все ".exe" в каталоге Program Files, размер которых от 1Мб до 2Мб, и выводит сообщение в MsgBox. CTRL - включает проверку переменной окружения %COMMANDER_EXE%, SHIFT - меняет каталог на Program Files (x86).

P.S. Важное уточнение. Делал, не для того, чтобы что-то доказать, а потому что стало интересно и пока появилась такая возможность.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 329

Post (Separately) Posted: Sat May 31, 2025 18:01    Post subject: Reply with quote

Наделал составных полей. Но вот V_AllDisplAspRt не удается создать, так как поля можно прописывать только из источника. А название колонки V_Orient можно прописать?
Code:
      <column name="V_DisplAspRtStr">V_DisplayAspectRatioStr</column>
      <column name="V_Orient" type="script">
      <![CDATA[
         Output:='';
         if V_DisplayAspectRatio <> '' then
         begin
            case V_DisplayAspectRatio of
               '0'..'0.999': Output:=GetLang('Portrait');
               '1.000':          Output:=GetLang('Square');
               else          Output:=GetLang('Landscape');
            end;
         end;
      ]]>
      </column>
      <column name="V_AllDisplAspRt" type="script">
      <![CDATA[
         Output:='';
         if (V_DisplayAspectRatioStr <> '') then Output:=Output+V_DisplayAspectRatioStr;
         if (V_Orient <> '') then Output:=Output+'/'+V_Orient;
      ]]>
      </column>
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1526

Post (Separately) Posted: Mon Jun 02, 2025 10:43    Post subject: Reply with quote

Нет, использование колонки в качестве источника не предусмотрено.

Видимо, будет проще всего добавить вспомогательную функцию в пользовательскую библиотеку (или создать свою библиотеку), тогда её можно будет использовать в разных колонках без повторения кода. Примерно так:

Code:

      <column name="V_DisplAspRtStr">V_DisplayAspectRatioStr</column>
      <column name="V_Orient" type="script">
      <![CDATA[
        uses 'UserFunc';
        Output := GetOrientation(V_DisplayAspectRatio);
      ]]>
      </column>
      <column name="V_AllDisplAspRt" type="script">
      <![CDATA[
        uses 'UserFunc';
         Output:='';
         if (V_DisplayAspectRatioStr <> '') then Output:=Output+V_DisplayAspectRatioStr;
         if (V_Orient <> '') then Output:=Output+'/'+GetOrientation(V_DisplayAspectRatio);
      ]]>
      </column>

    ...

    <funclib name="UserFunc">
   <![CDATA[
        function GetOrientation(nDisplayAspectRatio);
        begin
            if nDisplayAspectRatio<> '' then
            begin
                case nDisplayAspectRatio of
                   '0'..'0.999': Output:=GetLang('Portrait');
                   '1.000':          Output:=GetLang('Square');
                   else          Output:=GetLang('Landscape');
                end;
             end
             else
              Output:='';
        end;
     
   ]]>
    </funclib>   
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 329

Post (Separately) Posted: Mon Jun 02, 2025 10:54    Post subject: Reply with quote

Спасибо за подсказку. Попробую так сделать и позже выложу переделанный TCMediaInfo.xml для контекстной части.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 329

Post (Separately) Posted: Mon Jun 02, 2025 14:36    Post subject: Reply with quote

Уф, голову сломал, но заработало. Вместо Output в функции надо писать Result. Ну а остальное по мелочи, быстро догадался Smile

Добавлено спустя 2 часа 25 минут:

Переделал полностью контекстную часть файла настроек TCMediaInfo.xml. Главной целью было сделать отображение пользовательских колонок в соответствии с форматом вывода MediaInfo. Поэтому порядок колонок, их название полностью переделаны. Конечно большие исправлении и в составе колонок. Так как количество пользовательских колонок Гислером ограничено до 32 и длина данных тоже ограничена пришлось и это учесть при переделке. Поэтому все названия полей у меня новые. И много составных полей. Так что привожу все измененные файлы.
 TCMediaInfo.xml

В языковый файл я просто добавил свои данные.
 TCMediaInfo.lng

 CustomFields.ini

Обновил файлы 08.06.2025. Исправил ошибки. Добавил новые поля. В переводе из-за выявленной в ТС ошибки с локализацией файлов, перевод закомментирован. Если не будете менять данные, можно использовать перевод. Глючит только при редактировании. В информации по картинкам добавлены поля из других плагинов.


Last edited by AkulaBig on Sun Jun 08, 2025 16:21; edited 7 times in total
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 329

Post (Separately) Posted: Mon Jun 02, 2025 17:47    Post subject: Reply with quote

Думал на этом закончились мои разборки с TCMediaInfo, если не считать ожидания изменений в листерной части. Но теперь понял, что Image тоже надо делать через TCMediaInfo. Конечно придется дополнять инфу из других плагинов, как у меня в хинтах сделано. Но за основу надо брать MI.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 329

Post (Separately) Posted: Tue Jun 03, 2025 18:24    Post subject: Reply with quote

Loopback
Вот так можно было-бы записывать: <separator>Image<separator/>. Сложно такое сделать?
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1526

Post (Separately) Posted: Tue Jun 03, 2025 22:50    Post subject: Reply with quote

AkulaBig wrote:
Вот так можно было-бы записывать: <separator>Image<separator/>. Сложно такое сделать?

Если имеется в виду использовать картинку в качестве разделителя - да, сложно.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 329

Post (Separately) Posted: Tue Jun 03, 2025 23:38    Post subject: Reply with quote

Loopback wrote:
Если имеется в виду использовать картинку в качестве разделителя - да, сложно.

Ни в коем случае. Вставил просто слово, над которым сейчас работаю. Я имею ввиду текст вставить. Сейчас у нас при выборе полей из TCMediaInfo появляется список, разделенный -------- Это определяет <separator/> Я конечно в первом поле хотя-бы обозначаю Аудиоформат, Видеоформат, Общий формат. Но хотелось-бы оставить просто Формат. А секции разделять -----Общее---- -----Аудио---- ----Видео---- -------Картинка----- Так как названия многих полей одинаковы, без такой конкретики есть некоторые проблемы с ориентацией, из какого раздела поле вставить в колонку.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1526

Post (Separately) Posted: Wed Jun 04, 2025 12:12    Post subject: Reply with quote

AkulaBig
Теперь ясно. Технически это несложно, но не сработает.

Сейчас тотал формирует разделители, когда плагин возвращает поле с именем "-". Хотя это, кажется, не совсем документированная фича, во всяком случае в справке по плагинам про неё ни слова.

Так что разделитель легко сымитировать обычным объявлением колонки, и оно будет работать:

Code:
<column name="-"></column>


При добавлении любых других символов специальное значение имени теряется и получается обычное поле:

Code:
<column name="-Image"></column>
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 772

Post (Separately) Posted: Wed Jun 04, 2025 17:35    Post subject: Reply with quote

AkulaBig
Скачал сборку, посмотреть, что получилось.

Не уверен, что мне понравились названия полей формата G_*, V_* и A_*. Не могу сказать, что они хорошо смотрятся. Почему был сделан такой выбор и почему нельзя было оставить длинные названия полей? Например, название "Display aspect ratio" вместо V_DisplAspRtStr. По-моему, первый вариант смотрится лучше второго.

Есть составные поля, подводящие некий итог - V_AllDispl, A_AllBitRt или A_AllCh - но нет привычных полей All video as string и All audio as string, где раньше подводился итог по всему видео и аудио. При этом в ваших полях зачем-то используется слэш - 4:3/Ландшафтная/0.000; Constant/128 kb/s, когда, на мой взгляд, лучше было оставить запятую, как это было изначально сделано, т.е. AVC, 2.6 Мбит/с, 1440x1080, 50.000 к/с; CBR@127 kbps, 44100 Гц, 2 канала.

И кстати, добавьте в сборку WDX Guide, пользователям он тоже будет нужен, даже тем, кто им не пользуется.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... , 63, 64, 65  Next
Page 64 of 65

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group