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 :kaffee_maschine:

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 :D
* 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.... :wink:
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()