Показать сообщение отдельно
Старый 17.10.2011, 22:28   #283
MATPOC
Senior Member
 
Регистрация: 27.12.2010
Адрес: Междуреченск, Кемеровская обл.
Сообщений: 291
По умолчанию

Цитата:
Сообщение от PetrovSE Посмотреть сообщение
То MATPOC: Спасибо, вставлю чтение ответов.
Интересно, но в XBMC чтения ответа от lcdproc нет совсем.
Это ещё раз подтверждает мой тезис, что вывод на lcdproc писался давно и находится в зачаточном состоянии.

К сожалению, я в C++ не силён. Вы можете модифицировать вывод времени в режиме скринсейвера так, чтобы использовался стандартный механизм bignum lcdproc? Пример такой работы можно посмотреть в исходнике программы lcdproc clients/lcdproc/chrono.c, функция big_clock_screen().

Небольшие пояснения к коду функции big_clock_screen():

массив int pos[] задаёт такие смещения: { 1, 4, 8, 11, 15, 18 } исходя из определения, что "большая цифра" имеет ширину, равную трём обычным символам; после каждых двух цифр резервируется место для двоеточия.

int digits вычислят количество "больших цифр", которые поместятся на экране, для этого используется переменная драйвера lcd_wid - ширина экрана, которую можно взять из настроек XBMC.

int xoffs - первоначальное смещение от левого края для центрирования "больших цифр" на экранчике.

int heartbeat - для "моргания" двоеточия. "большая цифра" 10 - двоеточие, больше 10 - пробел.
__________________
Intel Core2 Duo, ASUS Nvidia GT220, GMC AVC M1, Linux // M8S+ Amlogic S805, Tronsmart Vega S96 Amlogic S912
MATPOC вне форума   Ответить с цитированием