diff options
59 files changed, 2038 insertions, 586 deletions
diff --git a/addons/skin.confluence/720p/DialogPeripheralManager.xml b/addons/skin.confluence/720p/DialogPeripheralManager.xml index 07954d0045..5717017a47 100644 --- a/addons/skin.confluence/720p/DialogPeripheralManager.xml +++ b/addons/skin.confluence/720p/DialogPeripheralManager.xml @@ -117,7 +117,7 @@ <posy>50</posy> <width>520</width> <height>20</height> - <label>$LOCALIZE[35501]: [COLOR=grey2]$INFO[ListItem.Property(Class)][/COLOR]</label> + <label>$LOCALIZE[35501]: [COLOR=grey2]$INFO[ListItem.Property(Class)][/COLOR] $LOCALIZE[19114]: [COLOR=grey2]$INFO[ListItem.Property(Version)][/COLOR]</label> <align>left</align> <aligny>center</aligny> <font>font12</font> @@ -173,7 +173,7 @@ <posy>50</posy> <width>520</width> <height>20</height> - <label>$LOCALIZE[35501]: [COLOR=grey2]$INFO[ListItem.Property(Class)][/COLOR]</label> + <label>$LOCALIZE[35501]: [COLOR=grey2]$INFO[ListItem.Property(Class)][/COLOR] $LOCALIZE[19114]: [COLOR=grey2]$INFO[ListItem.Property(Version)][/COLOR]</label> <align>left</align> <aligny>center</aligny> <font>font12</font> diff --git a/configure.in b/configure.in index d5ccdae515..08f54bb0e8 100755 --- a/configure.in +++ b/configure.in @@ -1258,7 +1258,7 @@ if test "x$use_libcec" != "xno"; then # libcec is dyloaded, so we need to check for its headers and link any depends. if test "x$use_libcec" != "xno"; then - PKG_CHECK_MODULES([CEC],[libcec >= 1.5.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)]) + PKG_CHECK_MODULES([CEC],[libcec >= 1.7.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)]) if test "x$use_libcec" != "xno"; then INCLUDES="$INCLUDES $CEC_CFLAGS" diff --git a/language/Afrikaans/strings.po b/language/Afrikaans/strings.po index 39176a33cb..30eeda4bd4 100644 --- a/language/Afrikaans/strings.po +++ b/language/Afrikaans/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "" - msgctxt "#36015" msgid "HDMI port number" msgstr "" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Arabic/strings.po b/language/Arabic/strings.po index 744ff47b16..8e0e952d66 100644 --- a/language/Arabic/strings.po +++ b/language/Arabic/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "وضع الأجهزة في وضع الاستعداد عند تنشيط شاشة التوقف" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "" - msgctxt "#36015" msgid "HDMI port number" msgstr "HDMI رقم منفذ" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "متصل" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "غير متوفر libcec تم العثور على الارتباط, ولكن" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Basque/strings.po b/language/Basque/strings.po index de12f5cd0d..1a209d10cb 100644 --- a/language/Basque/strings.po +++ b/language/Basque/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "" - msgctxt "#36015" msgid "HDMI port number" msgstr "" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Bosnian/strings.po b/language/Bosnian/strings.po index c53b110c6f..f6f461289c 100644 --- a/language/Bosnian/strings.po +++ b/language/Bosnian/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "" - msgctxt "#36015" msgid "HDMI port number" msgstr "" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Bulgarian/strings.po b/language/Bulgarian/strings.po index b6ab4f899f..c5ad76d061 100644 --- a/language/Bulgarian/strings.po +++ b/language/Bulgarian/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Сложи устройствата на стендбай, когато се активира скрийнсейвър" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "Не мога да открия порт CEC. Настройте ръчно." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "Не мога да открия адаптер CEC." msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "Неподдържана libcec интерфейс версия. %d е по-голяма от поддържаната от XBMC (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "Компютъра на стендбай, когато телевизора е изключен" - msgctxt "#36015" msgid "HDMI port number" msgstr "HDMI номер" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "Свързан" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "Адаптера е намерен, но libcec не е достъпен" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Catalan/strings.po b/language/Catalan/strings.po index a05364e832..8b04d73970 100644 --- a/language/Catalan/strings.po +++ b/language/Catalan/strings.po @@ -8823,59 +8823,55 @@ msgstr "Product ID" msgctxt "#36000" msgid "Pulse-Eight CEC adapter" -msgstr "Pulse-Eight CEC adapter" +msgstr "" msgctxt "#36001" msgid "Pulse-Eight Nyxboard" -msgstr "Pulse-Eight Nyxboard" +msgstr "" msgctxt "#36002" msgid "Switch to keyboard side command" -msgstr "Switch to keyboard side command" +msgstr "" msgctxt "#36003" msgid "Switch to remote side command" -msgstr "Switch to remote side command" +msgstr "" msgctxt "#36004" msgid "Press \"user\" button command" -msgstr "Press \"user\" button command" +msgstr "" msgctxt "#36005" msgid "Enable switch side commands" -msgstr "Enable switch side commands" +msgstr "" msgctxt "#36006" msgid "Could not open the adapter" -msgstr "Could not open the adapter" +msgstr "" msgctxt "#36007" msgid "Devices to power on when starting XBMC" -msgstr "Power on the TV when starting XBMC" +msgstr "" msgctxt "#36008" msgid "Devices to power off when stopping XBMC" -msgstr "Power off devices when stopping XBMC" +msgstr "" msgctxt "#36009" msgid "Put devices in standby mode when activating screensaver" -msgstr "Put devices in standby mode when activating screensaver" +msgstr "" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." -msgstr "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." +msgstr "" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." -msgstr "Could not detect the CEC adapter." +msgid "Could not initialise the CEC adapter. Please check your settings." +msgstr "" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" -msgstr "Unsupported libcec interface version. %d is greater than the version XBMC supports (%d)" - -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "Put this PC in standby mode when the TV is switched off" +msgstr "" msgctxt "#36015" msgid "HDMI port number" @@ -8886,12 +8882,12 @@ msgid "Connected" msgstr "Connectat" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "S'ha trobat un adaptador, però la libcec no està disponible" msgctxt "#36018" msgid "Use the TV's language setting" -msgstr "Use the TV's language setting" +msgstr "" msgctxt "#36019" msgid "Connected to HDMI device" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Chinese (Simple)/strings.po b/language/Chinese (Simple)/strings.po index 680cf70756..41c8cb641a 100644 --- a/language/Chinese (Simple)/strings.po +++ b/language/Chinese (Simple)/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "激活屏幕保护程序时设备进入待机状态" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "未检测到 CEC 端口。需人工设置。" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "无法初始化 CEC 适配器。请检查设置" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "不支持的 libcec 界面版本。%d 高于 XBMC 支持的版本(%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "电视关闭时本计算机进入待机状态" - msgctxt "#36015" msgid "HDMI port number" msgstr "HDMI 端口号" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "XBMC 已连接" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "发现适配器,但 libCEC 不可用" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "停止 XBMC 时发送“非活动源”命令" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Chinese (Traditional)/strings.po b/language/Chinese (Traditional)/strings.po index 680a8c36d6..12ac4a176c 100644 --- a/language/Chinese (Traditional)/strings.po +++ b/language/Chinese (Traditional)/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "螢幕保護啟動時讓裝置進入待機模式" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "無法偵測CEC連接埠。請手動設定。" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "無法偵測CEC配接器" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "不支援的 libcec 介面版本。 %d 大於XBMC支援的版本 (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "如果關掉這台電視,讓這台電腦進入待機模式" - msgctxt "#36015" msgid "HDMI port number" msgstr "HDMI連接埠編號" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "已連接" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "找到配接器,但無法取得 libcec" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Croatian/strings.po b/language/Croatian/strings.po index 6d985fc62d..f709a97d48 100644 --- a/language/Croatian/strings.po +++ b/language/Croatian/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "" - msgctxt "#36015" msgid "HDMI port number" msgstr "" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Czech/strings.po b/language/Czech/strings.po index ce2c13552b..9bac2a9553 100644 --- a/language/Czech/strings.po +++ b/language/Czech/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Uvést zařízení do pohotovostního režimu při aktivování spořiče obrazovky" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "Nepodařilo se najít CEC port. Nastavte jej ručně." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "Nepodařilo se najít CEC adaptér." msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "Nepodporovaná verze libcec rozhraní. %d je vyšší než verze podporovaná XBMC (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "Při vypnutí TV uspat tento počítač" - msgctxt "#36015" msgid "HDMI port number" msgstr "HDMI port" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "Připojeno" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "Adaptér byl nalezen, ale libcec není k dispozici" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "Poslat příkaz 'neaktivní zdroj' při vypnutí XMBC" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Danish/strings.po b/language/Danish/strings.po index 5998a2015c..8d647cfeb5 100644 --- a/language/Danish/strings.po +++ b/language/Danish/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "" - msgctxt "#36015" msgid "HDMI port number" msgstr "" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Dutch/strings.po b/language/Dutch/strings.po index 4a38853965..8fe073453a 100644 --- a/language/Dutch/strings.po +++ b/language/Dutch/strings.po @@ -8845,7 +8845,7 @@ msgstr "Keymap ingeschakeld" msgctxt "#35009" msgid "Do not use the custom keymap for this device" -msgstr "" +msgstr "Gebruik geen aangepaste keymap voor dit apparaat" msgctxt "#35500" msgid "Location" @@ -8908,21 +8908,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Schakel app. uit zolang de schermbeveiliging actief is" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "Kon de COM poort niet detecteren. Stel het manueel in." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." -msgstr "Kon de CEC adapter niet initialiseren." +msgid "Could not initialise the CEC adapter. Please check your settings." +msgstr "Kon de CEC adapter niet initialiseren. Controleer de instellingen." msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "Versie %d van de libCEC interface version wordt niet ondersteund door XBMC (> %d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "Zet XBMC in standby wanneer de TV uitgeschakeld wordt" - msgctxt "#36015" msgid "HDMI port number" msgstr "HDMI poort nummer" @@ -8932,8 +8928,8 @@ msgid "Connected" msgstr "Verbonden" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" -msgstr "Adapter gevonden, maar libCEC is niet beschikbaar" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." +msgstr "Kon de CEC adapter niet initialiseren: libCEC is niet gevonden op dit systeem." msgctxt "#36018" msgid "Use the TV's language setting" @@ -8967,3 +8963,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "Verstuur 'inactieve bron' commando bij het stoppen" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "Schakel apparatuur uit wanneer de PC in slaapstand gaat" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "Dit apparaat heeft onderhoud nodig" + +msgctxt "#36028" +msgid "Ignore" +msgstr "Negeer" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "Wanneer de TV uitgeschakeld wordt" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "Verbinding verbroken" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/English (US)/strings.po b/language/English (US)/strings.po index 2db10d0454..e06e74e30f 100644 --- a/language/English (US)/strings.po +++ b/language/English (US)/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "" - msgctxt "#36015" msgid "HDMI port number" msgstr "" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/English/strings.po b/language/English/strings.po index b665ba84a6..8efe7c8ddb 100644 --- a/language/English/strings.po +++ b/language/English/strings.po @@ -9361,20 +9361,18 @@ msgstr "" #empty string with id 36010 msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "" +#empty string with id 36014 msgctxt "#36015" msgid "HDMI port number" @@ -9386,7 +9384,7 @@ msgid "Connected" msgstr "" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "" msgctxt "#36018" @@ -9421,3 +9419,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Esperanto/strings.po b/language/Esperanto/strings.po index 3726e3a254..d9531a9116 100644 --- a/language/Esperanto/strings.po +++ b/language/Esperanto/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "" - msgctxt "#36015" msgid "HDMI port number" msgstr "" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Finnish/strings.po b/language/Finnish/strings.po index 47294752ab..3d1c9ca9e7 100644 --- a/language/Finnish/strings.po +++ b/language/Finnish/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Aseta laitteet valmiustilaan näytönsäästäjän aktivoituessa" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "CEC-porttia ei havaittu. Määritä se käsin." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "CEC-sovitinta ei havaittu." msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "Ei tuettu libcec-rajapinnan versio. %d on suurempi kuin versio, jota XBMC tukee (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "Aseta tämä tietokone valmiustilaan kun TV sammutetaan" - msgctxt "#36015" msgid "HDMI port number" msgstr "HDMI-liitin" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "Yhdistetty" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "Sovitin löytyi, mutta libcec ei ole saatavilla" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/French/strings.po b/language/French/strings.po index b3bf437b70..49fc9f0a08 100644 --- a/language/French/strings.po +++ b/language/French/strings.po @@ -8862,11 +8862,11 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Placer les dispositifs en veille si l'écran de veille est activé" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "Impossible de détecter le port CEC. Le paramétrer manuellement." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "Impossible de détecter l'adaptateur CEC." msgctxt "#36013" @@ -8886,7 +8886,7 @@ msgid "Connected" msgstr "Connecté" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "Adaptateur trouvé, mais libcec indisponible" msgctxt "#36018" @@ -8921,3 +8921,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/German/strings.po b/language/German/strings.po index 6bfacd91e1..a32b31b43a 100644 --- a/language/German/strings.po +++ b/language/German/strings.po @@ -8908,21 +8908,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Geräte in den Standby versetzen wenn der Bilschirmschoner aktiviert wird" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "Der CEC Port konnte nicht gefunden werden. Manuell einstellen." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "Der CEC Adapter konnte nicht initialisiert werden. Bitte Einstellungen prüfen!" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "Nicht unterstützte libCEC Version. %d ist größer als die von XBMC unterstützte Version (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "PC in den Standby versetzen wenn der Fernseher ausgeschaltet wird" - msgctxt "#36015" msgid "HDMI port number" msgstr "HDMI Port Nummer" @@ -8932,7 +8928,7 @@ msgid "Connected" msgstr "Verbunden" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "CEC Adapter gefunden, aber libCEC ist nicht verfügbar" msgctxt "#36018" @@ -8967,3 +8963,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "Sende 'inaktive Quelle' wenn XBMC beendet wird" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Greek/strings.po b/language/Greek/strings.po index bb09046568..8890ffd6ed 100644 --- a/language/Greek/strings.po +++ b/language/Greek/strings.po @@ -8908,21 +8908,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Συσκευές σε κατάσταση αναμονής κατά την προφύλαξη οθόνης" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "Δεν εντοπίστηκε η θύρα CEC. Ρυθμίστε την χειροκίνητα." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "Ο προσαρμογέας CEC δεν εκκίνησε. Ελέγξτε τις ρυθμίσεις σας." msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "Μη υποστηριζόμενη έκδοση libCEC. Η %d είναι μεγαλύτερη από την έκδοση που το XBMC υποστηρίζει (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "Ο υπολογιστής σε κατάσταση αναμονής όταν κλείσει η τηλεόραση" - msgctxt "#36015" msgid "HDMI port number" msgstr "Αριθμός θύρας HDMI" @@ -8932,7 +8928,7 @@ msgid "Connected" msgstr "Συνδεδεμένη" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "O προσαρμογέας εντοπίσθηκε, αλλά η libCEC δεν είναι διαθέσιμη" msgctxt "#36018" @@ -8967,3 +8963,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "Αποστολή εντολής 'ανενεργή πηγή' κατά τον τερματισμό του XBMC" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Hebrew/strings.po b/language/Hebrew/strings.po index 7450bcef73..6535b062be 100644 --- a/language/Hebrew/strings.po +++ b/language/Hebrew/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "הכנס את ההתקנים למצב שינה כאשר מפעילים שומר מסך" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "אין אפשרות לזהות פורט CEC. הגדר זאת ידנית." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "אין אפשרות לאתחל מתאם CEC. בדוק את ההגדרות שלך" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "ממשק libCEC לא נתמך. %d גדול יותר מאשר הגרסא ש- XBMC תומך (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "הכנס את המחשב למצב המתנה כאשר הטלוויזיה נכבית" - msgctxt "#36015" msgid "HDMI port number" msgstr "מספר פורט HDMI" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "מחובר" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "מתאם נמצא. אבל libCEC לא זמין" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "שלח פקודת 'מקור לא פעיל' כאשר עוצרים את XBMC" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Hindi (Devanagiri)/strings.po b/language/Hindi (Devanagiri)/strings.po index a53c6f0c50..26a86761c5 100644 --- a/language/Hindi (Devanagiri)/strings.po +++ b/language/Hindi (Devanagiri)/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "" - msgctxt "#36015" msgid "HDMI port number" msgstr "" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Hungarian/strings.po b/language/Hungarian/strings.po index 2792e72c45..3c976faad8 100644 --- a/language/Hungarian/strings.po +++ b/language/Hungarian/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Képernyővédő bekapcsolásával az eszközöket készenléti módba helyezni" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "A CEC csatlakozó nem található. Állítsd be manuálisan." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "A CEC adapter nem található." msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "Nem támogatott libcec csatoló verzió. %d nagyobb mint amit az XBMC támogat (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "A Média Center készenléti módba helyezése, a TV kikapcsolásával" - msgctxt "#36015" msgid "HDMI port number" msgstr "HDMI csatlakozó száma" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "Csatlakozva" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "Az adaptert megtaláltam, de a libcec nem elérhető" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Icelandic/strings.po b/language/Icelandic/strings.po index adfbb1e3a8..80d97d3a45 100644 --- a/language/Icelandic/strings.po +++ b/language/Icelandic/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Setja tæki í biðstöðu þegar skjávari er virkur" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "Fann ekki CEC gátt. Settu það upp handvirkt." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "Fann ekki CEC tengispjald." msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "Þessi útgáfa af libcec er ekki studd. %d er hærri en útgáfan sem XBMC styður (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "Setja tölvuna í biðstöðu þegar slökkt er á sjónvarpinu" - msgctxt "#36015" msgid "HDMI port number" msgstr "HDMI gátt" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "Tengdur" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "Fann tengispjald, en libcec er ekki tiltækt" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Indonesian/strings.po b/language/Indonesian/strings.po index af68341bf0..c2006fa1f9 100644 --- a/language/Indonesian/strings.po +++ b/language/Indonesian/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "" - msgctxt "#36015" msgid "HDMI port number" msgstr "" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Italian/strings.po b/language/Italian/strings.po index eadd9af60f..fafdf52a5a 100644 --- a/language/Italian/strings.po +++ b/language/Italian/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Imposta il dispositivo in stanby all'attivazione dello screensaver" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "Impossibile trovare la porta CEC. Impostala manualmente." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "Impossibile connettersi all'adattatore CEC." msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "Versione interfaccia libcec non supportata. %d è maggiore della versione supportata da XBMC (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "Metti il pc in standby quando la TV viene spenta" - msgctxt "#36015" msgid "HDMI port number" msgstr "Numero porta HDMI" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "Connesso" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "Adattatore trovato, ma libcec non è disponibile" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Japanese/strings.po b/language/Japanese/strings.po index d911fedf52..2b78523987 100644 --- a/language/Japanese/strings.po +++ b/language/Japanese/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "スクリーンセーバー動作中にデバイスをスタンバイモードにする" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "CEC ポートが検出できませんでした。手動で設定してください。" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "CEC アダプタの初期化に失敗しました。設定を見直してください。" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "この libCEC インターフェースバージョンは未サポートです。%d は、XBMC がサポートするバージョン %d より大きいバージョン番号です。" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "TV の電源が落とされたら PC をスタンバイモードにする" - msgctxt "#36015" msgid "HDMI port number" msgstr "HDMI ポート番号" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "接続完了" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "アダプタはありますが libCEC がありません" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "XBMC 終了時に'非アクティブソース'コマンドを送信" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Korean/strings.po b/language/Korean/strings.po index a58f9a6fd7..ea3e2d0481 100644 --- a/language/Korean/strings.po +++ b/language/Korean/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "화면보호기 작동시 장치를 대기모드로 설정" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "CEC 포트를 찾을 수 없습니다. 수동으로 설정하세요." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "CEC 어댑터를 찾을 수 없음." msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "지원하지 않는 libcec 인터페이스 버전입니다. %d 가 XBMC가 지원하는 버전보다 높습니다 (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "TV가 꺼지면 PC를 대기모드로 전환" - msgctxt "#36015" msgid "HDMI port number" msgstr "HDMI 포트 번호" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "연결됨" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "어댑터가 확인되었으나 libcec를 사용할 수 없습니다" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Lithuanian/strings.po b/language/Lithuanian/strings.po index 2234ae5ca3..1314144563 100644 --- a/language/Lithuanian/strings.po +++ b/language/Lithuanian/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Patalpinkite prietaisus laukimo režime, kai aktyvi ekrano užsklanda" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "Nepavyko aptikti CEC prievado. Nustatyti jį rankiniu būdu." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "Nepavyko aptikti CEC adapterio." msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "Nepalaikomas 'libec' sąsajos versija.%d atsisiuskite naujesnę XBMC versiją (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "Kompiuterį budėjimo režimu, kai televizorius yra išjungtas" - msgctxt "#36015" msgid "HDMI port number" msgstr "HDMI prievado numeris" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "Sujungtas" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "Adapteris rastas, bet Libcec nėra" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Maltese/strings.po b/language/Maltese/strings.po index 7da739dfec..f178a08277 100644 --- a/language/Maltese/strings.po +++ b/language/Maltese/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "" - msgctxt "#36015" msgid "HDMI port number" msgstr "" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Norwegian/strings.po b/language/Norwegian/strings.po index 3f8fca0cf3..0948d2ccc6 100644 --- a/language/Norwegian/strings.po +++ b/language/Norwegian/strings.po @@ -8908,21 +8908,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "" - msgctxt "#36015" msgid "HDMI port number" msgstr "" @@ -8932,7 +8928,7 @@ msgid "Connected" msgstr "" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "" msgctxt "#36018" @@ -8967,3 +8963,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Polish/strings.po b/language/Polish/strings.po index e7a4ae6c91..6d2d18af19 100644 --- a/language/Polish/strings.po +++ b/language/Polish/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Włącz tryb czuwania w urządzeniach, kiedy aktywny jest wygaszacz ekranu" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "Nie mogę wykryć portu CEC. Ustaw go ręcznie." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "Nie mogę wykryć adaptera CEC." msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "Nieaktualna wersja interfejsu libcec. %d jest wyższy niż wersja wspierana przez XBMC (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "Włącz tryb czuwania tego PC, kiedy TV jest wyłączony" - msgctxt "#36015" msgid "HDMI port number" msgstr "Numer portu HDMI" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "Połączono" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "Znaleziono adapter, ale brak biblioteki libcec" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Portuguese (Brazil)/strings.po b/language/Portuguese (Brazil)/strings.po index 4d8d7e345c..639daf8a00 100644 --- a/language/Portuguese (Brazil)/strings.po +++ b/language/Portuguese (Brazil)/strings.po @@ -8910,21 +8910,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Colocar os equipamentos em modo de espera quando ativando proteção de tela" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "Não pude detectar a porta CEC. Seta manualmente." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "Não pude detectar o adaptador CEC." msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "Versãod libcec da interface não suportada. %d é superior a versão que o XBMC suporta (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "Passar este PC para modo standby, quando a TV for desligada" - msgctxt "#36015" msgid "HDMI port number" msgstr "Número da porta HDMI" @@ -8934,7 +8930,7 @@ msgid "Connected" msgstr "Conectado" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "Adaptador encontrado, mas libcec não esta disponível" msgctxt "#36018" @@ -8969,3 +8965,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "Envie comando 'fonte inativa' quando parando XBMC" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Portuguese/strings.po b/language/Portuguese/strings.po index 5fc1e81d28..07084a2602 100644 --- a/language/Portuguese/strings.po +++ b/language/Portuguese/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "" - msgctxt "#36015" msgid "HDMI port number" msgstr "" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Romanian/strings.po b/language/Romanian/strings.po index 9e09edddf0..4e5eef6408 100644 --- a/language/Romanian/strings.po +++ b/language/Romanian/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Pune dispozitivele în modul repaus când protector ecran este activat" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "Portul CEC nu poate fi detectat. Setați-l manual." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "Adaptorul CEC nu poate fi detectat." msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "Versiune interfață libcec nesuportată. %d este mai mare decât versiunea pe care XBMC o suportă (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "Pune acest calculator în repaus când televizorul este oprit" - msgctxt "#36015" msgid "HDMI port number" msgstr "Număr port HDMI" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "Conectat" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "Adaptor găsit, dar librăria libcec nu este disponibilă" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Russian/strings.po b/language/Russian/strings.po index cec923be9b..f248b07eb7 100644 --- a/language/Russian/strings.po +++ b/language/Russian/strings.po @@ -8908,21 +8908,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Переводить устройства в спящий режим при активной заставке" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "Не удалось обнаружить порт CEC. Настройте его вручную." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "Не удалось инициализировать адаптер CEC. Проверьте настройки." msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "Неподдерживаемая версия интерфейса libCEC. %d выше, чем версия, поддерживаемая XBMC (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "Переводить этот ПК в режим ожидания при выключении ТВ" - msgctxt "#36015" msgid "HDMI port number" msgstr "Номер порта HDMI" @@ -8932,7 +8928,7 @@ msgid "Connected" msgstr "Подключено" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "Адаптер найден, но libCEC недоступен" msgctxt "#36018" @@ -8967,3 +8963,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "Посылать команду \"источник неактивен\" при выходе из XBMC" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Serbian (Cyrillic)/strings.po b/language/Serbian (Cyrillic)/strings.po index d4052a1cde..a8f470620e 100644 --- a/language/Serbian (Cyrillic)/strings.po +++ b/language/Serbian (Cyrillic)/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "" - msgctxt "#36015" msgid "HDMI port number" msgstr "" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Serbian/strings.po b/language/Serbian/strings.po index c58d15bdf0..192d07d056 100644 --- a/language/Serbian/strings.po +++ b/language/Serbian/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "" - msgctxt "#36015" msgid "HDMI port number" msgstr "" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Slovak/strings.po b/language/Slovak/strings.po index 87706e0b9b..4773ff4ab8 100644 --- a/language/Slovak/strings.po +++ b/language/Slovak/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Aktivovať pohotovostný režim zariadení pri spustení šetriča obrazovky" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "Nepodarilo sa zistiť CEC port. Nastavte ho manuálne." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "Nepodarilo sa zistiť CEC adaptér." msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "Nepodporovaná verzia libcec rozhrania. %d je vyššia ako XBMC podporuje (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "Aktivovať pohotovstný režim PC pri vypnutí TV" - msgctxt "#36015" msgid "HDMI port number" msgstr "HDMI portu" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "Pripojené" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "Adaptér nájdený, libcec nie je dostupný" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Slovenian/strings.po b/language/Slovenian/strings.po index b9107a2e17..0146f620e6 100644 --- a/language/Slovenian/strings.po +++ b/language/Slovenian/strings.po @@ -8908,21 +8908,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Postavi naprave v stanje pripravljenosti ob ohranjevalniku zaslona" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "Ni mogoče zaznati vrat CEC. Nastavite jih ročno." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "Ni mogoče zaznati adapterja CEC." msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "Nepodprta različica libcec. %d je višja, kot jo podpira XBMC (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "Postavi računalnik v stanje pripravljenosti, ko se ugasne TV" - msgctxt "#36015" msgid "HDMI port number" msgstr "Št. vrat HDMI" @@ -8932,7 +8928,7 @@ msgid "Connected" msgstr "XBMC povezan" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "Vmesnik najden, toda libcec ni na voljo" msgctxt "#36018" @@ -8967,3 +8963,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "Pošlji ukaz 'neaktiven vir' ob izhodu iz XBMC" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Spanish (Mexico)/strings.po b/language/Spanish (Mexico)/strings.po index f2a07134a7..48ed30672c 100644 --- a/language/Spanish (Mexico)/strings.po +++ b/language/Spanish (Mexico)/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Poner dispositivos en standby cuando se active el refrescapantallas" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "No se pudo detectar puerto CEC. Configurelo manualmente." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "No se pudo detectar adaptador CEC." msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "Versión de interface libcec no soportada. %d es mayor que la versión soportada por XBMC (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "Poner esta PC en standby cuando se apage la TV" - msgctxt "#36015" msgid "HDMI port number" msgstr "puerto HDMI" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "Connectado" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "Adaptador encontrado, pero libcec no está disponible" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Spanish/strings.po b/language/Spanish/strings.po index 8cdc01ed53..673b887151 100644 --- a/language/Spanish/strings.po +++ b/language/Spanish/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Poner dispositivos en standby cuando se active el salvapantallas" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "No se pudo detectar puerto CEC. Configúrelo manualmente." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "No se pudo iniciar el adaptador CEC. Revise la configuración." msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "Versión de interfaz libCEC no soportada. %d es mayor que la versión soportada por XBMC (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "Poner este PC en standby cuando se apaga la TV" - msgctxt "#36015" msgid "HDMI port number" msgstr "Número de puerto HDMI" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "Conectado" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "Adaptador encontrado, pero libCEC no está disponible" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "Enviar comando 'fuente inactiva' al detener XBMC" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Swedish/strings.po b/language/Swedish/strings.po index 02708ce5e2..a83715eaf7 100644 --- a/language/Swedish/strings.po +++ b/language/Swedish/strings.po @@ -8908,21 +8908,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Ställ enheter i standbyläge när skärmsläckaren aktiveras" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "Kunde inte hitta CEC-porten. Ställ in den manuellt" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "Kunde inte hitta CEC-adaptern" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "Ostödd libcec-gränssnittsversion. %d är nyare än versionen XBMC stödjer (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "Ställ denna PC i standbyläge när TVn stängs av" - msgctxt "#36015" msgid "HDMI port number" msgstr "HDMI-portnummer" @@ -8932,7 +8928,7 @@ msgid "Connected" msgstr "Ansluten" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "Adapter hittat, men libcec är inte tillgänglig" msgctxt "#36018" @@ -8967,3 +8963,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "Skicka 'inaktiv källa' kommandot när XBMC stoppas" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Thai/strings.po b/language/Thai/strings.po index 4a2f2565f6..9d5b676cbe 100644 --- a/language/Thai/strings.po +++ b/language/Thai/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "" msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "" msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "" - msgctxt "#36015" msgid "HDMI port number" msgstr "" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Turkish/strings.po b/language/Turkish/strings.po index d607c99763..3b79d10430 100644 --- a/language/Turkish/strings.po +++ b/language/Turkish/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Ekran koruyucu devreye girince aygıtı bekleme moduna geçir" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "CEC portu algılanamadı. El ile ayarla." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "CEC bağdaştırıcısı algılanamadı." msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "Desteklenmeyen libcec arabirim sürümü. %d is greater than the version XBMC supports (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "Televizyon kapatılınca bilgisayarı bekleme moduna geçir" - msgctxt "#36015" msgid "HDMI port number" msgstr "HDMI port numarası" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "Bağlandı" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "Bağdaştırıcı bulundu, fakat libcec kullanılamıyor" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "XBMC durdurulunca 'etkin olmayan kaynak' komutu yolla" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/language/Ukrainian/strings.po b/language/Ukrainian/strings.po index a4a3aa9104..5495972f5b 100644 --- a/language/Ukrainian/strings.po +++ b/language/Ukrainian/strings.po @@ -8862,21 +8862,17 @@ msgid "Put devices in standby mode when activating screensaver" msgstr "Переводити аудіопристрої в режим сну при активній заставці" msgctxt "#36011" -msgid "Could not detect the CEC port. Set it up manually." +msgid "Could not detect the CEC com port. Set it up manually." msgstr "Не вдалося виявити порт CEC. Налаштуйте його вручну." msgctxt "#36012" -msgid "Could not initialise the CEC adapter. Check your settings." +msgid "Could not initialise the CEC adapter. Please check your settings." msgstr "Не вдалося ініціалізувати адаптер CEC. Перевірте налаштування." msgctxt "#36013" msgid "Unsupported libCEC interface version. %d is greater than the version XBMC supports (%d)" msgstr "Непідтримувана версія інтерфейсу libCEC. %d вище, ніж версія, підтримувана XBMC (%d)" -msgctxt "#36014" -msgid "Put this PC in standby mode when the TV is switched off" -msgstr "Переводити цей ПК у режим очікування при вимкненні ТБ" - msgctxt "#36015" msgid "HDMI port number" msgstr "Номер порту HDMI" @@ -8886,7 +8882,7 @@ msgid "Connected" msgstr "Підключено" msgctxt "#36017" -msgid "Adapter found, but libCEC is not available" +msgid "Could not initialise the CEC adapter: libCEC was not found on your system." msgstr "Адаптер знайдено, але libCEC недоступний" msgctxt "#36018" @@ -8921,3 +8917,31 @@ msgctxt "#36025" msgid "Send 'inactive source' command when stopping XBMC" msgstr "Посилати команду \"джерело неактивне\" при виході з XBMC" +msgctxt "#36026" +msgid "Put devices in standby mode when putting the PC in standby" +msgstr "" + +msgctxt "#36027" +msgid "This device needs servicing" +msgstr "" + +msgctxt "#36028" +msgid "Ignore" +msgstr "" + +msgctxt "#36029" +msgid "When the TV is switched off" +msgstr "" + +msgctxt "#36030" +msgid "Connection lost" +msgstr "" + +msgctxt "#36031" +msgid "This user does not have permissions to open the CEC adapter" +msgstr "" + +msgctxt "#36032" +msgid "The port is busy. Only one program can access the CEC adapter" +msgstr "" + diff --git a/project/BuildDependencies/scripts/libcec_d.bat b/project/BuildDependencies/scripts/libcec_d.bat index 86a2797ec8..0b41b8a8ec 100644 --- a/project/BuildDependencies/scripts/libcec_d.bat +++ b/project/BuildDependencies/scripts/libcec_d.bat @@ -11,6 +11,5 @@ mkdir "%CUR_PATH%\include\libcec" xcopy libcec\include\* "%CUR_PATH%\include\libcec\." /E /Q /I /Y copy libcec\libcec.dll "%XBMC_PATH%\system\." -copy libcec\pthreadVC2.dll "%XBMC_PATH%\system\." cd %LOC_PATH% diff --git a/project/BuildDependencies/scripts/libcec_d.txt b/project/BuildDependencies/scripts/libcec_d.txt index c9718f56ee..5bead42f9a 100644 --- a/project/BuildDependencies/scripts/libcec_d.txt +++ b/project/BuildDependencies/scripts/libcec_d.txt @@ -1,3 +1,3 @@ ; filename source of the file -libcec-1.5.2.zip http://mirrors.xbmc.org/build-deps/win32/ +libcec-1.7.1.zip http://mirrors.xbmc.org/build-deps/win32/ diff --git a/system/peripherals.xml b/system/peripherals.xml index c6852f7b03..488dd02ddc 100644 --- a/system/peripherals.xml +++ b/system/peripherals.xml @@ -14,13 +14,14 @@ <setting key="wake_devices" type="string" value="0" label="36007" order="3" /> <setting key="standby_devices" type="string" value="0" label="36008" order="4" /> <setting key="cec_standby_screensaver" type="bool" value="1" label="36009" order="5" /> - <setting key="standby_pc_on_tv_standby" type="bool" value="1" label="36014" order="6" /> - <setting key="send_inactive_source" type="bool" value="1" label="36025" order="7" /> - <setting key="use_tv_menu_language" type="bool" value="1" label="36018" order="8" /> - <setting key="physical_address" type="string" label="36021" value="0" order="9" /> - <setting key="cec_hdmi_port" type="int" value="1" min="1" max="16" label="36015" order="10" /> - <setting key="connected_device" type="int" label="36019" value="0" min="0" max="15" step="1" order="11" /> - <setting key="port" type="string" value="" label="36022" order="12" /> + <setting key="standby_pc_on_tv_standby" type="enum" value="13011" label="36029" order="6" lvalues="36028|13005|13011" /> + <setting key="standby_tv_on_pc_standby" type="bool" value="1" label="36026" order="7" /> + <setting key="send_inactive_source" type="bool" value="1" label="36025" order="8" /> + <setting key="use_tv_menu_language" type="bool" value="1" label="36018" order="9" /> + <setting key="physical_address" type="string" label="36021" value="0" order="10" /> + <setting key="cec_hdmi_port" type="int" value="1" min="1" max="15" label="36015" order="11" /> + <setting key="connected_device" type="int" label="36019" value="0" min="0" max="15" step="1" order="12" /> + <setting key="port" type="string" value="" label="36022" order="13" /> <setting key="tv_vendor" type="int" value="0" configurable="0" /> <setting key="device_name" type="string" value="XBMC" configurable="0" /> diff --git a/tools/darwin/depends/libcec/Makefile b/tools/darwin/depends/libcec/Makefile index 5a1cb6915a..367386783e 100644 --- a/tools/darwin/depends/libcec/Makefile +++ b/tools/darwin/depends/libcec/Makefile @@ -3,7 +3,7 @@ include ../config.site.mk # lib name, version LIBNAME=libcec -VERSION=1.5.2 +VERSION=1.7.1 SOURCE=$(LIBNAME)-$(VERSION) ARCHIVE=$(SOURCE).tar.gz diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp index 0a893e5a69..ccd9285755 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp @@ -2245,7 +2245,7 @@ bool CApplication::OnKey(const CKey& key) ResetScreenSaver(); // allow some keys to be processed while the screensaver is active - if (WakeUpScreenSaverAndDPMS() && !processKey) + if (WakeUpScreenSaverAndDPMS(processKey) && !processKey) { CLog::Log(LOGDEBUG, "%s: %s pressed, screen saver/dpms woken up", __FUNCTION__, g_Keyboard.GetKeyName((int) key.GetButtonCode()).c_str()); return true; @@ -4439,7 +4439,7 @@ bool CApplication::ToggleDPMS(bool manual) return false; } -bool CApplication::WakeUpScreenSaverAndDPMS() +bool CApplication::WakeUpScreenSaverAndDPMS(bool bPowerOffKeyPressed /* = false */) { #ifdef HAS_LCD @@ -4457,13 +4457,13 @@ bool CApplication::WakeUpScreenSaverAndDPMS() // (DPMS came first), activate screensaver now. ToggleDPMS(false); ResetScreenSaverTimer(); - return !m_bScreenSave || WakeUpScreenSaver(); + return !m_bScreenSave || WakeUpScreenSaver(bPowerOffKeyPressed); } else - return WakeUpScreenSaver(); + return WakeUpScreenSaver(bPowerOffKeyPressed); } -bool CApplication::WakeUpScreenSaver() +bool CApplication::WakeUpScreenSaver(bool bPowerOffKeyPressed /* = false */) { if (m_iScreenSaveLock == 2) return false; @@ -4492,7 +4492,9 @@ bool CApplication::WakeUpScreenSaver() m_iScreenSaveLock = 0; ResetScreenSaverTimer(); - CAnnouncementManager::Announce(GUI, "xbmc", "OnScreensaverDeactivated"); + // allow listeners to ignore the deactivation if it preceeds a powerdown/suspend etc + CVariant data(bPowerOffKeyPressed); + CAnnouncementManager::Announce(GUI, "xbmc", "OnScreensaverDeactivated", data); if (m_screenSaver->ID() == "visualization") { diff --git a/xbmc/Application.h b/xbmc/Application.h index 79ef883d5d..9b735fb673 100644 --- a/xbmc/Application.h +++ b/xbmc/Application.h @@ -204,8 +204,8 @@ public: void ResetScreenSaverTimer(); void StopScreenSaverTimer(); // Wakes up from the screensaver and / or DPMS. Returns true if woken up. - bool WakeUpScreenSaverAndDPMS(); - bool WakeUpScreenSaver(); + bool WakeUpScreenSaverAndDPMS(bool bPowerOffKeyPressed = false); + bool WakeUpScreenSaver(bool bPowerOffKeyPressed = false); double GetTotalTime() const; double GetTime() const; float GetPercentage() const; diff --git a/xbmc/peripherals/Peripherals.h b/xbmc/peripherals/Peripherals.h index a98ead585c..92601f808b 100644 --- a/xbmc/peripherals/Peripherals.h +++ b/xbmc/peripherals/Peripherals.h @@ -20,6 +20,7 @@ * */ +#include "system.h" #include "bus/PeripheralBus.h" #include "devices/Peripheral.h" #include "threads/CriticalSection.h" diff --git a/xbmc/peripherals/bus/PeripheralBus.cpp b/xbmc/peripherals/bus/PeripheralBus.cpp index ffc0029595..5b4081d307 100644 --- a/xbmc/peripherals/bus/PeripheralBus.cpp +++ b/xbmc/peripherals/bus/PeripheralBus.cpp @@ -323,6 +323,7 @@ void CPeripheralBus::GetDirectory(const CStdString &strPath, CFileItemList &item peripheralFile->SetProperty("bus", PeripheralTypeTranslator::BusTypeToString(peripheral->GetBusType())); peripheralFile->SetProperty("location", peripheral->Location()); peripheralFile->SetProperty("class", PeripheralTypeTranslator::TypeToString(peripheral->Type())); + peripheralFile->SetProperty("version", peripheral->GetVersionInfo()); items.Add(peripheralFile); } } diff --git a/xbmc/peripherals/devices/Peripheral.cpp b/xbmc/peripherals/devices/Peripheral.cpp index 31367c5fd7..9caf941309 100644 --- a/xbmc/peripherals/devices/Peripheral.cpp +++ b/xbmc/peripherals/devices/Peripheral.cpp @@ -26,6 +26,7 @@ #include "settings/GUISettings.h" #include "utils/XBMCTinyXML.h" #include "utils/URIUtils.h" +#include "guilib/LocalizeStrings.h" using namespace PERIPHERALS; using namespace std; @@ -46,6 +47,7 @@ CPeripheral::CPeripheral(const PeripheralType type, const PeripheralBusType busT m_strFileLocation(StringUtils::EmptyString), m_iVendorId(iVendorId), m_iProductId(iProductId), + m_strVersionInfo(g_localizeStrings.Get(13205)), // "unknown" m_bInitialised(false), m_bHidden(false), m_bError(false) @@ -65,8 +67,10 @@ CPeripheral::CPeripheral(void) : m_strVendorId("0000"), m_iProductId(0), m_strProductId("0000"), + m_strVersionInfo(g_localizeStrings.Get(13205)), // "unknown" m_bInitialised(false), - m_bHidden(false) + m_bHidden(false), + m_bError(false) { } @@ -337,52 +341,58 @@ const CStdString CPeripheral::GetSettingString(const CStdString &strKey) const return StringUtils::EmptyString; } -void CPeripheral::SetSetting(const CStdString &strKey, bool bValue) +bool CPeripheral::SetSetting(const CStdString &strKey, bool bValue) { + bool bChanged(false); map<CStdString, CSetting *>::iterator it = m_settings.find(strKey); if (it != m_settings.end() && (*it).second->GetType() == SETTINGS_TYPE_BOOL) { CSettingBool *boolSetting = (CSettingBool *) (*it).second; if (boolSetting) { - bool bChanged(boolSetting->GetData() != bValue); + bChanged = boolSetting->GetData() != bValue; boolSetting->SetData(bValue); if (bChanged && m_bInitialised) m_changedSettings.insert(strKey); } } + return bChanged; } -void CPeripheral::SetSetting(const CStdString &strKey, int iValue) +bool CPeripheral::SetSetting(const CStdString &strKey, int iValue) { + bool bChanged(false); map<CStdString, CSetting *>::iterator it = m_settings.find(strKey); if (it != m_settings.end() && (*it).second->GetType() == SETTINGS_TYPE_INT) { CSettingInt *intSetting = (CSettingInt *) (*it).second; if (intSetting) { - bool bChanged(intSetting->GetData() != iValue); + bChanged = intSetting->GetData() != iValue; intSetting->SetData(iValue); if (bChanged && m_bInitialised) m_changedSettings.insert(strKey); } } + return bChanged; } -void CPeripheral::SetSetting(const CStdString &strKey, float fValue) +bool CPeripheral::SetSetting(const CStdString &strKey, float fValue) { + bool bChanged(false); map<CStdString, CSetting *>::iterator it = m_settings.find(strKey); if (it != m_settings.end() && (*it).second->GetType() == SETTINGS_TYPE_FLOAT) { CSettingFloat *floatSetting = (CSettingFloat *) (*it).second; if (floatSetting) { - bool bChanged(floatSetting->GetData() != fValue); + bChanged = floatSetting->GetData() != fValue; floatSetting->SetData(fValue); if (bChanged && m_bInitialised) m_changedSettings.insert(strKey); } } + return bChanged; } void CPeripheral::SetSettingVisible(const CStdString &strKey, bool bSetTo) @@ -400,8 +410,9 @@ bool CPeripheral::IsSettingVisible(const CStdString &strKey) const return false; } -void CPeripheral::SetSetting(const CStdString &strKey, const CStdString &strValue) +bool CPeripheral::SetSetting(const CStdString &strKey, const CStdString &strValue) { + bool bChanged(false); map<CStdString, CSetting *>::iterator it = m_settings.find(strKey); if (it != m_settings.end()) { @@ -410,19 +421,20 @@ void CPeripheral::SetSetting(const CStdString &strKey, const CStdString &strValu CSettingString *stringSetting = (CSettingString *) (*it).second; if (stringSetting) { - bool bChanged(!stringSetting->GetData().Equals(strValue)); + bChanged = !stringSetting->GetData().Equals(strValue); stringSetting->SetData(strValue); if (bChanged && m_bInitialised) m_changedSettings.insert(strKey); } } else if ((*it).second->GetType() == SETTINGS_TYPE_INT) - SetSetting(strKey, (int) (strValue.IsEmpty() ? 0 : atoi(strValue.c_str()))); + bChanged = SetSetting(strKey, (int) (strValue.IsEmpty() ? 0 : atoi(strValue.c_str()))); else if ((*it).second->GetType() == SETTINGS_TYPE_FLOAT) - SetSetting(strKey, (float) (strValue.IsEmpty() ? 0 : atof(strValue.c_str()))); + bChanged = SetSetting(strKey, (float) (strValue.IsEmpty() ? 0 : atof(strValue.c_str()))); else if ((*it).second->GetType() == SETTINGS_TYPE_BOOL) - SetSetting(strKey, strValue.Equals("1")); + bChanged = SetSetting(strKey, strValue.Equals("1")); } + return bChanged; } void CPeripheral::PersistSettings(bool bExiting /* = false */) diff --git a/xbmc/peripherals/devices/Peripheral.h b/xbmc/peripherals/devices/Peripheral.h index 1c6ca71b45..31ac1f74bd 100644 --- a/xbmc/peripherals/devices/Peripheral.h +++ b/xbmc/peripherals/devices/Peripheral.h @@ -53,6 +53,7 @@ namespace PERIPHERALS const CStdString &DeviceName(void) const { return m_strDeviceName; } bool IsHidden(void) const { return m_bHidden; } void SetHidden(bool bSetTo = true) { m_bHidden = bSetTo; } + const CStdString &GetVersionInfo(void) const { return m_strVersionInfo; } /*! * @brief Check whether this device has the given feature. @@ -127,18 +128,18 @@ namespace PERIPHERALS * @return The value or an empty string if it wasn't found. */ virtual const CStdString GetSettingString(const CStdString &strKey) const; - virtual void SetSetting(const CStdString &strKey, const CStdString &strValue); + virtual bool SetSetting(const CStdString &strKey, const CStdString &strValue); virtual void SetSettingVisible(const CStdString &strKey, bool bSetTo); virtual bool IsSettingVisible(const CStdString &strKey) const; virtual int GetSettingInt(const CStdString &strKey) const; - virtual void SetSetting(const CStdString &strKey, int iValue); + virtual bool SetSetting(const CStdString &strKey, int iValue); virtual bool GetSettingBool(const CStdString &strKey) const; - virtual void SetSetting(const CStdString &strKey, bool bValue); + virtual bool SetSetting(const CStdString &strKey, bool bValue); virtual float GetSettingFloat(const CStdString &strKey) const; - virtual void SetSetting(const CStdString &strKey, float fValue); + virtual bool SetSetting(const CStdString &strKey, float fValue); virtual void PersistSettings(bool bExiting = false); virtual void LoadPersistedSettings(void); @@ -161,6 +162,7 @@ namespace PERIPHERALS CStdString m_strVendorId; int m_iProductId; CStdString m_strProductId; + CStdString m_strVersionInfo; bool m_bInitialised; bool m_bHidden; bool m_bError; diff --git a/xbmc/peripherals/devices/PeripheralCecAdapter.cpp b/xbmc/peripherals/devices/PeripheralCecAdapter.cpp index f8db18bcac..6c5e9e688f 100644 --- a/xbmc/peripherals/devices/PeripheralCecAdapter.cpp +++ b/xbmc/peripherals/devices/PeripheralCecAdapter.cpp @@ -40,8 +40,9 @@ using namespace PERIPHERALS; using namespace ANNOUNCEMENT; using namespace CEC; +using namespace std; -#define CEC_LIB_SUPPORTED_VERSION 0x1500 +#define CEC_LIB_SUPPORTED_VERSION 0x1700 /* time in seconds to ignore standby commands from devices after the screensaver has been activated */ #define SCREENSAVER_TIMEOUT 10 @@ -72,6 +73,8 @@ class DllLibCEC : public DllDynamic, DllLibCECInterface CPeripheralCecAdapter::CPeripheralCecAdapter(const PeripheralType type, const PeripheralBusType busType, const CStdString &strLocation, const CStdString &strDeviceName, int iVendorId, int iProductId) : CPeripheralHID(type, busType, strLocation, strDeviceName, iVendorId, iProductId), CThread("CEC Adapter"), + m_dll(NULL), + m_cecAdapter(NULL), m_bStarted(false), m_bHasButton(false), m_bIsReady(false), @@ -80,10 +83,13 @@ CPeripheralCecAdapter::CPeripheralCecAdapter(const PeripheralType type, const Pe m_lastKeypress(0), m_lastChange(VOLUME_CHANGE_NONE), m_iExitCode(0), - m_bIsMuted(false) // TODO fetch the correct initial value when system audiostatus is implemented in libCEC + m_bIsMuted(false), // TODO fetch the correct initial value when system audiostatus is implemented in libCEC + m_bGoingToStandby(false), + m_bIsRunning(false), + m_bDeviceRemoved(false) { - m_button.iButton = 0; - m_button.iDuration = 0; + m_currentButton.iButton = 0; + m_currentButton.iDuration = 0; m_screensaverLastActivated.SetValid(false); m_configuration.Clear(); @@ -92,9 +98,12 @@ CPeripheralCecAdapter::CPeripheralCecAdapter(const PeripheralType type, const Pe CPeripheralCecAdapter::~CPeripheralCecAdapter(void) { - CAnnouncementManager::RemoveAnnouncer(this); + { + CSingleLock lock(m_critSection); + CAnnouncementManager::RemoveAnnouncer(this); + m_bStop = true; + } - m_bStop = true; StopThread(true); if (m_dll && m_cecAdapter) @@ -110,12 +119,24 @@ void CPeripheralCecAdapter::Announce(AnnouncementFlag flag, const char *sender, { if (flag == System && !strcmp(sender, "xbmc") && !strcmp(message, "OnQuit") && m_bIsReady) { + CSingleLock lock(m_critSection); m_iExitCode = (int)data.asInteger(0); + CAnnouncementManager::RemoveAnnouncer(this); StopThread(false); } else if (flag == GUI && !strcmp(sender, "xbmc") && !strcmp(message, "OnScreensaverDeactivated") && m_bIsReady) { - if (m_configuration.bPowerOffScreensaver == 1) + bool bIgnoreDeactivate(false); + if (data.isBoolean()) + { + // don't respond to the deactivation if we are just going to suspend/shutdown anyway + // the tv will not have time to switch on before being told to standby and + // may not action the standby command. + bIgnoreDeactivate = data.asBoolean(); + if (bIgnoreDeactivate) + CLog::Log(LOGDEBUG, "%s - ignoring OnScreensaverDeactivated for power action", __FUNCTION__); + } + if (m_configuration.bPowerOffScreensaver == 1 && !bIgnoreDeactivate) { // power off/on on screensaver is set, and devices to wake are set if (!m_configuration.wakeDevices.IsEmpty()) @@ -142,24 +163,14 @@ void CPeripheralCecAdapter::Announce(AnnouncementFlag flag, const char *sender, // this will also power off devices when we're the active source { CSingleLock lock(m_critSection); - m_bStop = true; + m_bGoingToStandby = false; } - WaitForThreadExit(0); + StopThread(); } else if (flag == System && !strcmp(sender, "xbmc") && !strcmp(message, "OnWake")) { - { - // reconnect to the device - CSingleLock lock(m_critSection); - CLog::Log(LOGDEBUG, "%s - reconnecting to the CEC adapter after standby mode", __FUNCTION__); - - // close the previous connection - m_cecAdapter->Close(); - } - - // and open a new one - StopThread(); - Create(); + CLog::Log(LOGDEBUG, "%s - reconnecting to the CEC adapter after standby mode", __FUNCTION__); + ReopenConnection(); } } @@ -168,10 +179,12 @@ bool CPeripheralCecAdapter::InitialiseFeature(const PeripheralFeature feature) if (feature == FEATURE_CEC && !m_bStarted && GetSettingBool("enabled")) { SetConfigurationFromSettings(); + m_callbacks.Clear(); m_callbacks.CBCecLogMessage = &CecLogMessage; m_callbacks.CBCecKeyPress = &CecKeyPress; m_callbacks.CBCecCommand = &CecCommand; m_callbacks.CBCecConfigurationChanged = &CecConfiguration; + m_callbacks.CBCecAlert = &CecAlert; m_configuration.callbackParam = this; m_configuration.callbacks = &m_callbacks; @@ -179,15 +192,24 @@ bool CPeripheralCecAdapter::InitialiseFeature(const PeripheralFeature feature) if (m_dll->Load() && m_dll->IsLoaded()) m_cecAdapter = m_dll->CECInitialise(&m_configuration); else + { + // display warning: libCEC could not be loaded + CLog::Log(LOGERROR, "%s", g_localizeStrings.Get(36017).c_str()); + CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Error, g_localizeStrings.Get(36000), g_localizeStrings.Get(36029)); + delete m_dll; + m_dll = NULL; + m_features.clear(); return false; + } if (m_configuration.serverVersion < CEC_LIB_SUPPORTED_VERSION) { /* unsupported libcec version */ - CLog::Log(LOGERROR, g_localizeStrings.Get(36013).c_str(), CEC_LIB_SUPPORTED_VERSION, m_cecAdapter ? m_configuration.serverVersion : -1); + CLog::Log(LOGERROR, g_localizeStrings.Get(36013).c_str(), m_cecAdapter ? m_configuration.serverVersion : -1, CEC_LIB_SUPPORTED_VERSION); + // display warning: incompatible libCEC CStdString strMessage; - strMessage.Format(g_localizeStrings.Get(36013).c_str(), CEC_LIB_SUPPORTED_VERSION, m_cecAdapter ? m_configuration.serverVersion : -1); + strMessage.Format(g_localizeStrings.Get(36013).c_str(), m_cecAdapter ? m_configuration.serverVersion : -1, CEC_LIB_SUPPORTED_VERSION); CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Error, g_localizeStrings.Get(36000), strMessage); m_bError = true; if (m_cecAdapter) @@ -200,6 +222,7 @@ bool CPeripheralCecAdapter::InitialiseFeature(const PeripheralFeature feature) else { CLog::Log(LOGDEBUG, "%s - using libCEC v%s", __FUNCTION__, m_cecAdapter->ToString((cec_server_version)m_configuration.serverVersion)); + SetVersionInfo(m_configuration); } m_bStarted = true; @@ -209,6 +232,23 @@ bool CPeripheralCecAdapter::InitialiseFeature(const PeripheralFeature feature) return CPeripheral::InitialiseFeature(feature); } +void CPeripheralCecAdapter::SetVersionInfo(const libcec_configuration &configuration) +{ + m_strVersionInfo.Format("libCEC %s", m_cecAdapter->ToString((cec_server_version)configuration.serverVersion)); + + // append firmware version number + if (configuration.serverVersion >= CEC_SERVER_VERSION_1_6_0) + m_strVersionInfo.AppendFormat(" - firmware v%d", configuration.iFirmwareVersion); + + // append firmware build date + if (configuration.serverVersion >= CEC_SERVER_VERSION_1_6_2 && + configuration.iFirmwareBuildDate != CEC_FW_BUILD_UNKNOWN) + { + CDateTime dt((time_t)configuration.iFirmwareBuildDate); + m_strVersionInfo.AppendFormat(" (%s)", dt.GetAsDBDate().c_str()); + } +} + CStdString CPeripheralCecAdapter::GetComPort(void) { CStdString strPort = GetSettingString("port"); @@ -222,6 +262,7 @@ CStdString CPeripheralCecAdapter::GetComPort(void) if (iFound <= 0) { CLog::Log(LOGWARNING, "%s - no CEC adapters found on %s", __FUNCTION__, strPort.c_str()); + // display warning: couldn't set up com port CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Error, g_localizeStrings.Get(36000), g_localizeStrings.Get(36011)); strPort = ""; } @@ -269,6 +310,7 @@ bool CPeripheralCecAdapter::OpenConnection(void) { if ((bIsOpen = m_cecAdapter->Open(strPort.c_str(), 10000)) == false) { + // display warning: couldn't initialise libCEC CLog::Log(LOGERROR, "%s - could not opening a connection to the CEC adapter", __FUNCTION__); if (!bConnectionFailedDisplayed) CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Error, g_localizeStrings.Get(36000), g_localizeStrings.Get(36012)); @@ -282,11 +324,22 @@ bool CPeripheralCecAdapter::OpenConnection(void) { CLog::Log(LOGDEBUG, "%s - connection to the CEC adapter opened", __FUNCTION__); - if (!m_configuration.wakeDevices.IsEmpty()) - m_cecAdapter->PowerOnDevices(CECDEVICE_BROADCAST); + // read the configuration + libcec_configuration config; + if (m_cecAdapter->GetCurrentConfiguration(&config)) + { + // send wakeup commands + if (!config.wakeDevices.IsEmpty()) + m_cecAdapter->PowerOnDevices(CECDEVICE_BROADCAST); + + // make xbmc the active source + if (config.bActivateSource == 1) + m_cecAdapter->SetActiveSource(); - if (m_configuration.bActivateSource == 1) - m_cecAdapter->SetActiveSource(); + // update the local configuration + CSingleLock lock(m_critSection); + SetConfigurationFromLibCEC(config); + } } return bIsOpen; @@ -297,6 +350,13 @@ void CPeripheralCecAdapter::Process(void) if (!OpenConnection()) return; + { + CSingleLock lock(m_critSection); + m_iExitCode = EXITCODE_QUIT; + m_bGoingToStandby = false; + m_bIsRunning = true; + } + CAnnouncementManager::AddAnnouncer(this); m_queryThread = new CPeripheralCecAdapterUpdateThread(this, &m_configuration); @@ -312,8 +372,18 @@ void CPeripheralCecAdapter::Process(void) } delete m_queryThread; + m_queryThread = NULL; + + bool bSendStandbyCommands(false); + { + CSingleLock lock(m_critSection); + bSendStandbyCommands = m_iExitCode != EXITCODE_REBOOT && + m_iExitCode != EXITCODE_RESTARTAPP && + !m_bDeviceRemoved && + (!m_bGoingToStandby || GetSettingBool("standby_tv_on_pc_standby")); + } - if (m_iExitCode != EXITCODE_REBOOT) + if (bSendStandbyCommands) { if (m_cecAdapter->IsLibCECActiveSource()) { @@ -337,7 +407,12 @@ void CPeripheralCecAdapter::Process(void) m_cecAdapter->Close(); CLog::Log(LOGDEBUG, "%s - CEC adapter processor thread ended", __FUNCTION__); - m_bStarted = false; + + { + CSingleLock lock(m_critSection); + m_bStarted = false; + m_bIsRunning = false; + } } bool CPeripheralCecAdapter::HasConnectedAudioSystem(void) @@ -556,11 +631,15 @@ int CPeripheralCecAdapter::CecCommand(void *cbParam, const cec_command &command) case CEC_OPCODE_STANDBY: /* a device was put in standby mode */ CLog::Log(LOGDEBUG, "%s - device %1x was put in standby mode", __FUNCTION__, command.initiator); - if (command.initiator == CECDEVICE_TV && adapter->m_configuration.bPowerOffOnStandby == 1 && + if (command.initiator == CECDEVICE_TV && + (adapter->m_configuration.bPowerOffOnStandby == 1 || adapter->m_configuration.bShutdownOnStandby == 1) && (!adapter->m_screensaverLastActivated.IsValid() || CDateTime::GetCurrentDateTime() - adapter->m_screensaverLastActivated > CDateTimeSpan(0, 0, 0, SCREENSAVER_TIMEOUT))) { adapter->m_bStarted = false; - g_application.getApplicationMessenger().Suspend(); + if (adapter->m_configuration.bPowerOffOnStandby == 1) + g_application.getApplicationMessenger().Suspend(); + else if (adapter->m_configuration.bShutdownOnStandby == 1) + g_application.getApplicationMessenger().Shutdown(); } break; case CEC_OPCODE_SET_MENU_LANGUAGE: @@ -578,11 +657,10 @@ int CPeripheralCecAdapter::CecCommand(void *cbParam, const cec_command &command) command.parameters.size == 1 && command.parameters[0] == CEC_DECK_CONTROL_MODE_STOP) { - CSingleLock lock(adapter->m_critSection); cec_keypress key; key.duration = 500; key.keycode = CEC_USER_CONTROL_CODE_STOP; - adapter->m_buttonQueue.push(key); + adapter->PushCecKeypress(key); } break; case CEC_OPCODE_PLAY: @@ -591,31 +669,20 @@ int CPeripheralCecAdapter::CecCommand(void *cbParam, const cec_command &command) { if (command.parameters[0] == CEC_PLAY_MODE_PLAY_FORWARD) { - CSingleLock lock(adapter->m_critSection); cec_keypress key; key.duration = 500; key.keycode = CEC_USER_CONTROL_CODE_PLAY; - adapter->m_buttonQueue.push(key); + adapter->PushCecKeypress(key); } else if (command.parameters[0] == CEC_PLAY_MODE_PLAY_STILL) { - CSingleLock lock(adapter->m_critSection); cec_keypress key; key.duration = 500; key.keycode = CEC_USER_CONTROL_CODE_PAUSE; - adapter->m_buttonQueue.push(key); + adapter->PushCecKeypress(key); } } break; - case CEC_OPCODE_REPORT_POWER_STATUS: - if (command.initiator == CECDEVICE_TV && - command.parameters.size == 1 && - command.parameters[0] == CEC_POWER_STATUS_ON && - adapter->m_queryThread) - { - adapter->m_queryThread->Signal(); - } - break; default: break; } @@ -634,185 +701,338 @@ int CPeripheralCecAdapter::CecConfiguration(void *cbParam, const libcec_configur return 1; } +int CPeripheralCecAdapter::CecAlert(void *cbParam, const libcec_alert alert, const libcec_parameter &data) +{ + CPeripheralCecAdapter *adapter = (CPeripheralCecAdapter *)cbParam; + if (!adapter) + return 0; + + bool bReopenConnection(false); + int iAlertString(0); + switch (alert) + { + case CEC_ALERT_SERVICE_DEVICE: + iAlertString = 36027; + break; + case CEC_ALERT_CONNECTION_LOST: + iAlertString = 36030; + break; +#if defined(CEC_ALERT_PERMISSION_ERROR) + case CEC_ALERT_PERMISSION_ERROR: + bReopenConnection = true; + iAlertString = 36031; + break; + case CEC_ALERT_PORT_BUSY: + bReopenConnection = true; + iAlertString = 36032; + break; +#endif + default: + break; + } + + // display the alert + if (iAlertString) + { + CStdString strLog(g_localizeStrings.Get(iAlertString)); + if (data.paramType == CEC_PARAMETER_TYPE_STRING && data.paramData) + strLog.AppendFormat(" - %s", (const char *)data.paramData); + CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Info, g_localizeStrings.Get(36000), strLog); + } + + if (bReopenConnection) + adapter->ReopenConnection(); + + return 1; +} + int CPeripheralCecAdapter::CecKeyPress(void *cbParam, const cec_keypress &key) { CPeripheralCecAdapter *adapter = (CPeripheralCecAdapter *)cbParam; if (!adapter) return 0; - CSingleLock lock(adapter->m_critSection); - adapter->m_buttonQueue.push(key); + adapter->PushCecKeypress(key); return 1; } -bool CPeripheralCecAdapter::GetNextCecKey(cec_keypress &key) +void CPeripheralCecAdapter::GetNextKey(void) { - bool bReturn(false); CSingleLock lock(m_critSection); - if (!m_buttonQueue.empty()) + m_bHasButton = false; + if (m_bIsReady) { - key = m_buttonQueue.front(); - m_buttonQueue.pop(); - bReturn = true; + vector<CecButtonPress>::iterator it = m_buttonQueue.begin(); + if (it != m_buttonQueue.end()) + { + m_currentButton = (*it); + m_buttonQueue.erase(it); + m_bHasButton = true; + } } - - return bReturn; } -bool CPeripheralCecAdapter::GetNextKey(void) +void CPeripheralCecAdapter::PushCecKeypress(const CecButtonPress &key) { - bool bHasButton(false); + CLog::Log(LOGDEBUG, "%s - received key %2x duration %d", __FUNCTION__, key.iButton, key.iDuration); + CSingleLock lock(m_critSection); - if (m_bHasButton && m_button.iDuration > 0) - return bHasButton; + if (key.iDuration > 0) + { + if (m_currentButton.iButton == key.iButton && m_currentButton.iDuration == 0) + { + // update the duration + if (m_bHasButton) + m_currentButton.iDuration = key.iDuration; + // ignore this one, since it's already been handled by xbmc + return; + } + // if we received a keypress with a duration set, try to find the same one without a duration set, and replace it + for (vector<CecButtonPress>::reverse_iterator it = m_buttonQueue.rbegin(); it != m_buttonQueue.rend(); it++) + { + if ((*it).iButton == key.iButton) + { + if ((*it).iDuration == 0) + { + // replace this entry + (*it).iDuration = key.iDuration; + return; + } + // add a new entry + break; + } + } + } - cec_keypress key; - if (!m_bIsReady || !GetNextCecKey(key)) - return bHasButton; + m_buttonQueue.push_back(key); +} - CLog::Log(LOGDEBUG, "%s - received key %2x", __FUNCTION__, key.keycode); - int iButton = 0; - bHasButton = true; +void CPeripheralCecAdapter::PushCecKeypress(const cec_keypress &key) +{ + CecButtonPress xbmcKey; + xbmcKey.iDuration = key.duration; switch (key.keycode) { case CEC_USER_CONTROL_CODE_SELECT: - iButton = XINPUT_IR_REMOTE_SELECT; + xbmcKey.iButton = XINPUT_IR_REMOTE_SELECT; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_UP: - iButton = XINPUT_IR_REMOTE_UP; + xbmcKey.iButton = XINPUT_IR_REMOTE_UP; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_DOWN: - iButton = XINPUT_IR_REMOTE_DOWN; + xbmcKey.iButton = XINPUT_IR_REMOTE_DOWN; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_LEFT: + xbmcKey.iButton = XINPUT_IR_REMOTE_LEFT; + PushCecKeypress(xbmcKey); + break; case CEC_USER_CONTROL_CODE_LEFT_UP: + xbmcKey.iButton = XINPUT_IR_REMOTE_LEFT; + PushCecKeypress(xbmcKey); + xbmcKey.iButton = XINPUT_IR_REMOTE_UP; + PushCecKeypress(xbmcKey); + break; case CEC_USER_CONTROL_CODE_LEFT_DOWN: - iButton = XINPUT_IR_REMOTE_LEFT; + xbmcKey.iButton = XINPUT_IR_REMOTE_LEFT; + PushCecKeypress(xbmcKey); + xbmcKey.iButton = XINPUT_IR_REMOTE_DOWN; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_RIGHT: + xbmcKey.iButton = XINPUT_IR_REMOTE_RIGHT; + PushCecKeypress(xbmcKey); + break; case CEC_USER_CONTROL_CODE_RIGHT_UP: + xbmcKey.iButton = XINPUT_IR_REMOTE_RIGHT; + PushCecKeypress(xbmcKey); + xbmcKey.iButton = XINPUT_IR_REMOTE_UP; + PushCecKeypress(xbmcKey); + break; case CEC_USER_CONTROL_CODE_RIGHT_DOWN: - iButton = XINPUT_IR_REMOTE_RIGHT; + xbmcKey.iButton = XINPUT_IR_REMOTE_RIGHT; + PushCecKeypress(xbmcKey); + xbmcKey.iButton = XINPUT_IR_REMOTE_DOWN; + PushCecKeypress(xbmcKey); break; + case CEC_USER_CONTROL_CODE_SETUP_MENU: + case CEC_USER_CONTROL_CODE_CONTENTS_MENU: + case CEC_USER_CONTROL_CODE_FAVORITE_MENU: case CEC_USER_CONTROL_CODE_ROOT_MENU: - iButton = XINPUT_IR_REMOTE_MENU; + xbmcKey.iButton = XINPUT_IR_REMOTE_MENU; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_EXIT: - iButton = XINPUT_IR_REMOTE_BACK; + xbmcKey.iButton = XINPUT_IR_REMOTE_BACK; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_ENTER: - iButton = XINPUT_IR_REMOTE_ENTER; + xbmcKey.iButton = XINPUT_IR_REMOTE_ENTER; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_CHANNEL_DOWN: - iButton = XINPUT_IR_REMOTE_CHANNEL_MINUS; + xbmcKey.iButton = XINPUT_IR_REMOTE_CHANNEL_MINUS; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_CHANNEL_UP: - iButton = XINPUT_IR_REMOTE_CHANNEL_PLUS; + xbmcKey.iButton = XINPUT_IR_REMOTE_CHANNEL_PLUS; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_PREVIOUS_CHANNEL: - iButton = XINPUT_IR_REMOTE_BACK; +#if defined(XINPUT_IR_REMOTE_TELETEXT) + xbmcKey.iButton = XINPUT_IR_REMOTE_TELETEXT; // only supported by the pvr branch +#else + xbmcKey.iButton = XINPUT_IR_REMOTE_BACK; +#endif + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_SOUND_SELECT: - iButton = XINPUT_IR_REMOTE_LANGUAGE; + xbmcKey.iButton = XINPUT_IR_REMOTE_LANGUAGE; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_POWER: - iButton = XINPUT_IR_REMOTE_POWER; + xbmcKey.iButton = XINPUT_IR_REMOTE_POWER; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_VOLUME_UP: - iButton = XINPUT_IR_REMOTE_VOLUME_PLUS; + xbmcKey.iButton = XINPUT_IR_REMOTE_VOLUME_PLUS; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_VOLUME_DOWN: - iButton = XINPUT_IR_REMOTE_VOLUME_MINUS; + xbmcKey.iButton = XINPUT_IR_REMOTE_VOLUME_MINUS; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_MUTE: - iButton = XINPUT_IR_REMOTE_MUTE; + xbmcKey.iButton = XINPUT_IR_REMOTE_MUTE; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_PLAY: - iButton = XINPUT_IR_REMOTE_PLAY; + xbmcKey.iButton = XINPUT_IR_REMOTE_PLAY; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_STOP: - iButton = XINPUT_IR_REMOTE_STOP; + xbmcKey.iButton = XINPUT_IR_REMOTE_STOP; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_PAUSE: - iButton = XINPUT_IR_REMOTE_PAUSE; + xbmcKey.iButton = XINPUT_IR_REMOTE_PAUSE; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_REWIND: - iButton = XINPUT_IR_REMOTE_REVERSE; + xbmcKey.iButton = XINPUT_IR_REMOTE_REVERSE; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_FAST_FORWARD: - iButton = XINPUT_IR_REMOTE_FORWARD; + xbmcKey.iButton = XINPUT_IR_REMOTE_FORWARD; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_NUMBER0: - iButton = XINPUT_IR_REMOTE_0; + xbmcKey.iButton = XINPUT_IR_REMOTE_0; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_NUMBER1: - iButton = XINPUT_IR_REMOTE_1; + xbmcKey.iButton = XINPUT_IR_REMOTE_1; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_NUMBER2: - iButton = XINPUT_IR_REMOTE_2; + xbmcKey.iButton = XINPUT_IR_REMOTE_2; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_NUMBER3: - iButton = XINPUT_IR_REMOTE_3; + xbmcKey.iButton = XINPUT_IR_REMOTE_3; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_NUMBER4: - iButton = XINPUT_IR_REMOTE_4; + xbmcKey.iButton = XINPUT_IR_REMOTE_4; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_NUMBER5: - iButton = XINPUT_IR_REMOTE_5; + xbmcKey.iButton = XINPUT_IR_REMOTE_5; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_NUMBER6: - iButton = XINPUT_IR_REMOTE_6; + xbmcKey.iButton = XINPUT_IR_REMOTE_6; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_NUMBER7: - iButton = XINPUT_IR_REMOTE_7; + xbmcKey.iButton = XINPUT_IR_REMOTE_7; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_NUMBER8: - iButton = XINPUT_IR_REMOTE_8; + xbmcKey.iButton = XINPUT_IR_REMOTE_8; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_NUMBER9: - iButton = XINPUT_IR_REMOTE_9; + xbmcKey.iButton = XINPUT_IR_REMOTE_9; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_RECORD: - iButton = XINPUT_IR_REMOTE_RECORD; + xbmcKey.iButton = XINPUT_IR_REMOTE_RECORD; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_CLEAR: - iButton = XINPUT_IR_REMOTE_CLEAR; + xbmcKey.iButton = XINPUT_IR_REMOTE_CLEAR; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_DISPLAY_INFORMATION: - iButton = XINPUT_IR_REMOTE_INFO; + xbmcKey.iButton = XINPUT_IR_REMOTE_INFO; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_PAGE_UP: - iButton = XINPUT_IR_REMOTE_CHANNEL_PLUS; + xbmcKey.iButton = XINPUT_IR_REMOTE_CHANNEL_PLUS; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_PAGE_DOWN: - iButton = XINPUT_IR_REMOTE_CHANNEL_MINUS; + xbmcKey.iButton = XINPUT_IR_REMOTE_CHANNEL_MINUS; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_FORWARD: - iButton = XINPUT_IR_REMOTE_SKIP_PLUS; + xbmcKey.iButton = XINPUT_IR_REMOTE_SKIP_PLUS; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_BACKWARD: - iButton = XINPUT_IR_REMOTE_SKIP_MINUS; + xbmcKey.iButton = XINPUT_IR_REMOTE_SKIP_MINUS; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_F1_BLUE: - iButton = XINPUT_IR_REMOTE_BLUE; + xbmcKey.iButton = XINPUT_IR_REMOTE_BLUE; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_F2_RED: - iButton = XINPUT_IR_REMOTE_RED; + xbmcKey.iButton = XINPUT_IR_REMOTE_RED; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_F3_GREEN: - iButton = XINPUT_IR_REMOTE_GREEN; + xbmcKey.iButton = XINPUT_IR_REMOTE_GREEN; + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_F4_YELLOW: - iButton = XINPUT_IR_REMOTE_YELLOW; + xbmcKey.iButton = XINPUT_IR_REMOTE_YELLOW; + PushCecKeypress(xbmcKey); + break; + case CEC_USER_CONTROL_CODE_ELECTRONIC_PROGRAM_GUIDE: +#if defined(XINPUT_IR_REMOTE_GUIDE) + xbmcKey.iButton = XINPUT_IR_REMOTE_GUIDE; + PushCecKeypress(xbmcKey); +#endif + break; + case CEC_USER_CONTROL_CODE_AN_CHANNELS_LIST: +#if defined(XINPUT_IR_REMOTE_LIVE_TV) + xbmcKey.iButton = XINPUT_IR_REMOTE_LIVE_TV; + PushCecKeypress(xbmcKey); +#endif + break; + case CEC_USER_CONTROL_CODE_NEXT_FAVORITE: + case CEC_USER_CONTROL_CODE_DOT: + case CEC_USER_CONTROL_CODE_AN_RETURN: + xbmcKey.iButton = XINPUT_IR_REMOTE_TITLE; // context menu + PushCecKeypress(xbmcKey); break; case CEC_USER_CONTROL_CODE_POWER_ON_FUNCTION: case CEC_USER_CONTROL_CODE_EJECT: - case CEC_USER_CONTROL_CODE_SETUP_MENU: - case CEC_USER_CONTROL_CODE_CONTENTS_MENU: - case CEC_USER_CONTROL_CODE_FAVORITE_MENU: - case CEC_USER_CONTROL_CODE_DOT: - case CEC_USER_CONTROL_CODE_NEXT_FAVORITE: case CEC_USER_CONTROL_CODE_INPUT_SELECT: case CEC_USER_CONTROL_CODE_INITIAL_CONFIGURATION: case CEC_USER_CONTROL_CODE_HELP: @@ -821,7 +1041,6 @@ bool CPeripheralCecAdapter::GetNextKey(void) case CEC_USER_CONTROL_CODE_ANGLE: case CEC_USER_CONTROL_CODE_SUB_PICTURE: case CEC_USER_CONTROL_CODE_VIDEO_ON_DEMAND: - case CEC_USER_CONTROL_CODE_ELECTRONIC_PROGRAM_GUIDE: case CEC_USER_CONTROL_CODE_TIMER_PROGRAMMING: case CEC_USER_CONTROL_CODE_PLAY_FUNCTION: case CEC_USER_CONTROL_CODE_PAUSE_PLAY_FUNCTION: @@ -840,24 +1059,8 @@ bool CPeripheralCecAdapter::GetNextKey(void) case CEC_USER_CONTROL_CODE_DATA: case CEC_USER_CONTROL_CODE_UNKNOWN: default: - bHasButton = false; - return bHasButton; - } - - if (!m_bHasButton && bHasButton && iButton == m_button.iButton && m_button.iDuration == 0 && key.duration > 0) - { - /* released button of the previous keypress */ - return m_bHasButton; - } - - if (bHasButton) - { - m_bHasButton = true; - m_button.iDuration = key.duration; - m_button.iButton = iButton; + break; } - - return m_bHasButton; } int CPeripheralCecAdapter::GetButton(void) @@ -866,22 +1069,29 @@ int CPeripheralCecAdapter::GetButton(void) if (!m_bHasButton) GetNextKey(); - return m_bHasButton ? m_button.iButton : 0; + return m_bHasButton ? m_currentButton.iButton : 0; } unsigned int CPeripheralCecAdapter::GetHoldTime(void) { CSingleLock lock(m_critSection); - if (m_bHasButton && m_button.iDuration == 0) + if (!m_bHasButton) GetNextKey(); - return m_bHasButton ? m_button.iDuration : 0; + return m_bHasButton ? m_currentButton.iDuration : 0; } void CPeripheralCecAdapter::ResetButton(void) { CSingleLock lock(m_critSection); m_bHasButton = false; + + // wait for the key release if the duration isn't 0 + if (m_currentButton.iDuration > 0) + { + m_currentButton.iButton = 0; + m_currentButton.iDuration = 0; + } } void CPeripheralCecAdapter::OnSettingChanged(const CStdString &strChangedSetting) @@ -889,16 +1099,30 @@ void CPeripheralCecAdapter::OnSettingChanged(const CStdString &strChangedSetting if (strChangedSetting.Equals("enabled")) { bool bEnabled(GetSettingBool("enabled")); - if (!bEnabled && m_cecAdapter && m_bStarted) + if (!bEnabled && IsRunning()) + { + CLog::Log(LOGDEBUG, "%s - closing the CEC connection", __FUNCTION__); StopThread(true); - else if (bEnabled && !m_cecAdapter && m_bStarted) + } + else if (bEnabled && !IsRunning()) + { + CLog::Log(LOGDEBUG, "%s - starting the CEC connection", __FUNCTION__); + SetConfigurationFromSettings(); InitialiseFeature(FEATURE_CEC); + } } - else + else if (IsRunning()) { + CLog::Log(LOGDEBUG, "%s - sending the updated configuration to libCEC", __FUNCTION__); SetConfigurationFromSettings(); m_queryThread->UpdateConfiguration(&m_configuration); } + else + { + CLog::Log(LOGDEBUG, "%s - restarting the CEC connection", __FUNCTION__); + SetConfigurationFromSettings(); + InitialiseFeature(FEATURE_CEC); + } } int CPeripheralCecAdapter::CecLogMessage(void *cbParam, const cec_log_message &message) @@ -947,71 +1171,101 @@ bool CPeripheralCecAdapter::TranslateComPort(CStdString &strLocation) void CPeripheralCecAdapter::SetConfigurationFromLibCEC(const CEC::libcec_configuration &config) { + bool bChanged(false); + // set the primary device type m_configuration.deviceTypes.Clear(); m_configuration.deviceTypes.Add(config.deviceTypes[0]); - SetSetting("device_type", (int)config.deviceTypes[0]); + bChanged |= SetSetting("device_type", (int)config.deviceTypes[0]); + + // hide the "connected device" and "hdmi port number" settings when the PA was autodetected + bool bPAAutoDetected(config.serverVersion >= CEC_SERVER_VERSION_1_7_0 && + config.bAutodetectAddress == 1); + + SetSettingVisible("connected_device", !bPAAutoDetected); + SetSettingVisible("cec_hdmi_port", !bPAAutoDetected); // set the connected device m_configuration.baseDevice = config.baseDevice; - SetSetting("connected_device", (int)config.baseDevice); + bChanged |= SetSetting("connected_device", (int)config.baseDevice); // set the HDMI port number m_configuration.iHDMIPort = config.iHDMIPort; - SetSetting("cec_hdmi_port", config.iHDMIPort); + bChanged |= SetSetting("cec_hdmi_port", config.iHDMIPort); // set the physical address, when baseDevice or iHDMIPort are not set - if (m_configuration.baseDevice == CECDEVICE_UNKNOWN || - m_configuration.iHDMIPort == 0 || m_configuration.iHDMIPort > 4) + CStdString strPhysicalAddress("0"); + if (!bPAAutoDetected && (m_configuration.baseDevice == CECDEVICE_UNKNOWN || + m_configuration.iHDMIPort < CEC_MIN_HDMI_PORTNUMBER || + m_configuration.iHDMIPort > CEC_MAX_HDMI_PORTNUMBER)) { m_configuration.iPhysicalAddress = config.iPhysicalAddress; - CStdString strPhysicalAddress; strPhysicalAddress.Format("%x", config.iPhysicalAddress); - SetSetting("physical_address", strPhysicalAddress); } + bChanged |= SetSetting("physical_address", strPhysicalAddress); // set the tv vendor override m_configuration.tvVendor = config.tvVendor; - SetSetting("tv_vendor", (int)config.tvVendor); + bChanged |= SetSetting("tv_vendor", (int)config.tvVendor); // set the devices to wake when starting m_configuration.wakeDevices = config.wakeDevices; CStdString strWakeDevices; - for (unsigned int iPtr = 0; iPtr <= 16; iPtr++) + for (unsigned int iPtr = CECDEVICE_TV; iPtr <= CECDEVICE_BROADCAST; iPtr++) if (config.wakeDevices[iPtr]) strWakeDevices.AppendFormat(" %X", iPtr); - SetSetting("wake_devices", strWakeDevices.Trim()); + bChanged |= SetSetting("wake_devices", strWakeDevices.Trim()); // set the devices to power off when stopping m_configuration.powerOffDevices = config.powerOffDevices; CStdString strPowerOffDevices; - for (unsigned int iPtr = 0; iPtr <= 16; iPtr++) + for (unsigned int iPtr = CECDEVICE_TV; iPtr <= CECDEVICE_BROADCAST; iPtr++) if (config.powerOffDevices[iPtr]) strPowerOffDevices.AppendFormat(" %X", iPtr); - SetSetting("wake_devices", strPowerOffDevices.Trim()); + bChanged |= SetSetting("standby_devices", strPowerOffDevices.Trim()); // set the boolean settings m_configuration.bUseTVMenuLanguage = config.bUseTVMenuLanguage; - SetSetting("use_tv_menu_language", m_configuration.bUseTVMenuLanguage == 1); + bChanged |= SetSetting("use_tv_menu_language", m_configuration.bUseTVMenuLanguage == 1); m_configuration.bActivateSource = config.bActivateSource; - SetSetting("activate_source", m_configuration.bActivateSource == 1); + bChanged |= SetSetting("activate_source", m_configuration.bActivateSource == 1); m_configuration.bPowerOffScreensaver = config.bPowerOffScreensaver; - SetSetting("cec_standby_screensaver", m_configuration.bPowerOffScreensaver == 1); + bChanged |= SetSetting("cec_standby_screensaver", m_configuration.bPowerOffScreensaver == 1); m_configuration.bPowerOffOnStandby = config.bPowerOffOnStandby; - SetSetting("standby_pc_on_tv_standby", m_configuration.bPowerOffOnStandby == 1); if (config.serverVersion >= CEC_SERVER_VERSION_1_5_1) m_configuration.bSendInactiveSource = config.bSendInactiveSource; - SetSetting("send_inactive_source", m_configuration.bSendInactiveSource == 1); + bChanged |= SetSetting("send_inactive_source", m_configuration.bSendInactiveSource == 1); + + if (config.serverVersion >= CEC_SERVER_VERSION_1_6_0) + { + m_configuration.iFirmwareVersion = config.iFirmwareVersion; + m_configuration.bShutdownOnStandby = config.bShutdownOnStandby; + } + + if (config.serverVersion >= CEC_SERVER_VERSION_1_6_2) + { + memcpy(m_configuration.strDeviceLanguage, config.strDeviceLanguage, 3); + m_configuration.iFirmwareBuildDate = config.iFirmwareBuildDate; + } + + SetVersionInfo(m_configuration); + + bChanged |= SetSetting("standby_pc_on_tv_standby", + m_configuration.bPowerOffOnStandby == 1 ? 13011 : + m_configuration.bShutdownOnStandby == 1 ? 13005 : 36028); + + if (bChanged) + CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Info, g_localizeStrings.Get(36000), g_localizeStrings.Get(36023)); } void CPeripheralCecAdapter::SetConfigurationFromSettings(void) { - // client version 1.5.0 - m_configuration.clientVersion = CEC_CLIENT_VERSION_1_5_1; + // client version 1.7.1 + m_configuration.clientVersion = CEC_CLIENT_VERSION_1_7_1; // device name 'XBMC' snprintf(m_configuration.strDeviceName, 13, "%s", GetSettingString("device_name").c_str()); @@ -1027,28 +1281,35 @@ void CPeripheralCecAdapter::SetConfigurationFromSettings(void) // always try to autodetect the address. // when the firmware supports this, it will override the physical address, connected device and hdmi port settings - m_configuration.bAutodetectAddress = 1; + m_configuration.bAutodetectAddress = CEC_DEFAULT_SETTING_AUTODETECT_ADDRESS; // set the physical address // when set, it will override the connected device and hdmi port settings CStdString strPhysicalAddress = GetSettingString("physical_address"); int iPhysicalAddress; - if (sscanf(strPhysicalAddress.c_str(), "%x", &iPhysicalAddress) == 1 && iPhysicalAddress > 0 && iPhysicalAddress < 0xFFFF) + if (sscanf(strPhysicalAddress.c_str(), "%x", &iPhysicalAddress) && + iPhysicalAddress >= CEC_PHYSICAL_ADDRESS_TV && + iPhysicalAddress <= CEC_MAX_PHYSICAL_ADDRESS) m_configuration.iPhysicalAddress = iPhysicalAddress; + else + m_configuration.iPhysicalAddress = CEC_PHYSICAL_ADDRESS_TV; // set the connected device int iConnectedDevice = GetSettingInt("connected_device"); - if (iConnectedDevice == 0 || iConnectedDevice == 5) + if (iConnectedDevice == CECDEVICE_TV || + iConnectedDevice == CECDEVICE_AUDIOSYSTEM) m_configuration.baseDevice = (cec_logical_address)iConnectedDevice; // set the HDMI port number int iHDMIPort = GetSettingInt("cec_hdmi_port"); - if (iHDMIPort >= 0 && iHDMIPort <= 4) + if (iHDMIPort >= CEC_MIN_HDMI_PORTNUMBER && + iHDMIPort <= CEC_MAX_HDMI_PORTNUMBER) m_configuration.iHDMIPort = iHDMIPort; // set the tv vendor override int iVendor = GetSettingInt("tv_vendor"); - if (iVendor > 0 && iVendor < 0xFFFFFF) + if (iVendor >= CEC_MAX_VENDORID && + iVendor <= CEC_MAX_VENDORID) m_configuration.tvVendor = iVendor; // read the devices to wake when starting @@ -1061,15 +1322,16 @@ void CPeripheralCecAdapter::SetConfigurationFromSettings(void) m_configuration.powerOffDevices.Clear(); ReadLogicalAddresses(strStandbyDevices, m_configuration.powerOffDevices); - // always get the settings from the rom, when supported by the firmware - m_configuration.bGetSettingsFromROM = 1; - // read the boolean settings m_configuration.bUseTVMenuLanguage = GetSettingBool("use_tv_menu_language") ? 1 : 0; m_configuration.bActivateSource = GetSettingBool("activate_source") ? 1 : 0; m_configuration.bPowerOffScreensaver = GetSettingBool("cec_standby_screensaver") ? 1 : 0; - m_configuration.bPowerOffOnStandby = GetSettingBool("standby_pc_on_tv_standby") ? 1 : 0; m_configuration.bSendInactiveSource = GetSettingBool("send_inactive_source") ? 1 : 0; + + // read the mutually exclusive boolean settings + int iStandbyAction(GetSettingInt("standby_pc_on_tv_standby")); + m_configuration.bPowerOffOnStandby = iStandbyAction == 13011 ? 1 : 0; + m_configuration.bShutdownOnStandby = iStandbyAction == 13005 ? 1 : 0; } void CPeripheralCecAdapter::ReadLogicalAddresses(const CStdString &strString, cec_logical_addresses &addresses) @@ -1112,6 +1374,9 @@ void CPeripheralCecAdapterUpdateThread::Signal(void) bool CPeripheralCecAdapterUpdateThread::UpdateConfiguration(libcec_configuration *configuration) { CSingleLock lock(m_critSection); + if (!configuration) + return false; + if (m_bIsUpdating) { m_bNextConfigurationScheduled = true; @@ -1149,47 +1414,76 @@ bool CPeripheralCecAdapterUpdateThread::WaitReady(void) return powerStatus == CEC_POWER_STATUS_ON; } -bool CPeripheralCecAdapterUpdateThread::SetInitialConfiguration(void) +void CPeripheralCecAdapterUpdateThread::UpdateMenuLanguage(void) { - // devices to wake are set - if (!m_configuration.wakeDevices.IsEmpty()) - m_adapter->m_cecAdapter->PowerOnDevices(CECDEVICE_BROADCAST); - - // the option to make XBMC the active source is set - if (m_configuration.bActivateSource == 1) - m_adapter->m_cecAdapter->SetActiveSource(); - - // wait until devices are powered up - if (!WaitReady()) - return false; - // request the menu language of the TV if (m_configuration.bUseTVMenuLanguage == 1) { + CLog::Log(LOGDEBUG, "%s - requesting the menu language of the TV", __FUNCTION__); cec_menu_language language; if (m_adapter->m_cecAdapter->GetDeviceMenuLanguage(CECDEVICE_TV, &language)) m_adapter->SetMenuLanguage(language.language); + else + CLog::Log(LOGDEBUG, "%s - unknown menu language", __FUNCTION__); } + else + { + CLog::Log(LOGDEBUG, "%s - using TV menu language is disabled", __FUNCTION__); + } +} - // request the OSD name of the TV - CStdString strNotification; - cec_osd_name tvName = m_adapter->m_cecAdapter->GetDeviceOSDName(CECDEVICE_TV); - strNotification.Format("%s: %s", g_localizeStrings.Get(36016), tvName.name); +CStdString CPeripheralCecAdapterUpdateThread::UpdateAudioSystemStatus(void) +{ + CStdString strAmpName; /* disable the mute setting when an amp is found, because the amp handles the mute setting and - set PCM output to 100% */ + set PCM output to 100% */ if (m_adapter->m_cecAdapter->IsActiveDeviceType(CEC_DEVICE_TYPE_AUDIO_SYSTEM)) { // request the OSD name of the amp cec_osd_name ampName = m_adapter->m_cecAdapter->GetDeviceOSDName(CECDEVICE_AUDIOSYSTEM); CLog::Log(LOGDEBUG, "%s - CEC capable amplifier found (%s). volume will be controlled on the amp", __FUNCTION__, ampName.name); - strNotification.AppendFormat(" - %s", ampName.name); + strAmpName.AppendFormat("%s", ampName.name); // set amp present m_adapter->SetAudioSystemConnected(true); g_settings.m_bMute = false; g_settings.m_fVolumeLevel = VOLUME_MAXIMUM; } + else + { + // set amp present + CLog::Log(LOGDEBUG, "%s - no CEC capable amplifier found", __FUNCTION__); + m_adapter->SetAudioSystemConnected(false); + } + + return strAmpName; +} + +bool CPeripheralCecAdapterUpdateThread::SetInitialConfiguration(void) +{ + // devices to wake are set + if (!m_configuration.wakeDevices.IsEmpty()) + m_adapter->m_cecAdapter->PowerOnDevices(CECDEVICE_BROADCAST); + + // the option to make XBMC the active source is set + if (m_configuration.bActivateSource == 1) + m_adapter->m_cecAdapter->SetActiveSource(); + + // wait until devices are powered up + if (!WaitReady()) + return false; + + UpdateMenuLanguage(); + + // request the OSD name of the TV + CStdString strNotification; + cec_osd_name tvName = m_adapter->m_cecAdapter->GetDeviceOSDName(CECDEVICE_TV); + strNotification.Format("%s: %s", g_localizeStrings.Get(36016), tvName.name); + + CStdString strAmpName = UpdateAudioSystemStatus(); + if (!strAmpName.empty()) + strNotification.AppendFormat("- %s", strAmpName.c_str()); m_adapter->m_bIsReady = true; @@ -1203,6 +1497,12 @@ bool CPeripheralCecAdapterUpdateThread::SetInitialConfiguration(void) return true; } +bool CPeripheralCecAdapter::IsRunning(void) const +{ + CSingleLock lock(m_critSection); + return m_bIsRunning; +} + void CPeripheralCecAdapterUpdateThread::Process(void) { // set the initial configuration @@ -1214,17 +1514,34 @@ void CPeripheralCecAdapterUpdateThread::Process(void) while (!m_bStop) { // update received - if (m_event.WaitMSec(500) || bUpdate) + if (bUpdate || m_event.WaitMSec(500)) { if (m_bStop) return; // set the new configuration - bool bConfigSet(m_adapter->m_cecAdapter->SetConfiguration(&m_configuration)); + libcec_configuration configuration; + { + CSingleLock lock(m_critSection); + configuration = m_configuration; + m_bIsUpdating = false; + } + + CLog::Log(LOGDEBUG, "%s - updating the configuration", __FUNCTION__); + bool bConfigSet(m_adapter->m_cecAdapter->SetConfiguration(&configuration)); + // display message: config updated / failed to update + if (!bConfigSet) + CLog::Log(LOGERROR, "%s - libCEC couldn't set the new configuration", __FUNCTION__); + else + { + UpdateMenuLanguage(); + UpdateAudioSystemStatus(); + } + CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Info, g_localizeStrings.Get(36000), g_localizeStrings.Get(bConfigSet ? 36023 : 36024)); + { CSingleLock lock(m_critSection); - bUpdate = m_bNextConfigurationScheduled; - if (bUpdate) + if ((bUpdate = m_bNextConfigurationScheduled) == true) { // another update is scheduled m_bNextConfigurationScheduled = false; @@ -1241,4 +1558,23 @@ void CPeripheralCecAdapterUpdateThread::Process(void) } } +void CPeripheralCecAdapter::OnDeviceRemoved(void) +{ + CSingleLock lock(m_critSection); + m_bDeviceRemoved = true; +} + +void CPeripheralCecAdapter::ReopenConnection(void) +{ + { + CSingleLock lock(m_critSection); + m_iExitCode = EXITCODE_RESTARTAPP; + CAnnouncementManager::RemoveAnnouncer(this); + StopThread(false); + } + + StopThread(); + Create(); +} + #endif diff --git a/xbmc/peripherals/devices/PeripheralCecAdapter.h b/xbmc/peripherals/devices/PeripheralCecAdapter.h index 105fbc4a0c..152e50b3d4 100644 --- a/xbmc/peripherals/devices/PeripheralCecAdapter.h +++ b/xbmc/peripherals/devices/PeripheralCecAdapter.h @@ -90,40 +90,47 @@ namespace PERIPHERALS CPeripheralCecAdapter(const PeripheralType type, const PeripheralBusType busType, const CStdString &strLocation, const CStdString &strDeviceName, int iVendorId, int iProductId); virtual ~CPeripheralCecAdapter(void); - virtual void Announce(ANNOUNCEMENT::AnnouncementFlag flag, const char *sender, const char *message, const CVariant &data); - virtual bool HasConnectedAudioSystem(void); - virtual void SetAudioSystemConnected(bool bSetTo); - virtual void ScheduleVolumeUp(void); - virtual void VolumeUp(void); - virtual void ScheduleVolumeDown(void); - virtual void VolumeDown(void); - virtual void ScheduleMute(void); - virtual void Mute(void); - virtual bool IsMuted(void); - - virtual void OnSettingChanged(const CStdString &strChangedSetting); - - virtual int GetButton(void); - virtual unsigned int GetHoldTime(void); - virtual void ResetButton(void); - virtual CStdString GetComPort(void); + void Announce(ANNOUNCEMENT::AnnouncementFlag flag, const char *sender, const char *message, const CVariant &data); + bool HasConnectedAudioSystem(void); + void SetAudioSystemConnected(bool bSetTo); + void ScheduleVolumeUp(void); + void VolumeUp(void); + void ScheduleVolumeDown(void); + void VolumeDown(void); + void ScheduleMute(void); + void Mute(void); + bool IsMuted(void); + + void OnSettingChanged(const CStdString &strChangedSetting); + void OnDeviceRemoved(void); + + int GetButton(void); + unsigned int GetHoldTime(void); + void ResetButton(void); + CStdString GetComPort(void); + + void PushCecKeypress(const CEC::cec_keypress &key); protected: - virtual bool OpenConnection(void); - virtual void SetConfigurationFromSettings(void); - virtual void SetConfigurationFromLibCEC(const CEC::libcec_configuration &config); + bool OpenConnection(void); + void SetConfigurationFromSettings(void); + void SetConfigurationFromLibCEC(const CEC::libcec_configuration &config); + void SetVersionInfo(const CEC::libcec_configuration &configuration); static void ReadLogicalAddresses(const CStdString &strString, CEC::cec_logical_addresses &addresses); static int CecKeyPress(void *cbParam, const CEC::cec_keypress &key); + void PushCecKeypress(const CecButtonPress &key); static int CecLogMessage(void *cbParam, const CEC::cec_log_message &message); static int CecCommand(void *cbParam, const CEC::cec_command &command); static int CecConfiguration(void *cbParam, const CEC::libcec_configuration &config); - - virtual bool GetNextKey(void); - virtual bool GetNextCecKey(CEC::cec_keypress &key); - virtual bool InitialiseFeature(const PeripheralFeature feature); - virtual void Process(void); - virtual void ProcessVolumeChange(void); - virtual void SetMenuLanguage(const char *strLanguage); + static int CecAlert(void *cbParam, const CEC::libcec_alert alert, const CEC::libcec_parameter &data); + bool IsRunning(void) const; + void ReopenConnection(void); + + void GetNextKey(void); + bool InitialiseFeature(const PeripheralFeature feature); + void Process(void); + void ProcessVolumeChange(void); + void SetMenuLanguage(const char *strLanguage); static bool FindConfigLocation(CStdString &strString); static bool TranslateComPort(CStdString &strPort); @@ -135,13 +142,16 @@ namespace PERIPHERALS bool m_bHasConnectedAudioSystem; CStdString m_strMenuLanguage; CDateTime m_screensaverLastActivated; - CecButtonPress m_button; - std::queue<CEC::cec_keypress> m_buttonQueue; + std::vector<CecButtonPress> m_buttonQueue; + CecButtonPress m_currentButton; std::queue<CecVolumeChange> m_volumeChangeQueue; unsigned int m_lastKeypress; CecVolumeChange m_lastChange; int m_iExitCode; bool m_bIsMuted; + bool m_bGoingToStandby; + bool m_bIsRunning; + bool m_bDeviceRemoved; CPeripheralCecAdapterUpdateThread*m_queryThread; CEC::ICECCallbacks m_callbacks; CCriticalSection m_critSection; @@ -154,13 +164,15 @@ namespace PERIPHERALS CPeripheralCecAdapterUpdateThread(CPeripheralCecAdapter *adapter, CEC::libcec_configuration *configuration); virtual ~CPeripheralCecAdapterUpdateThread(void); - virtual void Signal(void); - virtual bool UpdateConfiguration(CEC::libcec_configuration *configuration); + void Signal(void); + bool UpdateConfiguration(CEC::libcec_configuration *configuration); protected: - virtual bool WaitReady(void); - virtual bool SetInitialConfiguration(void); - virtual void Process(void); + void UpdateMenuLanguage(void); + CStdString UpdateAudioSystemStatus(void); + bool WaitReady(void); + bool SetInitialConfiguration(void); + void Process(void); CPeripheralCecAdapter * m_adapter; CEvent m_event; |