{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Копытов Иван: заметки с тегом lirc",
    "_rss_description": "Блог ленивого сисадмина",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/kini24.ru\/tags\/lirc\/",
    "feed_url": "https:\/\/kini24.ru\/tags\/lirc\/json\/",
    "icon": false,
    "authors": [
        {
            "name": "Копытов Иван",
            "url": "https:\/\/kini24.ru\/",
            "avatar": false
        }
    ],
    "items": [
        {
            "id": "181",
            "url": "https:\/\/kini24.ru\/all\/upravlenie-pleerom-vlc-s-pulta\/",
            "title": "Управление плеером VLC с пульта",
            "content_html": "<p><b>Предыстория<\/b>.<br \/>\nВсе началось с того, что меня попросили записать несколько мультсериалов на диски. Плеер оказался капризным, документация не соответствовала действительности, пришлось помучиться с подбором воспринимаемых им кодеков. В процессе захотелось посмотреть некоторые из этих сериалов — я начинал их смотреть в детстве, но до конца их так и не посмотрел. Серии короткие, в среднем по 20 минут, и вскакивать каждый раз, чтобы переключить на следующую, мне было лень. Поэтому на аукционе был приобретен универсальный пульт, который мне предстояло настроить на управление VLC.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/kini24.ru\/pictures\/ik-pult-vieta@2x.jpg\" width=\"220\" height=\"565\" alt=\"Пульт Vieta\" \/>\n<div class=\"e2-text-caption\">Вот такой вот симпатичный пульт<\/div>\n<\/div>\n<p>Я бы еще долго его «настраивал» по причине лени, но в прошедшую пятницу меня практически свалил с ног приступ хандроза. Нормально дышать я не мог — каждый вдох отдавался болью в груди, поэтому всякие физические нагрузки мне были противопоказаны. В субботу вспомнил про него и решил, что пора устроить себе постельный режим.<\/p>\n<p><b>Переходим к настройке<\/b>.<br \/>\nLirc у меня на компьютере уже был установлен, дело было только за настройкой пульта. В процессе выяснилось множество деталей, пульт тоже оказался немного «капризным», поэтому пришлось немного отойти от стандартного пути настройки. В итоге все выглядело следующим образом.<br \/>\nДля начала записываем коды клавиш пульта. Мне пришлось форсировать raw-режим записи:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># irrecord -f --device=\/dev\/lirc0<\/code><\/pre><p>Далее жмем Enter и немного ждем как просит программа. Вводим название пульта без пробелов, у меня это Vieta. Потом начинаем нажимать разные кнопки пульта с такой скоростью, чтобы появилась хотя бы одна точка и их было бы не больше 10. В результате irrecord определяет его параметры и затем начинается процесс ввода кнопок. Вводим название кнопки, затем, когда программа попросит, нажимаем саму кнопку. Названия лучше брать стандартные, узнать их можно выполнив следующую команду:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># irrecord -l<\/code><\/pre><p>После того как введена последняя кнопка, при запросе имени очередной кнопки нужно просто нажать Enter. Процесс записи завершен, о чем irrecord и проинформирует, указав имя файла, в который были записаны данные. Конечно, можно использовать и получившийся в результате файл (наверное), но выглядит он не очень эстетично, поэтому лучше привести его в более читабельный вид:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># irrecord -a Vieta.lircd.conf<\/code><\/pre><p>В конце выполнения этой команды будет предложено ввести имя файла, в который будет сохранен результат. Вводим имя и продолжаем.<br \/>\nПолучившийся в результате файл копируем в папку \/etc\/lirc\/lircd.conf.d. «Плюсом» в этой папке является то, что туда можно скопировать множество файлов от разных пультов и все они будут использоваться lirc. Перезапускаем службу:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># service lircd restart<\/code><\/pre><p>Половина работы сделана, осталось настроить VLC. Для этого нужно будет создать еще один файл, в который будут записаны действия, выполняемые в ответ на нажатие соответствующей кнопки. Этот файл один для множества программ, но меня пока что интересует только плеер. Формат у файла следующий:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">begin\n    button = KEY_PLAYPAUSE\n    prog = vlc\n    config = key-play-pause\nend<\/code><\/pre><p>Здесь <i>KEY_PLAYPAUSE<\/i> — это название кнопки из ранее созданного файла vieta.lircd.conf, <i>vlc<\/i> — название программы, а <i>key-play-pause<\/i> — действие в плеере. Список действий VLC можно посмотреть на вики проекта, но лучше использовать следующую команду:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">vlc -H --advanced 2&gt;&amp;1 |sed -n &#039;\/--key\/ {s\/^\\ *--\/\/; s\/^\\(.*\\) &lt;[^&gt;]*&gt;\\ *\\(.*\\)$\/\\2 -&gt; \\1\/; h}; \/^.*[^ ].*-&gt; key\/ p; \/^ -&gt; key\/ { n; s\/^[ \\t\\n]*\/\/M; G; s\/\\n\/\/; p}&#039;<\/code><\/pre><p>Далее, по документации к lirc нам нужно запустить программу irexec, которая и будет «нажимать» кнопки в системе в ответ на нажатие на пульте. Но, как оказалось в случае с VLC, нам она не нужна. Осталось только настроить сам плеер на удаленное управление. Запускаем его и идеи в настройки программы и в левом нижнем углу выбираем пункт «Все». Для начала включаем управление пультом<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/kini24.ru\/pictures\/vlc-lirc01@2x.png\" width=\"520\" height=\"413\" alt=\"Подключение lirc в VLC\" \/>\n<div class=\"e2-text-caption\">Подключение lirc в VLC<\/div>\n<\/div>\n<p>Затем указываем имя файла конфигурации. Он у меня называется .lircrc и лежит в домашнем каталоге. Чтобы он мне не мешался, я сделал его скрытым.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/kini24.ru\/pictures\/vlc-lirc02@2x.png\" width=\"520\" height=\"413\" alt=\"Путь к файлу lircrc\" \/>\n<div class=\"e2-text-caption\">Указываем полный путь к файлу lircrc<\/div>\n<\/div>\n<p>Всё, сохраняем настройки и перезапускаем плеер. Теперь можно пробовать управлять VLC с пульта.<br \/>\nСразу он у меня не заработал, пришлось проверять, что компьютер вообще принимает команды с пульта:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># irw<\/code><\/pre><p>Если после нажатия кнопки на пульте на экране появляются коды кнопок и их названия, которые были введены в файл vieta.lircd.conf, то пульт и приемник работают нормально. У меня реакции не было никакой, но после выполнения команды<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># mode2<\/code><\/pre><p>все странным образом заработало.<br \/>\nОсобо меня порадовала кнопка Language на пульте. На нее я повесил переключение звуковой дорожки. Например, в том же «Доктор Хауз» звуковых дорожек с русским переводом несколько, но нравится мне только один. С этой кнопкой не нужно заморачиваться каждый раз при переключении.<br \/>\nДа, весь процесс настройки немного муторный, нужно вводить много текста, но делается это один раз, поэтому придется потерпеть.<br \/>\nЕще одним «минусом» , с которым мне пришлось столкнутся — ИК-излучатель в моем пульте совсем чуть-чуть торчит из корпуса, вследствие чего угол, под которым можно управлять плеером, очень мал. Надо достаточно точно направлять пульт на приемник. Впрочем, это устранимо :-)<br \/>\nКстати, счастливые обладатели телефона с ИК-передатчиком, могут использовать его для управления плеером или вообще компьютером. Да, я знаю, что есть множество других программ для управления компьютером, но почему бы не использовать и такой вариант?<\/p>\n<p><b>P.S<\/b>. Пока искал как lirc различает короткое и длинное нажатие на клавишу пульта, наткнулся на недокументированный (по крайней мере, на официальном сайте его описание я не нашел) параметр <i>ignore_first_events<\/i>, который позволяет реализовать реакцию на долгое нажатие кнопки. В ходе тестирования оказалось, что сначала идет реакция на короткое нажатие, затем, если кнопка не была отпущена, то выполняется действие, запрограммированное на долгое. Чтобы было понятней, покажу на примере. Например, в файле lircrc заданы следующие секции:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">begin\n    button = KEY_FORWARD\n    prog = vlc\n    config = key-jump+short\nend\n\nbegin\n    button = KEY_FORWARD\n    prog = vlc\n    config = key-jump+medium\n    ignore_first_events = 10\nend<\/code><\/pre><p>Если зажать кнопку примерно на три секунды, то сначала выполнится первая секция — плеер переместится на 10 секунд вперед, затем, спустя 10 повторов от пульта, выполнится вторая секция — плеер перейдет на 60 секунд вперед. То есть, в сумме, плеер перейдет на 70 секунд вперед.<\/p>\n",
            "date_published": "2018-04-01T10:35:59+07:00",
            "date_modified": "2018-04-01T12:52:39+07:00",
            "tags": [
                "lirc",
                "vlc",
                "настройка",
                "пульт",
                "управление"
            ],
            "image": "https:\/\/kini24.ru\/pictures\/ik-pult-vieta@2x.jpg",
            "_date_published_rfc2822": "Sun, 01 Apr 2018 10:35:59 +0700",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "181",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": [
                    "https:\/\/kini24.ru\/pictures\/ik-pult-vieta@2x.jpg",
                    "https:\/\/kini24.ru\/pictures\/vlc-lirc01@2x.png",
                    "https:\/\/kini24.ru\/pictures\/vlc-lirc02@2x.png"
                ]
            }
        }
    ],
    "_e2_version": 4134,
    "_e2_ua_string": "Aegea 11.3 (v4134)"
}