void ImageView::UpdateLCD(const ThumbItem *item) { LCD *lcd = LCD::Get(); if (!lcd) return; if (!item) { lcd->setFunctionLEDs(FUNC_PHOTO, false); lcd->switchToTime(); return; } lcd->setFunctionLEDs(FUNC_PHOTO, true); QString name = item->GetName(); QString desc = QString::number(m_pos + 1) + " / " + QString::number(m_itemList.size()); QList<LCDTextItem> textItems; textItems.append(LCDTextItem( 1, ALIGN_CENTERED, name, "Generic", true)); textItems.append(LCDTextItem( 2, ALIGN_CENTERED, desc, "Generic", false)); lcd->switchToGeneric(textItems); }
void LCDServer::switchToGeneric(const QStringList &tokens, QTcpSocket *socket) { if (debug_level > 0) LOG(VB_GENERAL, LOG_INFO, "LCDServer: SWITCH_TO_GENERIC"); QString flat = tokens.join(" "); if ((tokens.count() - 1) % 5 != 0) { LOG(VB_GENERAL, LOG_ERR, "LCDServer: bad no. of args SWITCH_TO_GENERIC command: " + flat); sendMessage(socket, "HUH?"); return; } QList<LCDTextItem> items; for (int x = 1; x < tokens.count(); x += 5) { bool bOK; int row = tokens[x].toInt(&bOK); if (!bOK) { LOG(VB_GENERAL, LOG_ERR, "LCDServer: bad row no. in SWITCH_TO_GENERIC " "command: " + tokens[x]); sendMessage(socket, "HUH?"); return; } TEXT_ALIGNMENT align; if (tokens[x + 1] == "ALIGN_LEFT") align = ALIGN_LEFT; else if (tokens[x + 1] == "ALIGN_RIGHT") align = ALIGN_RIGHT; else if (tokens[x + 1] == "ALIGN_CENTERED") align = ALIGN_CENTERED; else { LOG(VB_GENERAL, LOG_ERR, "LCDServer: bad align in SWITCH_TO_GENERIC command: " + tokens[x + 1]); sendMessage(socket, "HUH?"); return; } QString text = tokens[x + 2]; QString screen = tokens[x + 3]; bool scrollable; if (tokens[x + 4] == "TRUE") scrollable = true; else if (tokens[x + 4] == "FALSE") scrollable = false; else { LOG(VB_GENERAL, LOG_ERR, "LCDServer: bad scrollable bool in SWITCH_TO_GENERIC " "command: " + tokens[x + 4]); sendMessage(socket, "HUH?"); return; } items.append(LCDTextItem(row, align, text, screen, scrollable)); } if (m_lcd) m_lcd->switchToGeneric(&items); sendMessage(socket, "OK"); }