Seite 34 von 40
Re: allg. Infos zu den changelogs
Verfasst: Do 3. Aug 2017, 22:12
von thomas
nein nur mit openatv getestet
neutrino stürzte nach installation ab weil keine senderliste da war die gleich ging
hab ich dann gelöst und seit dem gehts
brauch nur wiedermal ne aktuellere version
nur so imagebau dauert ewig von zeit her, wenn das mal fertig ist dann ist neutrino schnell gebaut
Re: allg. Infos zu den changelogs
Verfasst: Do 3. Aug 2017, 23:09
von mohousch
Okay, dachte Du meinst den abstürz beim zugreifen auf dem WebIF
kannst Du auf dem WebIF zugreifen ohne abstürz?
Re: allg. Infos zu den changelogs
Verfasst: Di 22. Aug 2017, 11:03
von mohousch
hab die TS/Moviebrowser bzw den Menu Punkt Film Informationen bearbeitet dass es am bequemesten der Film gearbeitet wird:
- wie Cover gegen TMDB Cover tauschen oder Info2 aus dem TMDB übernehmen oder den Jumps aus dem Film weg schneiden , defindet sich alles unter Film Informationen
Cover gegen TMDB Cover tauschen:
Fil Info aufrufen, TMDB Info aufrufen beim verlassen wird man gefragt ob die Infos gegen TMDG Infos getauscht werden; bei ja wird der Cover automatische übernommen
Info2 tauschen:
Falls der Fil eine Info2 hat Film Info aufrufen die Info aufrufen (in dem BearbeitungsFeld die Infos mit Gelb löschen) speichern denn TMDB aufrufen und beim verlassen mit Rote (ja) bestätigen
Film abschneiden Falls man irgendwelche Werbung Bookmarks markiert hat einfach die Menu Punkte folgen.
das wars
Re: allg. Infos zu den changelogs
Verfasst: Di 22. Aug 2017, 14:45
von DboxOldie
Die Infobar ist ab Rev.3021 wieder da im Movieplayer.
Der Info2 Austausch mit TMDB Daten hat hier funktioniert.
Re: allg. Infos zu den changelogs
Verfasst: Di 24. Jul 2018, 10:59
von mohousch
Servus allen
hat jemand Lust und Zeit
neutrinoHD2 3.0 (Puzzle) zu testen?
was ist neu?
alles, ein ReadMe kommt später, Vorweg bei Neutrino Menues die Setup Taste dient nicht mehr als exit Taste sondern als Widget Type Wechsel z.Zt gibt es 4 verschiedene Widget Design:
- Standard: (änhlich tuxbox-neutrino|NMP)
- Classic: (ähnlich Titan)
- Extended (ähnlich Enigma2)
- Frame ( Frame Boxes)
paar Plugins unterstützen das auch
was ist neu? fast alles
* CMenuWidget : abgearbeitet das es die verschiedenen Menu designs alive zeigen kann (4 verschiedene Designs)
- alte neutrino gui
- classic (ähnlich titan grosse Icons)
- extended (ähnlich e2)
- smart oder info wand (Frames)
code ist gesäubert worden und eine flesibler offene stelle dazu wie das man haben will
- design lässt sich mit der Setup (früher exit oder als zurück) benutzen
die FrameBox und listBoxMenu testing slasses raus und dafür eine neu classe die das alles kann mit eine flexible schnittestelle
ClistBox hab versucht was mir gelungen ist alle GUI listen zu integrieren mann kan list Boxen wie kannal Box oder plugins lists oder auch immer was man will damit haben auch paar alte GUI code ersetzt wie webtv list plugin list
ClistBox kann auch den widgetType wechselt. siehe plugins code.
* players: (movieplayer, audioplayer und pictureviewer)
aus der gui nur die engine und core behalten und der rest alles plugins, es steht auch jedem die Chance seine eigene player gui zu bastelln z.Zt nur C/C++ (sp#ter über anderen interperter)
damit kann man auch sehen was man mit ClistBox zu einstellen ist (siehe Audioplayer, Icecast, internetradio und extended movie browser)
* zapit und webtv listen synchron zu NMP (id64)
* epg über http vom server Boxen (gui: enigma2 oder NMP) webtv listen mit Channels die epgid unterst+tzen wird der voller EPG unterstützt.
audioplayer infoviewer bisschen gearbeitet plus dazu fanart support.
wie kann ich schnell und bequem auf dem PC testen
Re: allg. Infos zu den changelogs
Verfasst: Di 24. Jul 2018, 23:50
von DboxOldie
Im Moment verhindert das Sommerklima intensives Arbeiten....
Aber es kommen sicherlich auch wieder kühlere Tage.
Re: allg. Infos zu den changelogs
Verfasst: Di 31. Jul 2018, 16:29
von mohousch
Movie Trailer Plugin (initial commit.)
Re: allg. Infos zu den changelogs
Verfasst: Do 2. Aug 2018, 16:49
von mohousch
ntvshows (Serien Trailer) initial commit.
Re: allg. Infos zu den changelogs
Verfasst: Sa 19. Jan 2019, 14:58
von mohousch
Cycle version 4.0 released
samt alter paint Methoden sind raus alles wird mit den Widget paint methoden gemacht.
nächste Step. Script Sprachen interfaces
keep this thread alive
Re: allg. Infos zu den changelogs
Verfasst: Mi 30. Jan 2019, 01:37
von mohousch
embeding python and lua in neutrino (swig)
hab angefangen mit Hilfe von SWIG python und lua interfaces zu integrieren mit Hilfe vom swig, man muss nicht einzelnen function in neutrino embden das kann swig aus dem headers ubernehmen
in python ist ein Beispiel fur CMessageBox
lua bis jetzt kann nur script ausfuhren
der rest kommt
Re: allg. Infos zu den changelogs
Verfasst: Fr 1. Feb 2019, 11:47
von mohousch
so beide interfaces lua so wie python funktionieren sehr gut
das embden stand vom neutrino in bedien interfaces ist gleich , z.Zt ist fast das ganze neutrino in den interfaces
allerdings hab wenig erfahrung mit lua und python
wer will was aus den neutrino mp lua plugins was ummoden oder aus enigma2 oder Kodi denn viel Spass
Re: allg. Infos zu den changelogs
Verfasst: So 3. Feb 2019, 12:00
von mohousch
lua
Code: Alles auswählen
neutrino = require 'neutrino'
hbox = neutrino.CHelpBox()
hbox:addLine("neutrino: lua")
hbox:addSeparator()
hbox:addLine("first test")
hbox:addLine("testing CHelpBox\ndas ist alles ;-)")
hbox:show("CHelpBox: lua")
python
Code: Alles auswählen
from neutrino import CHelpBox
hbox = CHelpBox()
hbox.addLine("neutrino: python")
hbox.addSeparator()
hbox.addLine("first test")
hbox.addPageBreak()
hbox.addLine("testing CHelpBox\ndas ist alles ;-)")
hbox.show("CHelpBox: python")
die Klassen und Funkionen Namen behalten ihren ursprunglichen C Namen Formen mussen nur in der jewelige Skript Sprache aufgerufen
wenn ich mal fit in lua und python schreibe ich ein tutorial wie man neutrino plugins in lua oder python schreibt.
Re: allg. Infos zu den changelogs
Verfasst: Mi 13. Feb 2019, 20:29
von mohousch
zurück zu den GUI widgets
hab da noch weiter gebastellt und paar widget components erstellt die man einzeln oder meheren zusammen wie lego steine fügen kann, sind auch für PYTHON und LUA Interpreter enthalten ;-P
hier ein klein bespiel den man in den Test plugin für Entwickler finden kann.
EDIT:
allow custom color.
Re: allg. Infos zu den changelogs
Verfasst: Mo 1. Apr 2019, 09:46
von mohousch
lua sample
Code: Alles auswählen
--
--
local selected = -1
local PATH = "/"
-- CMessageBox
function messageBox()
title = "luaTest"
msg = "TEST"
mBox = neutrino.CMessageBox(title, msg)
mBox:exec(-1)
end
-- CHelpBox
function helpBox()
hbox = neutrino.CHelpBox()
hbox:addLine("neutrino: lua")
hbox:addSeparator()
hbox:addLine("first test")
hbox:addLine("testing CHelpBox\ndas ist alles ;-)")
hbox:show("CHelpBox: lua")
end
-- CHintBox
function hintBox()
hint = neutrino.CHintBox("neutrino: lua","first test\ntesting CHintBox\ndas ist alles ;-)")
hint:exec()
end
-- CInfoBox
function infoBox()
info = neutrino.CInfoBox()
info:setText("first test\ntesting CHintBox\ndas ist alles ;-)")
info:exec()
end
-- CStringInput
function stringInput()
title = "luaTest: CStringInputSMS"
local value
input = neutrino.CStringInputSMS(title, vale)
input:exec(null, "")
end
-- CAudioPlayerGui
function audioPlayer()
fileBrowser = neutrino.CFileBrowser()
fileFilter = neutrino.CFileFilter()
fileFilter:addFilter("mp3")
fileBrowser.Multi_Select = false
fileBrowser.Dirs_Selectable = false
fileBrowser.Filter = fileFilter
fileBrowser:exec(PATH)
PATH = fileBrowser:getCurrentDir()
player = neutrino.CAudioPlayerGui()
if fileBrowser:getSelectedFile() ~= null then
player:addToPlaylist(fileBrowser:getSelectedFile())
player:exec(None, "")
end
if fileBrowser:getExitPressed() ~= true then
audioPlayer()
end
end
-- CPictureViewerGui
function pictureViewer()
fileBrowser = neutrino.CFileBrowser()
fileFilter = neutrino.CFileFilter()
fileFilter:addFilter("jpeg")
fileFilter:addFilter("jpg")
fileBrowser.Multi_Select = false
fileBrowser.Dirs_Selectable = false
fileBrowser.Filter = fileFilter
fileBrowser:exec(PATH)
PATH = fileBrowser:getCurrentDir()
player = neutrino.CPictureViewerGui()
if fileBrowser:getSelectedFile() ~= null then
player:addToPlaylist(fileBrowser:getSelectedFile())
player:exec(None, "")
end
if fileBrowser:getExitPressed() ~= true then
pictureViewer()
end
end
-- CMoviePlayerGui
function moviePlayer()
fileBrowser = neutrino.CFileBrowser()
fileFilter = neutrino.CFileFilter()
fileFilter:addFilter("ts")
fileBrowser.Multi_Select = false
fileBrowser.Dirs_Selectable = false
fileBrowser.Filter = fileFilter
fileBrowser:exec(PATH)
PATH = fileBrowser:getCurrentDir()
player = neutrino.CMoviePlayerGui()
if fileBrowser:getSelectedFile() ~= null then
player:addToPlaylist(fileBrowser:getSelectedFile())
player:exec(None, "")
end
if fileBrowser:getExitPressed() ~= true then
moviePlayer()
end
end
listWidget = neutrino.ClistBoxWidget("luaTest:ClistBoxWidget", neutrino.NEUTRINO_ICON_MOVIE)
function showMenu()
print("showMenu")
--listWidget:setSelected(selected)
listWidget:setWidgetType(neutrino.WIDGET_TYPE_CLASSIC)
listWidget:setMode(neutrino.MODE_MENU)
listWidget:enableShrinkMenu()
--listWidget:enableWidgetChange()
listWidget:enablePaintFootInfo()
-- CMessageBox
item1 = neutrino.CMenuForwarder("CMessageBox", true, "", null, "red action")
item1:setItemIcon(neutrino.DATADIR .. "/neutrino/icons/plugin.png")
item1:setHelpText("testing CMessageBox")
-- CHelpBox
item2 = neutrino.CMenuForwarder("CHelpBox")
item2:setItemIcon(neutrino.DATADIR .. "/neutrino/icons/plugin.png")
item2:setHelpText("testing CHelpBox")
-- CHintBox
item3 = neutrino.CMenuForwarder("CHintBox")
item3:setItemIcon(neutrino.DATADIR .. "/neutrino/icons/plugin.png")
item3:setHelpText("testing CHintBox")
-- CInfoBox
item4 = neutrino.CMenuForwarder("CInfoBox")
item4:setItemIcon(neutrino.DATADIR .. "/neutrino/icons/plugin.png")
item4:setHelpText("testing CInfoBox")
-- CStringInput
item5 = neutrino.CMenuForwarder("CStringInput")
item5:setItemIcon(neutrino.DATADIR .. "/neutrino/icons/plugin.png")
item5:setHelpText("testing CStringInput")
-- CAudioPlayerGui
item6 = neutrino.CMenuForwarder("CAudioPlayerGui")
item6:setItemIcon(neutrino.DATADIR .. "/neutrino/icons/plugin.png")
item6:setHelpText("testing CAudioPlayerGui")
-- CPictureViewerGui
item7 = neutrino.CMenuForwarder("CPictureViewerGui")
item7:setItemIcon(neutrino.DATADIR .. "/neutrino/icons/plugin.png")
item7:setHelpText("testing CPictureViewerGui")
-- CMoviePlayerGui
item8 = neutrino.CMenuForwarder("CMoviePlayerGui")
item8:setItemIcon(neutrino.DATADIR .. "/neutrino/icons/plugin.png")
item8:setHelpText("testing CMoviePlayerGui")
listWidget:addItem(item1)
listWidget:addItem(item2)
listWidget:addItem(item3)
listWidget:addItem(item4)
listWidget:addItem(item5)
listWidget:addItem(item6)
listWidget:addItem(item7)
listWidget:addItem(item8)
listWidget:addKey(neutrino.RC_info)
listWidget:exec(null, "")
selected = listWidget:getSelected()
key = listWidget:getKey()
if key == neutrino.RC_info then
messageBox()
end
if selected == 0 then
messageBox()
end
if selected == 1 then
helpBox()
end
if selected == 2 then
hintBox()
end
if selected == 3 then
infoBox()
end
if selected == 4 then
stringInput()
end
if selected == 5 then
audioPlayer()
end
if selected == 6 then
pictureViewer()
end
if selected == 7 then
moviePlayer()
end
if listWidget:getExitPressed() == false then
listWidget:clearItems()
showMenu()
end
end
-- main
function main()
showMenu()
end
main()
Re: allg. Infos zu den changelogs
Verfasst: Mo 1. Apr 2019, 09:47
von mohousch
python sample
Code: Alles auswählen
from neutrino import *
class messageBox(CMessageBox):
title = "pythonTest"
msg = "TEST"
def __init__(self):
CMessageBox.__init__(self, self.title, self.msg)
self._exec(-1)
class helpBox(CHelpBox):
line1 = "Test"
line2 = "Huhu"
line3 = "alles gut"
def __init__(self):
CHelpBox.__init__(self)
self.addLine(self.line1)
self.addLine(self.line2)
self.addLine(self.line3)
self.show("python: CHelpBox")
class hintBox(CHintBox):
title = "python: CHintBox:"
msg = "alles gut"
def __init__(self):
CHintBox.__init__(self, self.title, self.msg)
self._exec()
class infoBox(CInfoBox):
msgTitle = "pythonTest:"
msgText = "first test\ntesting CInfoBox\nthat's all Folk!"
def __init__(self):
CInfoBox.__init__(self)
self.setText(self.msgTitle + "\n" + self.msgText)
self._exec(-1)
class stringInput(CStringInputSMS):
title = "pythonTest: CStringInputSMS"
value = ''
def __init__(self):
CStringInputSMS.__init__(self, self.title, self.value)
self._exec(None, "")
class audioPlayer(CFileBrowser):
PATH = "/"
def __init__(self):
CFileBrowser.__init__(self)
fileFilter = CFileFilter()
fileFilter.addFilter("mp3")
self.Multi_Select = False
self.Dirs_Selectable = False
self.Filter = fileFilter
self._exec(self.PATH)
self.PATH = self.getCurrentDir()
player = CAudioPlayerGui()
if self.getSelectedFile() is not None:
player.addToPlaylist(self.getSelectedFile())
player._exec(None, "")
if self.getExitPressed() is not True:
self.__init__()
class pictureViewer(CFileBrowser):
PATH = "/"
def __init__(self):
CFileBrowser.__init__(self)
fileFilter = CFileFilter()
fileFilter.addFilter("jpeg")
fileFilter.addFilter("jpg")
self.Multi_Select = False
self.Dirs_Selectable = False
self.Filter = fileFilter
self._exec(self.PATH)
self.PATH = self.getCurrentDir()
player = CPictureViewerGui()
if self.getSelectedFile() is not None:
player.addToPlaylist(self.getSelectedFile())
player._exec(None, "")
if self.getExitPressed() is not True:
self.__init__()
class moviePlayer(CFileBrowser):
settings = SNeutrinoSettings()
PATH = settings.network_nfs_moviedir
def __init__(self):
CFileBrowser.__init__(self)
fileFilter = CFileFilter()
fileFilter.addFilter("ts")
self.Multi_Select = False
self.Dirs_Selectable = False
self.Filter = fileFilter
self._exec(self.PATH)
self.PATH = self.getCurrentDir()
player = CMoviePlayerGui()
if self.getSelectedFile() is not None:
player.addToPlaylist(self.getSelectedFile())
player._exec(None, "")
if self.getExitPressed() is not True:
self.__init__()
class testMenu(CMenuTarget):
selected = 0
listWidget = ClistBoxWidget("pythonTest:ClistBoxWidget", NEUTRINO_ICON_MOVIE)
def __init__(self):
CMenuTarget.__init__
self.showMenu()
def showMenu(self):
print("showMenu")
#self.listWidget.setSelected(self.selected)
self.listWidget.setWidgetType(WIDGET_TYPE_CLASSIC)
self.listWidget.setMode(MODE_MENU)
self.listWidget.enableShrinkMenu()
#self.listWidget.enableWidgetChange()
self.listWidget.enablePaintFootInfo()
# messageBox
item1 = CMenuForwarder("CMessageBox", True, "", None, "red action")
item1.setItemIcon(DATADIR + "/neutrino/icons/plugin.png")
item1.setHelpText("testing CMessageBox")
# CHelpBox
item2 = CMenuForwarder("CHelpBox")
item2.setItemIcon(DATADIR + "/neutrino/icons/plugin.png")
item2.setHelpText("testing CHelpBox")
# CHintBox
item3 = CMenuForwarder("CHintBox")
item3.setItemIcon(DATADIR + "/neutrino/icons/plugin.png")
item3.setHelpText("testing CHintBox")
# CInfoBox
item4 = CMenuForwarder("CInfoBox")
item4.setItemIcon(DATADIR + "/neutrino/icons/plugin.png")
item4.setHelpText("testing CInfoBox")
# CStringInput
item5 = CMenuForwarder("CStringInput")
item5.setItemIcon(DATADIR + "/neutrino/icons/plugin.png")
item5.setHelpText("testing CStringInput")
# CAudioPlayerGui
item6 = CMenuForwarder("CAudioPlayerGui")
item6.setItemIcon(DATADIR + "/neutrino/icons/plugin.png")
item6.setHelpText("testing CAudioPlayerGui")
# CPictureViewerGui
item7 = CMenuForwarder("CPictureViewerGui")
item7.setItemIcon(DATADIR + "/neutrino/icons/plugin.png")
item7.setHelpText("testing CPictureViewerGui")
# CFileBrowser | CMoviePlayerGui
item8 = CMenuForwarder("CFileBrowser|CMoviePlayerGui")
item8.setItemIcon(DATADIR + "/neutrino/icons/plugin.png")
item8.setHelpText("testing CMoviePlayerGui")
self.listWidget.addItem(item1)
self.listWidget.addItem(item2)
self.listWidget.addItem(item3)
self.listWidget.addItem(item4)
self.listWidget.addItem(item5)
self.listWidget.addItem(item6)
self.listWidget.addItem(item7)
self.listWidget.addItem(item8)
self.listWidget.addKey(RC_info)
self.listWidget._exec(None, "")
self.selected = self.listWidget.getSelected()
key = self.listWidget.getKey()
# first handle keys
if key == RC_info:
messageBox()
# handle selected line
if self.selected == 0:
messageBox()
elif self.selected == 1:
helpBox()
elif self.selected == 2:
hintBox()
elif self.selected == 3:
infoBox()
elif self.selected == 4:
stringInput()
elif self.selected == 5:
audioPlayer()
elif self.selected == 6:
pictureViewer()
elif self.selected == 7:
moviePlayer()
# exit pressed
if self.listWidget.getExitPressed() is False:
self.listWidget.clearItems()
self.showMenu()
if __name__ == "__main__":
testMenu()