i don't think that i have to go back that far..
Good, then you should have what you need to do the magic. Just customize it for your needs.
My example link pointed to a OE2.0 version of the running text renderer. Just for information...
i don't think that i have to go back that far..
Good, then you should have what you need to do the magic. Just customize it for your needs.
My example link pointed to a OE2.0 version of the running text renderer. Just for information...
Start to study this example of RunningText.py renderer, it should give you an idea how to manipulate skin dynamically.
If you do not understand it, you have to go back to programming school and study more code withing E2 envirnoment.. This is not something you learn in a day or two...
If a renderer or converter is correct programmed the info you pull out will automatically change when there is changes in the system. Lets say you want to get the name of current program, det name will change imediatly when the next program starts.
If you have some exact examples of what you are trying to do in your skin, it would be better to explain.
We need "screen name" and the exact line of the "thing" you want to show/change on screen.
@alpha, it is python coding rules, not for skin building. And yes, those files are old. 9-13 years old.
Yes...
The xml file consists of screens, every screen has its own name and they are defined in python codes. either in plugins or in OS code (also python code). What you can show on screen (osd) is what is programmed in that python code. If you want to show something custom (not defined in python code), you have to program it in the python code or use converters/renderers that can be used with the spesific screen regardless of code. The xml (skin) file is there for you to use custom graphics, placements, font styles and font sizes and more.
Lets say you want to change something in "Infobar" screen. Search up name="InfoBar" in skin.xml of the skin you want to edit. Everything in between <screen and the next </screen> is what this specific screen will give you on TV screen. You can change whatever you want.
Converters and renderers are used to pull out desired text from the system. There are many standard converters and renderers and there is plenty 3rd party ones. What you want to show on screen determines what converter and/or renderer you will use.
When you decide to build skins, it is very nice to understand some python code. This code will tell you what you can show on screen and if there is something new added to a python screen since last time you edited your screen.
For my example screen "InfoBar" the python code is in /usr/lib/enigma2/python/Screns/InfoBar.py. Take a look and you will find things defined in skin.xml.
Every name="<screen_name>" in skin.xml refere to one screen on TV. One for main menu, one for Infobar and so on... How many screen you will find in a skin xml is different. It has to do with how serious the skin maker have been. Most python code have screens defined within python code. If skin.xml dont have it defined, the python screen will show on screen. If not defined in your python screen code and in your skin.xml, code will fail with GSOD.
Yes, to be a skin maker is a monster job. Especially if you want your skin to cover all screens and plugins out there...
No easy overview of total screens and their names, you have to know your OS code and where to find it on your system.
My dm920 kept freezing too. In my case it seems that there was some problem with one of the slots where my tuner module was connected. Moved the module to a the slot most near the motherboard, and it has not freezed ever since.
It might be something to try out...
Does your TV have a HDMI ARC output?
The way you should do this is to use an HDMI cable from TV's ARC output to soundbar. Then setup TV to use ARC sound output. Your TV will send all sound signals to soundbar and keep your TV speakers silent. You might also set source as ARC manually on soundbar, but it should do it auto.
Hi, you should choose type unicable, Unicable configuration mode set to Unicable LNB. There you will find manufaturer Dura-Sat(DUR-line), and then choose type UK124. As you say, all tunerblocks should have different SATCRX for different frequencies spesific to that LNB module. One cable with satcr splitter to each tuner module.
I'm from norway and have your hardware setup, works fine.
How did you manage to get out the bootlog?
Is this out of the box issue?
Has there been some image other than original image on this tuner?
Has the tuner worked for some time?
What happens when you just start it with power button on the back of tuner?
Or, are you just trying to flash new image?
There are many things we still dont know about your problem...
Found dre's way the best. First post updated with the way you want it.
Thanks to all!
I rather would do it in windows environment, and here are many solutions I will try out!
I dont know how to do that easily... Cant find any plugins for Notepad++ either.
Discovered some wrong text in infobargenerics that was missed regarding the "new" menu system in DreamOS.
--- orig.py
+++ new.py
@@ -1431,15 +1431,15 @@
if ts is None:
if harddiskmanager.HDDCount() and not harddiskmanager.HDDEnabledCount():
self.session.open(MessageBox, _("Timeshift not possible!") + "\n" \
- + _("Please make sure to set up your storage devices with the storage management in menu -> setup -> system -> storage devices."), MessageBox.TYPE_ERROR)
+ + _("Please make sure to set up your storage devices with the storage management in menu -> setup -> devices -> storage devices."), MessageBox.TYPE_ERROR)
elif harddiskmanager.HDDEnabledCount() and defaultStorageDevice() == "<undefined>":
self.session.open(MessageBox, _("Timeshift not possible!") + "\n" \
- + _("Please make sure to set up your default storage device in menu -> setup -> system -> recording paths."), MessageBox.TYPE_ERROR)
+ + _("Please make sure to set up your default storage device in menu -> setup -> services and recording -> recording paths."), MessageBox.TYPE_ERROR)
elif harddiskmanager.HDDEnabledCount() and defaultStorageDevice() != "<undefined>":
part = harddiskmanager.getDefaultStorageDevicebyUUID(defaultStorageDevice())
if part is None:
self.session.open(MessageBox, _("Timeshift not possible!") + "\n" \
- + _("Please verify if your default storage device is attached or set up your default storage device in menu -> setup -> system -> recording paths."), MessageBox.TYPE_ERROR)
+ + _("Please verify if your default storage device is attached or set up your default storage device in menu -> setup -> services and recording -> recording paths."), MessageBox.TYPE_ERROR)
else:
self.session.open(MessageBox, _("Timeshift not possible!"), MessageBox.TYPE_ERROR)
print "no ts interface"
@@ -1925,17 +1925,17 @@
if not harddiskmanager.inside_mountpoint(dir):
if harddiskmanager.HDDCount() and not harddiskmanager.HDDEnabledCount():
self.session.open(MessageBox, _("Unconfigured storage devices found!") + "\n" \
- + _("Please make sure to set up your storage devices with the storage management in menu -> setup -> system -> storage devices."), MessageBox.TYPE_ERROR)
+ + _("Please make sure to set up your storage devices with the storage management in menu -> setup -> devices -> storage devices."), MessageBox.TYPE_ERROR)
return
elif harddiskmanager.HDDEnabledCount() and defaultStorageDevice() == "<undefined>":
self.session.open(MessageBox, _("No default storage device found!") + "\n" \
- + _("Please make sure to set up your default storage device in menu -> setup -> system -> recording paths."), MessageBox.TYPE_ERROR)
+ + _("Please make sure to set up your default storage device in menu -> setup -> services and recording -> recording paths."), MessageBox.TYPE_ERROR)
return
elif harddiskmanager.HDDEnabledCount() and defaultStorageDevice() != "<undefined>":
part = harddiskmanager.getDefaultStorageDevicebyUUID(defaultStorageDevice())
if part is None:
self.session.open(MessageBox, _("Default storage device is not available!") + "\n" \
- + _("Please verify if your default storage device is attached or set up your default storage device in menu -> setup -> system -> recording paths."), MessageBox.TYPE_ERROR)
+ + _("Please verify if your default storage device is attached or set up your default storage device in menu -> setup -> services and recording -> recording paths."), MessageBox.TYPE_ERROR)
return
else:
# XXX: this message is a little odd as we might be recording to a remote device
Alles anzeigen
bump!
... and there is some bad english that should be corrected.
else:
self._session.toastManager.showToast(_("Your Dreambox software is update to date!"))
Log.i("There are no updates available.")
Better english is "Your Dreambox software is up to date!"
Here is my solution to get "Check on every boot" to work regardless of choice for "Automatically check for new updates".
No, sorry, did not notice that!
Will my translations from yesterday also be in the updated translations?
Could we wish for a push to git with next E2 update?
Thanks!
ch hab das ganze in den SoftwareManager integriert und nutze auch dessen Funktionen (auch wenn der wirklich garnicht toll ist).
Im prinzip gings mir um einen EINFACHEN auto-update-check.
Wenn Updates verfügbar sind wird nachgefragt, ja/nein.
Ende ;).
And I agree! Simple is best for autoupdate for sure.
I may be only me, but when i activate for "Check on every boot" AND set "Automatically check for new updates" to "never" I do not get any update check. At least it does not show up on screen.
Either "Check on every boot" should be deactivated auto when the other is set to never, or check on every boot should work when interval is set to never. In my personal opinion, the first choice is the only choice that is interesting for me. Or I think it could be for others too.
And maybe text should be "Automatically check for updates interval", so there is no doubt there is the interval its about. When you set this to "Never" the text looses its meaning.
Thanks
No problem with freezing for me FoxyRabbit
Just wanted to report back that my problem might be an hardware problem. Did knock it with my fist and have not had freeze after that!