[h1]Was ist eine Programmiersprache:[/h1]
Eine Programmiersprache ist keine Sprache im herkömmlichen Sinn.
Denn dort steht nicht die Kommunikation im Vordergrund, sondern die mathematische Verwendung
zur Formulierung von Datenstrukturen und Algorithmen(eindeutige Handlungsvorschrift zur Lösung eines Problems)
Sie setzen sich aus Anweisungen nach einem vorgegebenen Muster zusammen, der sogenannten Syntax.
[h1]Die Programmiersprache Python:[/h1]
Python ist eine interpretierte Sprache:
Das bedeutet das man kein Programm braucht was aus dem erstellten Code
eine ausführbare Datei macht.
Ein Interpreter liest den vorhandenen Quellcode ein analysiert ihn und führt ihn aus.
So ist es möglich das uns das Kleine print 'Hallo'
sofort ein Ergebnis anzeigt.
Python ist eine höhere Sprache:
Das bedeutet nicht das es eine komplizierte Sprache ist.
Das höhere Sprache bedeutet eigentlich das Gegenteil.
Diese Programmiersprachen sind so angelegt worden das
sie vom Menschen einfacher und schneller verstanden und erlernt werden können
Mindestmerkmal einer höheren Programmiersprache ist das
Die Befehle nicht von Mikroprozessoren verstanden und ausgeführt werden können
sondern Programme brauchen die Befehle in Maschinensprache übersetzen.
(Interpreter oder Compiler)
-Python gilt als einfach zu erlernende Sprache.
-Sie ist modular aufgebaut
-Python ist für die meisten gängigen Betriebssysteme frei erhältlich
und bei den meisten Linux-Distributionen im Standardumfang enthalten.
-Außerdem basieren mehrere bekannte kommerzielle Projekte, etwa Google und YouTube, in Teilen auf Python.
-Der Grund Code in Python geschrieben kann mit einer aufgesetzten Oberfläche
wie z. B. Tkinter (GUI-Builder), WxPython (wxGlade), PyQt (Qt Designer), PySide, PyGTK (Glade), Kivy oder PyFLTK
Zum grafischen Programm führen (Ein Programm wie ihr es unter Euren Betriebssystem kennt,
das in einem Fenster abläuft mit Menüs Bedienung mit der Maus und Tastatur usw.)
-Einen Grafischen Aufsatz für Python bietet auch Kodi(XBMC) mit XBMCGUI
Das ist der Aufsatz der später von Python aus verwendet wird um Listen,Direktorys im Prinzip die ganze Grafische Gestaltung in Kodi(XBMC)
in unseren Addon darzustellen.
[h1] Warum Python?[/h1]
Wir benutzen hier Python in der Version 2.7.
Da Kodi (XBMC) integrierte Schnittstellen und eigene Modul für diese Sprache bereitstellt.
Es ist die von Kodi (XBMC) unterstützte Programmiersprache zur Erstellung von Addons (früher Plugins),Scripten.
[h1]Was ist ein Skin:[/h1]
Skins bestehen in der Regel aus xml Dateien und Bildern (Thumbs,Icons,Hintergrunbildern usw.)die auf die Schnittstellen von(Kodi) zugreifen und die gesammte Oberfläche von Kodi gestalten.
Mit jeder neuen Version von Kodi ändert sich die Art und Weise wie man diese xml Dateien
bereitstellt oder diese anzusprechen sind.
Damit ist es so ,das die Skins ständig angepasst werden müssen um überhaupt mit der nächsten Version von Kodi benutzbar zu sein.
[h1]Was ist ein Script(XBMC):[/h1]
Ein Script ist eine Ansammlung von Python und XML Code
der den Schnittstellen von Xbmc übergeben wird.
Scripte waren in der Anfangsphase von XBMC die einzige Möglichkeit
Apps für XBMC zu schreiben. Sie besaßen ein eigenes Skin Verzeichnis in den man mittels
eines eigens für den Script erstellten Skin das grafische Aussehen der Oberfläche festlegte.
Dadurch waren Sie in der Grafischen Gestaltung flexibel anlegbar.
Aber auch langwieriger zu erstellen und führten dazu das XBMC
keinen einheitliches Aussehen mehr hatte.
Was ja eigentlich durch den in XBMC verwendeten Skin gegeben war.
[h1] Was ist ein Addon:[/h1]
Ein Addon ist eine Ansamlung von Python und xml Code der den Schnittstellen von
Kodi (XBMC) übergeben wird um ein Programm unter einer einheitlichen Oberfläche auszuführem.
Die Möglichkeit damals Plugins oder Addons zu erstellen wurde in XBMC eingeführt.
um die bisherige Erstellung von Programmen für Xbmc (Scripten) zu erleichtern und
Xbmc einen einheitliches ausehen im allgemeinen zu geben.
Durch die Einführung der Unterstützung von Plugins und jetzt Addons in Kodi.
War es möglich die Erstellung eines Projektes in der Prgrammierung zu verkürzen.
Dadurch hatte sich die Qualität und Anzahl der vorhandenen Plugins (jetzt Addons)
erhöht.Was bei den Nutzern zu einer größeren Auswahl führte.
[h1]Die XBMC Python-Module:[/h1]
XBMC Python kommt mit allen Standard-Module von Python 2.6 oder höher.
Zusätzlich zu den Standard-Bibliotheken von Python verwendet Kodi Python
eine Handvoll von benutzerdefinierten Modulen um die Kodispezifische Funktionen bereitzustellen.
Diese Module nennen wir XBMC-PYTHON -MODULE.
xbmc Bietet Klassen und Funktionen, die Informationen über aktuell abgespielten Medien bereitstellen und Manipulation der Medien-Player ermöglichen(wie das Starten eines neuen Songs).
xbmcgui Bietet Klassen und Funktionen, die die grafische Benutzerschnittstelle durch die Fenster, Dialoge, und verschiedene Steuer Widgets manipulieren.
xbmcplugin Bietet Klassen und Funktionen, die ein Entwickler benötigt um Informationen über Standard-Menüstruktur XBMC präsentieren zu können.Plugins haben nicht die
gleiche Flexibilität wie Skripte aber sie bieten eine deutlich schnellere Entwicklungszeit und eine konsistente Benutzererfahrung.
xbmcaddon Bietet Klassen und Funktionen zur manipulation der add-on settings, Information und Localization
xbmcvfs Bietet Klassen und Funktionen die den Zugriff zum Virtual File Server (VFS) bestimmen mit ihnen ist es möglich Dateien und Verzeichnisse zu manipulieren.
Genauere Informationen zu den aktuell verwendeten XBMC-Python-Modulen findet ihr hier:
http://%20http//mirrors.kodi.tv/docs/python-docs/
Kodi (XBMC) bietet auch die Möglichkeit eigene Module für die Nutzung in Kodi zu benutzen.
Diese Module nennt man Script.module das sind die Module die bestimmte Addons bei der Installation Nachladen um sie dann im Addon benutzen zu können
Dazu später mehr.
[h1]Allgemeiner Aufbau von Kodi im Vergleich zu XBMC4XBOX:[/h1]
Beim start von Kodi oder xbmc4xbox wird eine Binary (ausführbare Datei) geladen.
Die dann auf den Inhalt des Userdata Verzeichnisses zugreift in diesen sind unter anderen Eure aktuellen Einstellungen für Kodi den Skin und die Addons eure benutzen Thumbnails in xml Dateien und Datenbanken gespeichert.
Diese Daten werden anschließend benutzt um Euer Kodi in der Form zu starten wie ihr es eingerichtet habt.
Die Verzeichnis Struktur von Kodi im Vergleich zu XBMC4XBOX:
Kodi | XBMC4XBOX |
addons cache media sound system userdata | credit language media plugins screensaver scripts skin sounds system UserData Visulation web |
Wie ihr seht haben wir viel mehr Verzeichnise unter xbmc4xbox als unter Kodi
das beruht auf der Tatsache das mit Einführung der addons unter KOdi(XBMC) sich die Struktur von Xbmc geändert hatte.
und die aktuelle xbmc4xbox Version noch auf den Sourcen von Kodi (Xbmc) nach Integration des Plugin System besteht.
Dadurch ergeben sich folgende Unterschiede:
In Kodi ist alles ein Addon so das alles was ein script.module,addon,skin,script,servicewidget selbst metadata unter addons ihren Zugriffs Ort haben.
In xbmc4xbox gibt es für jedes, von denen die auch implementiert sind ,ein eigenes Verzeichnis.
Unter den Verzeichnis Plugins befinden sich dort noch die einzelnen Plugin Untergruppen wie:
music
pictures
programs
videos
unter diesen sind die einzelnen Plugins mit vollen Namen gespeichert das bedeutet das das Youtube Addon unter Kodi den Namen plugin.video.youtube hält wo gegen es unter xbmc4xbox den Namen YouTube hat und auch so angesprochen werden muß!
Das bedeutet für uns bei der Erstellung eines Addons was ein 2tes Addon wie z.B das Youtube addon nutzt um Videos abzuspielen:
- der Code zum Aufruf dieses Addons unter xbox ein völlig anderer ist
Nun kommen wir doch noch zu etwas python Code
xbox = xbmc.getCondVisibility("System.Platform.xbox") # definition der Variable xbox
def playVideo(id):
if xbox:
url = "plugin://video/YouTube/?path=/root/video&action=play_video&videoid=" + id #xbox
else:
url = "plugin://plugin.video.youtube/?path=/root/video&action=play_video&videoid=" + id #kodi
Desweiteren ist die Syntax zum starten von externen Python Code aus einen Addon bei xbmc4xbox durch diese andere Struktur unterschiedlich
Das soll es für Heute gewesen sein .