Beiträge von harryberlin
-
-
Auch mit Infolabel habe ich es auf die Reihe gekriegt, würde trotzdem gern wissen, wo da der Fehler oben ist.
Python
Alles anzeigenimport xbmc def player_song(): print ('try to get song') if xbmc.Player().isPlayingAudio(): print ("it's music") sArtist = xbmc.getInfoLabel('MusicPlayer.Artist') sTitle = xbmc.getInfoLabel('MusicPlayer.Title') print('SONG MUSIC: "%s" - "%s"' % (sArtist, sTitle)) if sArtist == sTitle: return ('%s' % sArtist) if sArtist == '': return ('%s' % (sTitle)) if sTitle == '': return ('%s' % (sArtist)) return ('%s - %s' % (sArtist, sTitle)) elif xbmc.Player().isPlayingVideo(): print("it's video") sTitle = xbmc.getInfoLabel('VideoPlayer.Title') print('SONG VIDEO: "%s"' % (sTitle)) return ('%s' % sTitle) else: print('SONG: empty') return ''
-
Brauch mal wieder eure Hilfe. Ich möchte ne Funktion basteln, die mir den aktuellen Trackartist/-titel als string zurück gibt.
Hab mir schon nen Wolf programmiert, aber die strings sind immer leer.
Könnt ihr den Fehler sehen?Per jsonrpc habe ich es hin bekommen, aber das scheint recht lang zu dauern.
Python
Alles anzeigenimport xbmc def player_song(): print ('try to get song') if xbmc.Player().isPlayingAudio(): print ("it's music") sArtist = xbmc.InfoTagMusic().getArtist() sTitle = xbmc.InfoTagMusic().getTitle() print('SONG MUSIC: "%s" - "%s"' % (sArtist, sTitle)) if sArtist == sTitle: return ('%s' % sArtist) else: return ('%s - %s' % (sArtist, sTitle)) elif xbmc.Player().isPlayingVideo(): print("it's video") sTitle = xbmc.InfoTagVideo().getTitle() sFile = xbmc.InfoTagVideo().getFile() print('SONG VIDEO: "%s" - "%s"' % (sTitle, sFile)) if sTitle != '': return ('%s' % sTitle) else: return ('%s' % xbmc.InfoTagVideo().getFile()) else: print('SONG: empty') return ''
-
Ich nutze OSMC, aber habe RPI.GIO nicht installiert bekommen. Immer wieder ein Fehler.
Hab es auch über pip versucht, aber geht nicht.
Der Download läuft, aber beim setup gibts probleme. -
Antwort hier hin verschoben:
RPi.GPIO Addon? -
achso ja klar eine funktion. die alle eigenschaften setzt.
ich setzt halt die varaiblen mit nur einer funktion die mehrfach verwendet werden kann.
int, float oder so kann man dann immer noch machen, wenn der wert da ist.
mir war halt wichtig, dass True und False richtig zurück gegeben wird.
so eine art helper-function.
du parst in jeder zeile auf den string. aus meiner sicht mehr tipparbeit.ja ich weiß, du hebst jetzt wieder den finger wegen meinen vielen globals.
-
dann hast du aber mehrere funktionen um die settings zu laden?
-
ja schon, bei mir im code ist es auch definiert. ich hatte nur einen auszug meines codes gepostet.
andere settings, die werte enthalten, werden bei dir nur als False zurück gegeben.
deswegen bei mir dieses dreifach return.
aber das upper ist ne gute lösung, hatte ich auch schon überlegt.eine frage noch dazu:
warum muss ich diese variablen nich per global "abholen"
und was zum teufel ist OOP? :O -
also unter dem dowhatever() wollte ich es ungern platzieren, weil ich vom serial port lese und unter umständen bremst das aus.
geholfen hätte es vermutlich auch nicht.aber ich habe das problem lösen können.
da ich zum settings lesen das vordefinierte variabel __addon__ hernahm blieben die settings wohl erhalten.jetzt mit der funktion geht es:
-
OK, probiere ich morgen mal.
Kann mir aber nicht erklären, warum es dann gehen sollte.
Die Funktion zu Settings laden importiere ich aus nen anderen script.
from resources.lib.events import loadSettings
oder muss ich innerhalb des scripts ne function schreiben, z.B. relaodSettings, dass es geht?Da sich die fußnägel bei dir rollen, traue ich mich gar nicht mein code zu zeigen.habe erst vor 2-3monaten mit python angefangen.
hatte bisher nur mit vb6 und vba zu tun. und mal wenig c fürn arduino.oder muss man die addon instanz neu setzen?
-
Ich brauche die Variablen nicht nur in der Funktion.
Wie löst du es wenn Settings geändert werden?
-
sleep ist in der aufgerufenen funktion drin.
OK, wie kann ichs denn mit den Variablen besser machen?
Wie kannst du zum Problem helfen?
edit:
meinst das hängt mit der monitor / __monitor__ zusammen?
weiter oben hatte ich noch drin: __monitor__ = xbmc.Monitor()
da ich jetzt das ändern der settings einbauen möchte. -
Also ich hab es mit dem onSettingsChanged gelöst, nur werden bei mir die neuen Settings nicht geladen, wenn ich sie mit getSetting hole.
Erst wenn ich das addon deaktivere und wieder aktiviere, werden die settings richtig geladen.Sehr merkwürdig. Weiß evtl. jemand Rat?
Python: in service.py
Alles anzeigenclass Monitor(xbmc.Monitor): def __init__ (self): xbmc.Monitor.__init__(self) def onSettingsChanged(self): [definition='1','0']log[/definition]('SETTINGS CHANGED ###############################') loadSettings(True) pass monitor = Monitor() while not __monitor__.abortRequested(): dowhatever() monitor = None
Python
Alles anzeigendef loadSettings(SETTINGSCHANGED=False): global MODEFM, MODECD, MODETAPE, MODEAUX, loglevel global CDC_EMU,USE_GPIO,WEL_LIGHT,LEV_LIGHT,IKE_DISPLAY ,WEL_IKE,WEL_IKETXT,DSP_CD,SEC_SEEK loglevel = getAddonSetting('log_lvl')[-1:] [definition='1','0']log[/definition]('LOAD SETTINGS: LOGLVL=%s' % loglevel) CDC_EMU = getAddonSetting('cdc_emu') piaudiomode = getAddonSetting('audio_mode') if piaudiomode == 'CD': MODEFM = False MODECD = True MODETAPE = False MODEAUX = False CDC_EMU = True [definition='1','0']log[/definition]('LOAD SETTINGS: AUDIOMODE=CD') if piaudiomode == 'TAPE': MODEFM = False MODECD = False MODETAPE = True MODEAUX = False [definition='1','0']log[/definition]('LOAD SETTINGS: AUDIOMODE=TAPE') if piaudiomode == 'AUX': MODEFM = False MODECD = False MODETAPE = False MODEAUX = True [definition='1','0']log[/definition]('LOAD SETTINGS: AUDIOMODE=AUX') [definition='1','0']log[/definition]('LOAD SETTINGS: CDC_EMU=%s' % CDC_EMU) DSP_CD = getAddonSetting('dsp_cd') [definition='1','0']log[/definition]('LOAD SETTINGS: DSP_CD=%s' % DSP_CD) USE_GPIO = getAddonSetting('use_gpio') [definition='1','0']log[/definition]('LOAD SETTINGS: USE_GPIO=%s' % USE_GPIO) pass def getAddonSetting(id): setting = __addon__.getSetting(id) if setting == 'true': return True if setting == 'false': return False return str(setting)
-
Guten Abend
Ich steh mal wieder vor nem Problem. Und kann in der Suche auch nichts finden, oder falsche Suchbegriffe.
Ich möchte in der Addon settings.xml ein Setting anlegen, welches nur sichbar ist, wenn ein anderes true ist.In gleicher category ja kein problem, mit visible="eq(-3,true)"
Nur geht es auch, wenn es in einer anderen category ist.
Ich habe schon das hier verscuht, aber geht nicht:
visible="IsTrue(Addon.Setting(ike_disp))" -
weil das irgend ne ausgleichslautstärke ist, die nix mit der systemlautstärke zu tun hat.
kann man denn nix in den setting vom ATV einstellen?
da würde ich mal suchen.
oder halt am tv. -
hab bei mir in die skin was eingebaut. (siehe Screenshot)
geht aber auch mit yatse oder kore genauso.aber ich hab nen Pi2
-
geht bei digital out die lautstärkeregelung nicht, oder warum regelst nicht einfach die lautstärke von kodi runter?
edit:
also bei mir geht das wunderbar über hdmi. einfach runter regeln und kodi ist leiser.
und merken tut es sich das auch.Externer Inhalt abload.deInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt. -
Die ist mir noch bekannt:
Behringer U-Control UCA222 -
hast du denn die grafiken schon mal durchgeschaut? vermutlich nicht.
wie wärs mit floor oder homebackwenn du aber einfach nur grafiken tauschen willst, ist das eher quick and dirty. würde mir ein skinsetting erstellen und dann per button jeweils visible vom original oder metallbrush umschalten.
entsprechend in der home.xml ein zweites grafik-tag anlegen. -
1. du kannst jede grafik nehmen. zu kleine grafiken werden gestreckt, aber nicht wiederholt. über das attribut border kann man die außenbereiche festlegen, die nicht gestreckt werden sollen.
d.h. wenn du metallbrush willst, ist es vermutlich sinnvoll die grafik über die volle größe zu erstellen.2. in meiner kodi version 15.2 ist nix mehr in die tbx gepackt, sondern jede grafik frei zugänglich.