Пишу о программировании, книгах, науке и жизни

Выводим температуру процессора Raspberry Pi 3 в интерфейс Kodi

18 июля 2017, 23:03

Понадобилось мне иметь под рукой показания температуры процессора во время воспроизведения. Все дальнейшие действия будут описаны для обложки Estuary медиацентра Kodi на операционной системе OSMC.

Все дополнения Kodi находятся в этом каталоге:

cd /usr/share/kodi/addons/

Каталоги с файлами обложек начинаются со слова «skin.», шаблоны лежат в папке «xml»

cd skin.estuary/xml

Так как я хотел вывести температуру процессора рядом со временем, я просто поискал по соответствующей строке «System.Time». Весь список подобных информационных меток можно найти на вики-ресурсе Kodi.

grep "System.Time" *.xml --color=auto

Нашлось два файла, Custom_1109_TopBarOverlay.xml — файл верхней панели, которая появляется при воспроизведении и Includes.xml, который отвечает за внешний вид, размер и расположение элементов управления по умолчанию, метка времени из этого файла отображается на домашней странице.

Для того, чтобы было интереснее выведем рядом в температурой процесса текущий FPS.

sudo nano Custom_1109_TopBarOverlay.xml

Нажимаем Ctrl+W и ищем метку System.Time

Отлично, вот здесь ниже и добавим наши новые элементы. Для экономии места сгруппируем их в горизонтальную группу.

<control type="group">

    <!-- Часы -->
    <visible>!Window.IsVisible(extendedprogressdialog)</visible>
    <animation effect="fade" time="150">VisibleChange</animation>
    <control type="label">
        <font>font_clock</font>
        <shadowcolor>text_shadow</shadowcolor>
        <top>0</top>
        <right>20</right>
        <height>200</height>
        <width>600</width>
        <align>right</align>
        <label>$INFO[System.Time]</label>
    </control>

    <!-- НАШ КУСОК КОДА -->
    <control type="grouplist">
        <!-- Группа будет горизонтальной -->
        <orientation>horizontal</orientation>
        <!-- Использовать координаты элемента управления в качестве местоположения -->
        <usecontrolcoords>true</usecontrolcoords>
        <!-- Отступ справа -->
        <right>24</right>
        <!-- Отступ сверху -->
        <top>130</top>
        <!-- Выравнивание -->
        <align>right</align>
        <!-- Ширина -->
        <width>500</width>
        <!-- Высота -->
        <height>100</height>
        <!-- Промежуток между элементами в списке -->
        <itemgap>15</itemgap>
        <!-- Надпись -->
        <control type="label">
            <width>auto</width>
            <height>100</height>
            <!-- Текст -->
            <label>FPS: $INFO[System.FPS]</label>
            <!-- Размер шрифта -->
            <font>font12</font>
            <!-- Тень от текста -->
            <shadowcolor>text_shadow</shadowcolor>
        </control>
        <control type="label">
            <width>auto</width>
            <height>100</height>
            <label>CPU: $INFO[System.CPUTemperature]</label>
            <font>font12</font>
            <shadowcolor>text_shadow</shadowcolor>
         </control>
    </control>
    <!--  // НАШ КУСОК КОДА -->
    
    <!-- Информация о времени окончания воспроизведения -->
    <control type="grouplist">
        <right>24</right>
        <top>90</top>
        <width>800</width>
        <height>100</height>
        <align>right</align>
        <itemgap>5</itemgap>
        <orientation>horizontal</orientation>
        <usecontrolcoords>true</usecontrolcoords>
        <control type="label">
            <label>$INFO[Player.FinishTime,$LOCALIZE[31080]: ]</label>
            <shadowcolor>text_shadow</shadowcolor>
            <height>100</height>
            <width>auto</width>
            <visible>!String.isempty(Player.Duration)</visible>
            <visible>Player.HasVideo</visible>
            <visible>!VideoPlayer.Content(LiveTV) | VideoPlayer.HasEpg</visible>
        </control>
        <control type="image">
            <top>2</top>
            <left>0</left>
            <width>60</width>
            <height>40</height>
            <fadetime>300</fadetime>
            <aspectratio aligny="center" align="right">keep</aspectratio>
            <texture>dialogs/volume/mute.png</texture>
            <visible>Player.Muted</visible>
        </control>
    </control>

</control>

Жмём Ctrl+X, затем вводим Y для сохранения, потом Enter и перезапустим Kodi для применения сделанных изменений:

sudo systemctl restart mediacenter

Смотрим, что получилось:

Дело сделано!
По аналогии можно также добавить любые необходимые элементы на главный экран через файл Includes.xml.

Поделиться
Запинить
Популярное