26.02.2014 Aufrufe

LinuxUser Backup und Restore (Vorschau)

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

XBMC-Extensions programmieren<br />

Praxis<br />

über den Print-Befehl auszugeben. Diese<br />

Werte schreibt der Medienserver in die<br />

Datei ~/.xbmc/temp/xbmc.log. XBMC-<br />

Swift2 geht anders vor: Es führt Plugins<br />

auf der Kommandozeile aus, wobei es<br />

eine Bibliothek zwischenschaltet, die als<br />

Text ausgibt, was die Erweiterung innerhalb<br />

der XBMC-Struktur tun würde.<br />

Daneben enthält XBMCSwift2 weitere<br />

Ansätze, wie etwa die Möglichkeit, interne<br />

Plugin-URLs an bestimmte Unterprogramme<br />

zu „binden“. Allerdings weist<br />

das Framework Nachteile auf: Auf der<br />

Kommandozeile ausgeführt, können die<br />

Bibliotheken das Verhalten von XBMC<br />

nicht in jedem Fall richtig nachstellen.<br />

Ausblick<br />

Wir konnten hier nur auf eine kleine Auswahl<br />

der vorhandenen Möglichkeiten<br />

eingehen, <strong>und</strong> dabei wurden nur Plugins<br />

genauer betrachten, obwohl – wie<br />

anfangs dargestellt – auch noch andere<br />

Addon-Arten existieren. Besonders einfach<br />

definieren Sie auch eigene Skins, indem<br />

Sie das Aussehen des Mediencenters<br />

über XML-Definitionen anpassen û.<br />

Es kann sich daneben auch anbieten,<br />

mehrere selbst erstellte Addons miteinander<br />

zu kombinieren: Durch solche Verkettungen<br />

ergeben sich vielerlei neue<br />

Möglichkeiten für XBMC. (jlu) n<br />

Listing 3<br />

01 #!/usr/bin/env python<br />

02 # ‐*‐ coding: utf‐8 ‐*‐<br />

03 <br />

04 import urllib, urllib2<br />

05 import xbmcplugin, xbmcgui, xbmc<br />

06 import CommonFunctions<br />

07 <br />

08 common = CommonFunctions<br />

09 <br />

10 def addDir(name,url,mode,iconimage):<br />

11 u=sys.argv[0]+"?url="+urllib.quote_plus(<br />

url)+"&mode="+str(mode)+"&name="+<br />

urllib.quote_plus(name)<br />

12 ok=True<br />

13 liz=xbmcgui.ListItem(name,<br />

iconImage="DefaultFolder.png",<br />

thumbnailImage=iconimage)<br />

14 liz.setInfo( type="Video", infoLabels={<br />

"Title": name } )<br />

15 ok=xbmcplugin.addDirectoryItem(<br />

handle=int(sys.argv[1]),url=u,listitem=liz,<br />

isFolder=True)<br />

16 return ok<br />

17 <br />

18 def addLink(name,url,iconimage):<br />

19 ok=True<br />

20 liz=xbmcgui.ListItem(name,<br />

iconImage="DefaultVideo.png",<br />

thumbnailImage=iconimage)<br />

21 liz.setInfo( type="Video", infoLabels={<br />

"Title": name } )<br />

22 ok=xbmcplugin.<br />

addDirectoryItem(handle=int(sys.argv[1]),url=url,<br />

listitem=liz)<br />

23 return ok<br />

24 <br />

25 def hauptmenue():<br />

26 addDir("Hauptprogramme", '/hauptprogramme/',<br />

1, "")<br />

27 addDir("Lokalfernsehen", '/lokalfernsehen/',<br />

2, "")<br />

28 <br />

29 def menueHauptsenderWaehlen():<br />

30 addLink("ARD","rtp://@239.35.10.4:10000", "")<br />

31 addLink("ZDF","rtp://@239.35.10.5:10000", "")<br />

32 addLink("Phoenix","rtp://@239.35.10.22:10000"<br />

, "")<br />

33 addLink("KiKa","rtp://@239.35.10.19:10000",<br />

"")<br />

34 <br />

35 def lokalprogrammWaehlen():<br />

36 addLink("WDR Köln","rtp://@239.35.10.18:<br />

10000","")<br />

37 addLink("WDR Bonn","rtp://@239.35.10.37:<br />

10000","")<br />

38 addLink("WDR Dortm<strong>und</strong>","rtp://@239.35.10.38:<br />

10000","")<br />

39 addLink("WDR Duisburg","rtp://@239.35.10.39:<br />

10000","")<br />

40 <br />

41 params = common.getParameters(sys.argv[2])<br />

42 <br />

43 try:<br />

44 mode = int(params['mode'])<br />

45 except:<br />

46 mode = None<br />

47 <br />

48 try:<br />

49 name = params['name']<br />

50 except:<br />

51 name = None<br />

52 <br />

53 try:<br />

54 url = params['url']<br />

55 except:<br />

56 url = None<br />

57 <br />

58 if mode == None:<br />

59 hauptmenue()<br />

60 elif mode == 1:<br />

61 menueHauptsenderWaehlen()<br />

62 elif mode == 2:<br />

63 lokalprogrammWaehlen()<br />

64 <br />

65 xbmcplugin.endOfDirectory(int(sys.argv[1]))<br />

04.2013 www.linux-user.de<br />

47

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!