Низкоуровневый SDK представляет собой систему сборки нативных приложений C/C++, а также сборок прошивок на базе CMake.
Для сборки прошивки на Ubuntu 14.04 LTS x64 нужно установить следующие пакеты:
sudo -i cd /etc/apt/sources.list.d echo "deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse" >ia32-libs-raring.list apt-get update apt-get install ia32-libs sudo apt-get install build-essential cmake squashfs-tools cramfsprogs lib32ncurses5 lib32tinfo5 lib32z1 openjdk-7-jre-headless zlibc zlib1g-dev qt5-default sudo dpkg-reconfigure dash #отключаем dash для работы сборочной системы
tar xzf tvip-sdk-multiplatform-XXXXXXXX.tgz cd tvip-sdk-multiplatform-XXXXXXXX/app/
В каталоге app необходимо разместить CMakeLists.txt для сборки собственного приложения. Если приложение собирается сторонней сборочной системой, в данный файл необходимо положить команды для установки необходимых файлов в прошивку. В файле CMakeLists.txt, накодящимся в SDK есть примеры различных вариантов сборки и установки приложений.
Для сборки прошивки под конкретную платформу необходимо выполнить следующие команды (применительно для платформы S500v).
make builddir-s500v cd build-s500v make platform-newrootfs install platform-firmware-ota
При сборке через систему CMake, входящую в SDK, необходимый компилятор и sysroot всегда доступны автоматически.
Для сборки через стороннюю систему, компилятор будет установлен в каталог ~/.tvip-download/
Sysroot с большим количеством системных библиотек доступен в каталоге sdk/builddir-s500v/sysroot/. Include-файлы системной библиотеки libtvip доступны в каталоге tvip-includes.
STBresourceHolder
Через этот класс происходит основная инициализация оборудования и осуществляется доступ к доступным объектам работы с оборудованием (графика, медиа, ввод).
STBDisplayInterface
Работа с дисплеем: инициализация, смена разрешения, управление CEC.
STBHDVideoFormat - управляет разрешением HDMI.
STBSDVideoFormat - управляет разрешением AV.
STBGraphicsInterface
Управляет взаимодействием с 2D графикой. Обратите внимание, что работа с 2D графикой не поддерживается в текущих приставках TVIP. Также этот класс используется для доступа к объекту OpenGLES
STBGraphicsGlEs20Interface
Абстрагирует работу с EGL. Для работы с OpenGLES приложение должно унаследовать дочерний класс FrameRenderer. Этот класс будет получать события инициализации/деинициализации OpenGL, а также событие на отрисовку следующего кадра.
Разрешение фреймбуффера для OpenGL всегда равно разрешения экрана ТВ. Соответственно, при смене разрешения происходит полная переинициализация EGL-контекстов с новыми параметрами.
STBPlayerInterface
Осуществляет всю работу с плеером. Плеер выполняется команды (play, pause, seek) в порядке очереди. Также плеер позволяет подписываться на различные события (начало проигрывания, EOF, стоп, и т.д.).
Пример использования большей части API плеера доступно в примере app/tests/test_play.cpp
STBCommandsInterface
Абстрагирует доступ к кнопочным устройствам ввода, независимо от типа. Поддерживает IR-пульты, USB-клавиатуры и HDMI-CEC. Для работы необходимо непосредственно добавить в класс нужный тип ИК-пульта (обычно - TvipUniversal) и USB клавиатуру (LinuxKeyboard).
Пример использования - app/tests/test_commands.cpp
STBFirmwareUpdater
Работа с прошивками в формате TVIP. В большинстве случаев необходимо создание собственного класса для работы с прошивками.
В приставках TVIP независимо от устрановленной ОС, используется система обновлений в формате ОС Android. Для установки обновлений используется ПО Android Recovery, находящееся на отдельном разделе.
Чтобы приставка единократно перезагрузилась в Android Recovery необходимо из Linux-системы выполнить команду reboot_tool recovery.
OTA-обновление для установки, а также команды для Recovery размещаются (в Linux-системе) в каталог /tmp/recovery/recovery
Наиболее простой способ устновки прошивки: использование утилиты updater.
#updater tvip_firmware.ota.zip