aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/skin.confluence/720p/DialogPeripheralManager.xml4
-rwxr-xr-xconfigure.in2
-rw-r--r--language/Afrikaans/strings.po38
-rw-r--r--language/Arabic/strings.po38
-rw-r--r--language/Basque/strings.po38
-rw-r--r--language/Bosnian/strings.po38
-rw-r--r--language/Bulgarian/strings.po38
-rw-r--r--language/Catalan/strings.po66
-rw-r--r--language/Chinese (Simple)/strings.po38
-rw-r--r--language/Chinese (Traditional)/strings.po38
-rw-r--r--language/Croatian/strings.po38
-rw-r--r--language/Czech/strings.po38
-rw-r--r--language/Danish/strings.po38
-rw-r--r--language/Dutch/strings.po44
-rw-r--r--language/English (US)/strings.po38
-rw-r--r--language/English/strings.po38
-rw-r--r--language/Esperanto/strings.po38
-rw-r--r--language/Finnish/strings.po38
-rw-r--r--language/French/strings.po34
-rw-r--r--language/German/strings.po38
-rw-r--r--language/Greek/strings.po38
-rw-r--r--language/Hebrew/strings.po38
-rw-r--r--language/Hindi (Devanagiri)/strings.po38
-rw-r--r--language/Hungarian/strings.po38
-rw-r--r--language/Icelandic/strings.po38
-rw-r--r--language/Indonesian/strings.po38
-rw-r--r--language/Italian/strings.po38
-rw-r--r--language/Japanese/strings.po38
-rw-r--r--language/Korean/strings.po38
-rw-r--r--language/Lithuanian/strings.po38
-rw-r--r--language/Maltese/strings.po38
-rw-r--r--language/Norwegian/strings.po38
-rw-r--r--language/Polish/strings.po38
-rw-r--r--language/Portuguese (Brazil)/strings.po38
-rw-r--r--language/Portuguese/strings.po38
-rw-r--r--language/Romanian/strings.po38
-rw-r--r--language/Russian/strings.po38
-rw-r--r--language/Serbian (Cyrillic)/strings.po38
-rw-r--r--language/Serbian/strings.po38
-rw-r--r--language/Slovak/strings.po38
-rw-r--r--language/Slovenian/strings.po38
-rw-r--r--language/Spanish (Mexico)/strings.po38
-rw-r--r--language/Spanish/strings.po38
-rw-r--r--language/Swedish/strings.po38
-rw-r--r--language/Thai/strings.po38
-rw-r--r--language/Turkish/strings.po38
-rw-r--r--language/Ukrainian/strings.po38
-rw-r--r--project/BuildDependencies/scripts/libcec_d.bat1
-rw-r--r--project/BuildDependencies/scripts/libcec_d.txt2
-rw-r--r--system/peripherals.xml15
-rw-r--r--tools/darwin/depends/libcec/Makefile2
-rw-r--r--xbmc/Application.cpp14
-rw-r--r--xbmc/Application.h4
-rw-r--r--xbmc/peripherals/Peripherals.h1
-rw-r--r--xbmc/peripherals/bus/PeripheralBus.cpp1
-rw-r--r--xbmc/peripherals/devices/Peripheral.cpp36
-rw-r--r--xbmc/peripherals/devices/Peripheral.h10
-rw-r--r--xbmc/peripherals/devices/PeripheralCecAdapter.cpp712
-rw-r--r--xbmc/peripherals/devices/PeripheralCecAdapter.h80
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;