The branch, frodo has been updated
via e5b9c51db7e7c22a4ee5d6f7b6e706d3f1d76ff7 (commit)
from b95b3c7b7329cd809337cafeee261c93d57fa917 (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/scripts;a=commit;h=e5b9c51db7e7c22a4ee5d6f7b6e706d3f1d76ff7
commit e5b9c51db7e7c22a4ee5d6f7b6e706d3f1d76ff7
Author: Martijn Kaijser <[email protected]>
Date: Thu Feb 20 15:35:43 2014 +0100
[script.xbmc.boblight] 2.0.7
diff --git a/script.xbmc.boblight/addon.xml b/script.xbmc.boblight/addon.xml
index c78fe9c..bab33cf 100644
--- a/script.xbmc.boblight/addon.xml
+++ b/script.xbmc.boblight/addon.xml
@@ -1,17 +1,54 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="script.xbmc.boblight" name="XBMC Boblight" version="2.0.6"
provider-name="bobo1on1, Memphiz">
+<addon id="script.xbmc.boblight" name="XBMC Boblight" version="2.0.7"
provider-name="bobo1on1, Memphiz">
<requires>
<import addon="xbmc.python" version="2.1.0"/>
</requires>
<extension point="xbmc.service" library="default.py"
start="login"></extension>
<extension point="xbmc.addon.metadata">
+ <summary lang="ca">Connecta la sortida del XBMC a boblight</summary>
+ <summary lang="de">Verbinde XBMC Ausgabe mit boblight</summary>
+ <summary lang="el">ΣÏνδεÏη ÏÎ·Ï ÎµÎ¾ÏδοÏ
XBMC ÏÏο
boblight.</summary>
<summary lang="en">Connect XBMC output to boblight.</summary>
+ <summary lang="es">Conecte la salida de boblight a XBMC</summary>
+ <summary lang="gl">Conectar a saÃda do XBMC a boblight.</summary>
+ <summary lang="he">××ר פ×× XBMC ×-Boblight.</summary>
+ <summary lang="hr">Poveži XBMC izlaz s boblight.</summary>
+ <summary lang="hu">XBMC kimenetének boblight-hoz kapcsolása.</summary>
+ <summary lang="it">Connetti l'output di XBMC a boblight.</summary>
+ <summary lang="ko">XBMC ì¶ë ¥ì boblightì ì°ê²°</summary>
+ <summary lang="nl">verbind met XBMC output naar boblight.</summary>
+ <summary lang="pl">PodÅÄ
cz wyjÅcie XBMC do boblight.</summary>
+ <summary lang="pt">Ligar saÃda do XBMC a boblight.</summary>
+ <description lang="ca">Connecta la sortida del XBMC a un mòdul extern de
boblight</description>
+ <description lang="de">Verbinde XBMC Ausgabe mit boblight
Backend</description>
+ <description lang="el">ΣÏνδεÏη ÏÎ·Ï ÎµÎ¾ÏδοÏ
XBMC ÏÏο
backend ÏοÏ
boblight.</description>
<description lang="en">Connect XBMC output to boblight
backend.</description>
+ <description lang="gl">Conectar a saÃda do XBMC ao motor de
boblight.</description>
+ <description lang="he">××ר פ×× XBMC ×שרת Boblight.</description>
+ <description lang="hr">Poveži XBMC izlaz s boblight
pozadinski.</description>
+ <description lang="hu">XBMC kimenetének boblight
háttérszolgáltatáshoz kapcsolása.</description>
+ <description lang="it">Connetti l'output di XBMC al backend di
boblight.</description>
+ <description lang="ko">XBMC ì¶ë ¥ì boblight ë°±ìëì
ì°ê²°</description>
+ <description lang="nl">Verbind XBMC output naar boblight
backend.</description>
+ <description lang="pl">PodÅÄ
cz wyjÅcie XBMC do konsoli
boblight.</description>
+ <description lang="pt">Ligar saÃda do XBMC Ã backend
boblight.</description>
+ <disclaimer lang="ca">Necessites tindre el binari correcte perquè el
complement funcioni</disclaimer>
+ <disclaimer lang="de">Du musst das korrekte Binary Addon installiert
haben, damit diese Funktion unterstützt wird.</disclaimer>
+ <disclaimer lang="el">ΧÏειάζεÏαι να ÎÏεÏε
εγκαÏεÏÏημÎνο Îνα καÏάλληλο δÏ
αδικÏ
ÏÏÏÏθεÏο για να δοÏ
λÎÏει.</disclaimer>
<disclaimer lang="en">You need to have the correct binary addon installed
for this to work.</disclaimer>
+ <disclaimer lang="gl">Precisa ter instalado o complemento binario correcto
para que funcione.</disclaimer>
+ <disclaimer lang="he">××ר××× ×××× ×¨×ת ××ת××××
צר××× ××××ת ×××ª×§× ×ª ×¢"× ×©×× ×פע×.</disclaimer>
+ <disclaimer lang="hr">Morate imati ispravan binarni dodatak instaliran da
bi ovo radilo.</disclaimer>
+ <disclaimer lang="hu">TelepÃtve kell legyen a megfelelÅ bináris
könyvtár ehhez a kiegészÃtÅhöz.</disclaimer>
+ <disclaimer lang="it">E' necessario avere l'addon binario giusto perchè
questo funzioni.</disclaimer>
+ <disclaimer lang="ko">ëìíë ¤ë©´ ë°ì´ë리 ì ëì¨ì´
ì¤ì¹ëì´ ìì´ì¼ í©ëë¤.</disclaimer>
+ <disclaimer lang="nl">Je moet de juiste binaire add-on hebben
geïnstalleerd voor dit om te werken.</disclaimer>
+ <disclaimer lang="pl">W celu poprawnego dziaÅania musisz mieÄ
zainstalowanÄ
odpowiedniÄ
bibliotekÄ dodatku.</disclaimer>
+ <disclaimer lang="pt">à necessário instalar o addon binário correcto
para que isto funcione.</disclaimer>
<platform>all</platform>
- <website>http://code.google.com/p/boblight/</website>
- <source>https://github.com/bobo1on1/script.xbmc.boblight</source>
- <forum>http://forum.xbmc.org/showthread.php?tid=116331</forum>
- <email></email>
+ <website>http://code.google.com/p/boblight/</website>
+ <source>https://github.com/bobo1on1/script.xbmc.boblight</source>
+ <forum>http://forum.xbmc.org/showthread.php?tid=116331</forum>
+ <email></email>
</extension>
</addon>
diff --git a/script.xbmc.boblight/changelog.txt
b/script.xbmc.boblight/changelog.txt
index e015df3..b4d81da 100644
--- a/script.xbmc.boblight/changelog.txt
+++ b/script.xbmc.boblight/changelog.txt
@@ -1,3 +1,9 @@
+2.0.7
+- [updated] language files from Transifex
+- [fix] for the newly added categories livetv, tvshow and files the category
override didn't work
+- [fix] xbmc always returns the video player content "files" even if no video
is playing - workaround
+ this and fix static boblight during audio playback that way
+
2.0.6
- [changed] use correct string ID range
- [language] added dutch translations - thx to georgehenze
diff --git a/script.xbmc.boblight/default.py b/script.xbmc.boblight/default.py
index 005734a..e8bb040 100644
--- a/script.xbmc.boblight/default.py
+++ b/script.xbmc.boblight/default.py
@@ -75,12 +75,10 @@ class MyMonitor( xbmc.Monitor ):
check_state()
def onScreensaverDeactivated( self ):
- settings.screensaver = False
- settings.handleStaticBgSettings()
+ settings.setScreensaver(False)
def onScreensaverActivated( self ):
- settings.screensaver = True
- settings.handleStaticBgSettings()
+ settings.setScreensaver(True)
class Main():
def __init__( self, *args, **kwargs ):
@@ -156,24 +154,34 @@ def myPlayerChanged(state):
ret = "static"
else:
# Possible Videoplayer options: files, movies, episodes, musicvideos,
livetv
- if xbmc.getCondVisibility("VideoPlayer.Content(musicvideos)"):
- ret = "musicvideo"
- elif xbmc.getCondVisibility("VideoPlayer.Content(episodes)"):
- ret = "tvshow"
- elif xbmc.getCondVisibility("VideoPlayer.Content(livetv)"):
- ret = "livetv"
- elif xbmc.getCondVisibility("VideoPlayer.Content(files)"):
- ret = "files"
+ if xbmc.getCondVisibility("Player.HasVideo()"):
+ if xbmc.getCondVisibility("VideoPlayer.Content(musicvideos)"):
+ ret = "musicvideo"
+ elif xbmc.getCondVisibility("VideoPlayer.Content(episodes)"):
+ ret = "tvshow"
+ elif xbmc.getCondVisibility("VideoPlayer.Content(livetv)"):
+ ret = "livetv"
+ elif xbmc.getCondVisibility("VideoPlayer.Content(files)"):
+ ret = "files"
+
+ #handle overwritten category
+ if settings.overwrite_cat: # fix his out when other
isn't
+ if settings.overwrite_cat_val == 0: # the static light anymore
+ ret = "movie"
+ elif settings.overwrite_cat_val == 1:
+ ret = "musicvideo"
+ elif settings.overwrite_cat_val == 2:
+ ret = "tvshow"
+ elif settings.overwrite_cat_val == 3:
+ ret = "livetv"
+ elif settings.overwrite_cat_val == 4:
+ ret = "files"
+
elif xbmc.getCondVisibility("Player.HasAudio()"):
ret = "static"
else:
ret = "movie"
- if settings.overwrite_cat: # fix his out when other isn't
- if settings.overwrite_cat_val == 0: # the static light anymore
- ret = "movie"
- else:
- ret = "musicvideo"
settings.handleCategory(ret)
diff --git a/script.xbmc.boblight/resources/lib/settings.py
b/script.xbmc.boblight/resources/lib/settings.py
index 605d51f..bc77dd5 100644
--- a/script.xbmc.boblight/resources/lib/settings.py
+++ b/script.xbmc.boblight/resources/lib/settings.py
@@ -57,7 +57,7 @@ class settings():
self.networkaccess = __addon__.getSetting("networkaccess") ==
"true"
self.overwrite_cat = __addon__.getSetting("overwrite_cat") ==
"true"
self.overwrite_cat_val =
int(__addon__.getSetting("overwrite_cat_val"))
- self.screensaver =
xbmc.getCondVisibility("System.ScreenSaverActive")
+ self.bobdisableonscreensaver =
__addon__.getSetting("bobdisableonscreensaver") == "true"
self.bobdisable = __addon__.getSetting("bobdisable") ==
"true"
self.current_option = ""
@@ -78,7 +78,6 @@ class settings():
self.other_static_red =
int(float(__addon__.getSetting("other_static_red")))
self.other_static_green =
int(float(__addon__.getSetting("other_static_green")))
self.other_static_blue =
int(float(__addon__.getSetting("other_static_blue")))
- self.other_static_onscreensaver =
__addon__.getSetting("other_static_onscreensaver") == "true"
self.other_misc_initialflash =
__addon__.getSetting("other_misc_initialflash") == "true"
self.other_misc_notifications =
__addon__.getSetting("other_misc_notifications") == "true"
@@ -127,6 +126,18 @@ class settings():
self.music_threshold =
float(__addon__.getSetting("musicvideo_threshold"))
self.music_preset =
int(__addon__.getSetting("musicvideo_preset"))
+ def setScreensaver(self, enabled):
+ if self.bobdisableonscreensaver and enabled:
+ self.bobdisable = True
+ else:
+ # reset the bobdisable setting from settings
+ self.bobdisable = __addon__.getSetting("bobdisable") == "true"
+ if not self.bobdisable:#if we are not disabled in general
+ if self.category == "static":
+ self.handleStaticBgSettings()#turns on or off the lights based on
static settings
+ else:#we are playing something - turn the lights on
+ bob.bob_set_priority(128) #lights on
+
#handle boblight configuration from the "Movie" category
#returns the new settings
def setupForMovie(self):
@@ -334,10 +345,8 @@ class settings():
def handleStaticBgSettings(self):
log('settings() - handleStaticBgSettings')
if (self.category == "static" and # only for 'static'
category
- self.other_static_bg and # only if we want it
displayed on static
- (not (self.screensaver and
- self.other_static_onscreensaver)) # only if screen saver
is off and we want it on
- ):
+ self.other_static_bg): # only if we want it
displayed on static
+
bob.bob_set_priority(128) # allow lights to be
turned on
rgb = (c_int * 3)(self.other_static_red,
self.other_static_green,
diff --git a/script.xbmc.boblight/resources/settings.xml
b/script.xbmc.boblight/resources/settings.xml
index 0827244..d72a873 100644
--- a/script.xbmc.boblight/resources/settings.xml
+++ b/script.xbmc.boblight/resources/settings.xml
@@ -8,6 +8,7 @@
<setting id="hostip" type="ipaddress" subsetting="true"
enable="eq(-1,true)" label="32102" default="127.0.0.1" />
<setting id="hostport" type="number" subsetting="true"
enable="eq(-2,true)" label="32103" default="19333" />
<setting id="sep2" type="sep" />
+ <setting id="bobdisableonscreensaver" type="bool" label="32405"
default="false" />
<setting id="bobdisable" type="bool" label="32104" default="false" />
</category>
<category label="32200">
@@ -67,7 +68,6 @@
<setting id="other_static_red" type="slider" subsetting="true"
enable="eq(-1,true)" label="32402" option="int" default="128" range="0,255" />
<setting id="other_static_green" type="slider" subsetting="true"
enable="eq(-2,true)" label="32403" option="int" default="128" range="0,255" />
<setting id="other_static_blue" type="slider" subsetting="true"
enable="eq(-3,true)" label="32404" option="int" default="128" range="0,255" />
- <setting id="other_static_onscreensaver" type="bool" label="32405"
default="false" />
<setting id="sep3" type="sep" />
<setting id="other_misc_initialflash" type="bool" label="32406"
default="true" />
<setting id="other_misc_notifications" type="bool" label="32407"
default="true" />
-----------------------------------------------------------------------
Summary of changes:
script.xbmc.boblight/addon.xml | 47 +++-
script.xbmc.boblight/changelog.txt | 6 +
script.xbmc.boblight/default.py | 42 ++--
.../resources/language/Afrikaans/strings.po | 137 ++++++++++
.../resources/language/Albanian/strings.po | 133 +++++++++
.../resources/language/Amharic/strings.po | 113 ++++++++
.../resources/language/Arabic/strings.po | 133 +++++++++
.../resources/language/Basque/strings.po | 113 ++++++++
.../resources/language/Belarusian/strings.po | 145 ++++++++++
.../resources/language/Bosnian/strings.po | 113 ++++++++
.../resources/language/Bulgarian/strings.po | 141 ++++++++++
.../resources/language/Catalan/strings.po | 245 +++++++++++++++++
.../resources/language/Chinese (Simple)/strings.po | 145 ++++++++++
.../language/Chinese (Traditional)/strings.po | 141 ++++++++++
.../resources/language/Croatian/strings.po | 245 +++++++++++++++++
.../resources/language/Czech/strings.po | 141 ++++++++++
.../resources/language/Danish/strings.po | 145 ++++++++++
.../resources/language/Dutch/strings.po | 249 +++++++++++++++++
.../resources/language/Dutch/strings.xml | 86 ------
.../resources/language/English (US)/strings.po | 21 ++
.../resources/language/English/strings.po | 284 ++++++++++++++++++++
.../resources/language/English/strings.xml | 88 ------
.../resources/language/Esperanto/strings.po | 85 ++++++
.../resources/language/Estonian/strings.po | 141 ++++++++++
.../resources/language/Finnish/strings.po | 137 ++++++++++
.../resources/language/French/strings.po | 145 ++++++++++
.../resources/language/Galician/strings.po | 245 +++++++++++++++++
.../resources/language/Georgian/strings.po | 21 ++
.../resources/language/German/strings.po | 249 +++++++++++++++++
.../resources/language/German/strings.xml | 86 ------
.../resources/language/Greek/strings.po | 249 +++++++++++++++++
.../language/Haitian (Haitian Creole)/strings.po | 21 ++
.../resources/language/Hebrew/strings.po | 245 +++++++++++++++++
.../language/Hindi (Devanagiri)/strings.po | 73 +++++
.../resources/language/Hungarian/strings.po | 249 +++++++++++++++++
.../resources/language/Icelandic/strings.po | 137 ++++++++++
.../resources/language/Indonesian/strings.po | 133 +++++++++
.../resources/language/Italian/strings.po | 245 +++++++++++++++++
.../resources/language/Japanese/strings.po | 137 ++++++++++
.../resources/language/Korean/strings.po | 225 ++++++++++++++++
.../resources/language/Latvian/strings.po | 33 +++
.../resources/language/Lithuanian/strings.po | 137 ++++++++++
.../resources/language/Macedonian/strings.po | 133 +++++++++
.../resources/language/Malay/strings.po | 81 ++++++
.../resources/language/Malayalam/strings.po | 21 ++
.../resources/language/Maltese/strings.po | 113 ++++++++
.../resources/language/Norwegian/strings.po | 145 ++++++++++
.../resources/language/Persian (Iran)/strings.po | 93 +++++++
.../resources/language/Persian/strings.po | 49 ++++
.../resources/language/Polish/strings.po | 249 +++++++++++++++++
.../language/Portuguese (Brazil)/strings.po | 197 ++++++++++++++
.../resources/language/Portuguese/strings.po | 249 +++++++++++++++++
.../resources/language/Romanian/strings.po | 137 ++++++++++
.../resources/language/Russian/strings.po | 141 ++++++++++
.../language/Serbian (Cyrillic)/strings.po | 113 ++++++++
.../resources/language/Serbian/strings.po | 113 ++++++++
.../resources/language/Slovak/strings.po | 145 ++++++++++
.../resources/language/Slovenian/strings.po | 133 +++++++++
.../language/Spanish (Argentina)/strings.po | 141 ++++++++++
.../resources/language/Spanish (Mexico)/strings.po | 137 ++++++++++
.../resources/language/Spanish/strings.po | 145 ++++++++++
.../resources/language/Swedish/strings.po | 145 ++++++++++
.../resources/language/Tamil (India)/strings.po | 137 ++++++++++
.../resources/language/Thai/strings.po | 137 ++++++++++
.../resources/language/Turkish/strings.po | 137 ++++++++++
.../resources/language/Ukrainian/strings.po | 137 ++++++++++
.../resources/language/Uzbek/strings.po | 45 +++
.../language/Vietnamese (Viet Nam)/strings.po | 25 ++
.../resources/language/Vietnamese/strings.po | 133 +++++++++
script.xbmc.boblight/resources/lib/settings.py | 21 +-
script.xbmc.boblight/resources/settings.xml | 2 +-
71 files changed, 9071 insertions(+), 289 deletions(-)
create mode 100644 script.xbmc.boblight/resources/language/Afrikaans/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Albanian/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Amharic/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Arabic/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Basque/strings.po
create mode 100644
script.xbmc.boblight/resources/language/Belarusian/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Bosnian/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Bulgarian/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Catalan/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Chinese
(Simple)/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Chinese
(Traditional)/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Croatian/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Czech/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Danish/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Dutch/strings.po
delete mode 100644 script.xbmc.boblight/resources/language/Dutch/strings.xml
create mode 100644 script.xbmc.boblight/resources/language/English
(US)/strings.po
create mode 100644 script.xbmc.boblight/resources/language/English/strings.po
delete mode 100644 script.xbmc.boblight/resources/language/English/strings.xml
create mode 100644 script.xbmc.boblight/resources/language/Esperanto/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Estonian/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Finnish/strings.po
create mode 100644 script.xbmc.boblight/resources/language/French/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Galician/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Georgian/strings.po
create mode 100644 script.xbmc.boblight/resources/language/German/strings.po
delete mode 100644 script.xbmc.boblight/resources/language/German/strings.xml
create mode 100644 script.xbmc.boblight/resources/language/Greek/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Haitian (Haitian
Creole)/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Hebrew/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Hindi
(Devanagiri)/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Hungarian/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Icelandic/strings.po
create mode 100644
script.xbmc.boblight/resources/language/Indonesian/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Italian/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Japanese/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Korean/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Latvian/strings.po
create mode 100644
script.xbmc.boblight/resources/language/Lithuanian/strings.po
create mode 100644
script.xbmc.boblight/resources/language/Macedonian/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Malay/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Malayalam/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Maltese/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Norwegian/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Persian
(Iran)/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Persian/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Polish/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Portuguese
(Brazil)/strings.po
create mode 100644
script.xbmc.boblight/resources/language/Portuguese/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Romanian/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Russian/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Serbian
(Cyrillic)/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Serbian/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Slovak/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Slovenian/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Spanish
(Argentina)/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Spanish
(Mexico)/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Spanish/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Swedish/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Tamil
(India)/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Thai/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Turkish/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Ukrainian/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Uzbek/strings.po
create mode 100644 script.xbmc.boblight/resources/language/Vietnamese (Viet
Nam)/strings.po
create mode 100644
script.xbmc.boblight/resources/language/Vietnamese/strings.po
hooks/post-receive
--
Scripts
------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons