Announcing Pegasus Frontend
-
@fluffypillow said in Announcing Pegasus Frontend:
@shantigilbert Thanks, good to hear it works for you too! Feel free to report if you get any issues on the S905.
Thank you! I actually did ran into a problem, Since you are extremely good at QT maybe you can shed some light on this subject? not really with Pegasus itself but I can't seem to run it as a service, I know it sounds stupid, why would I need to run it as a service? but since I run it from an add-on in Kodi I need to run it as a service so I can kill kodi after launch, if I just run it directly Pegasus gets killed with kodi :(
I've read a few things about QT and running them as a service and all I have found is that it needs the QTservice plugin, but unfortunately I have no idea how to implement that.
-
@shantigilbert Hm I'm not really familiar with Kodi addons, how does it launch programs exactly? What exactly is a "service" in this context (not a systemd module or a daemon, I suppose)? Naively thinking, I'd solve this by writing an addon that calls a shell script which kills Kodi and launches Pegasus. Would that be feasible?
-
@fluffypillow said in Announcing Pegasus Frontend:
@shantigilbert Hm I'm not really familiar with Kodi addons, how does it launch programs exactly? What exactly is a "service" in this context (not a systemd module or a daemon, I suppose)? Naively thinking, I'd solve this by writing an addon that calls a shell script which kills Kodi and launches Pegasus. Would that be feasible?
Running it as a service with systemd (systemctl start pegasus, in this case)
Kodi seems to kill any program or shell script that was called from within when it closes, so lest say I call Pegasus and after that I kill Kodi, Pegasus starts loading but as soon as Kodi is killed, so is Pegasus. I honestly don't know if that is how Linux works, but maybe I am missing something very dumb.
running them is very straight forward
xbmc.executebuiltin('System.Exec("/usr/bin/pegasus-fe.sh")')
Anyways if you try to run Pegasus as a systemd service it complains it can't find the libraries required, even if they are in the LD_LIBRARY_PATH which is what I've found on google from people trying to run QT apps as services.
in comparison running ES,Retroarch, advmame, PPSSPP as services works fine.
-
@shantigilbert I see, when Kodi launches Pegasus, Kodi likely becomes its "parent", so when you kill it, all the programs it launched will also die.
As for the libraries, could you post the full error log? If it's missing Qt libs, you could also solve that by creating a static build.
-
@fluffypillow said in Announcing Pegasus Frontend:
@shantigilbert I see, when Kodi launches Pegasus, Kodi likely becomes its "parent", so when you kill it, all the programs it launched will also die.
As for the libraries, could you post the full error log? If it's missing Qt libs, you could also solve that by creating a static build.
Yeah, that is the problem with Kodi, I am figuring out if I can run a process that is not attached to it and that will solve my problem, but so far no luck.
I can't seem to be able to create a static build on the S905 unfortunately :(
I will get the full error when I get home, but its just a generic "can't find shared library QT5Gamepad"I appreciate the help even tho its not directly Pegasus at fault here.
edit: this is the error /usr/bin/pegasus-fe: error while loading shared libraries: libQt5Gamepad.so.5: cannot open shared object file: No such file or directory but if I run it normally pegasus-fe works fine
-
So using the documentation, I’ve managed to put together a working grid view. I want to try and creates different screens (states). Would states be the best way to implement (system list view > game so grid view > game details)
Also I’ve noticed the controls page is not working :(
http://pegasus-frontend.org/user-guide/controls -
@halfmanhalfcake Nice! Yes, states could be useful for such cases. If you theme has separate, individual "screens", like in ES2, and you want to change between them, you could implement each screen in a screen-sized Item, then change their position or anchor in the states. Or you could realign or change the shape and positions of the items if that's better for the theme, though that can end up a bit complicated.
Also the controls page link is http://pegasus-frontend.org/docs/user-guide/controls/; did you find a broken link somewhere?
@shantigilbert yeah that looks like a lib path issue. How are you launching Pegasus? I think In your case it should be like
LD_LIBRARY_PATH=/directory/of/libQt5Gamepad /path/to/pegasus-fe
. You can also set lib paths globally inld.conf
. -
@fluffypillow Yep on the simple theme tutorial > changing collections > tip :)
In terms of the screen, It might be too complicated for me at the moment, as getting a gridview working was hard enough.
-
@fluffypillow said in Announcing Pegasus Frontend:
@shantigilbert yeah that looks like a lib path issue. How are you launching Pegasus? I think In your case it should be like
LD_LIBRARY_PATH=/directory/of/libQt5Gamepad /path/to/pegasus-fe
. You can also set lib paths globally inld.conf
.Thanks, unfortunately is not as simple as that, the path is correct, it is also defined globally, and it runs perfectly fine when not executed as a service, it seems its a problem with apps made on QT as all I can find is that they need the QTService plug-in, even if I define the library path it will still not run as a service. But anyways this is probably getting off topic as I am sure this is a problem only for the Amlogic S905.
I appreciate your help!
-
@halfmanhalfcake ah thanks, fixed :) As for theming, yeah it has some learning curve, so I still plan to write some more, smaller guides for certain components and use cases.
@shantigilbert The problem you have is that the OS doesn't find a library required by the executable, and thus can't even start the program. As such, adding QtService can't fix this issue, however you can modify the lib search paths for the whole system, for one particular user, for one shell session/script or for one program. If you wish, we could continue going into the details in a GitHub issue.
-
@fluffypillow said in Announcing Pegasus Frontend:
@shantigilbert The problem you have is that the OS doesn't find a library required by the executable, and thus can't even start the program. As such, adding QtService can't fix this issue, however you can modify the lib search paths for the whole system, for one particular user, for one shell session/script or for one program. If you wish, we could continue going into the details in a GitHub issue.
Yeah I understand the issue, the problem seems to come that this does not happen if I run it directly, Pegasus-fe works wonderfully until I try to run it with systemd-run or with a .service file, that's is the weird issue.
I could open an issue on github, but not sure if this is a problem with Pegasus itself or is something on Libreelec, but for the sake of keeping this thread on topic and if you don't mind I will open one.
Thank you!
-
@fluffypillow Quick question, is there anyway I can use a 'soundeffect' to play a wav file on a keypress?
-
Hey @fluffypillow , what's the ETA on this request ?
-
- Favorite add/remove by buttonclick: will come after the metadata files are implemented (shouldn't be that far off now!).
- Page up/down function: this doesn't depend on anything else, so it'll probably just appear in one of the next releases. I wonder though, which gamepad buttons should be used here?
As for the current status, I spent the week tweaking the Qt builds to add 3D support, enable some features for the eventual USB tweaking, and fix support for an upcoming Raspberry firmware update. I've also spend some time copying all the assets and roms to a chinese pendrive for testing (literally took days!).
-
@halfmanhalfcake I think you could set up a SoundEffect to play on Keys.pressed/released.
-
@fluffypillow I tried that but doesn't seem to recognise SoundEffect :(
-
@halfmanhalfcake ah, apparently it's called Audio. You also have to
import QtMultimedia 5.8
to use it. -
@fluffypillow said in Announcing Pegasus Frontend:
- Favorite add/remove by buttonclick: will come after the metadata files are implemented (shouldn't be that far off now!).
- Page up/down function: this doesn't depend on anything else, so it'll probably just appear in one of the next releases. I wonder though, which gamepad buttons should be used here?
Sounds good. With regards to page up/down, I'm using keyboard inputs, maybe you could map these as page up/down and maybe the L2 and R2 could be used for gamepads, so the previous/next platform gets mapped to only L1 and R1 instead of both shoulder and trigger buttons?
-
@fluffypillow thanks, I’ll give that a go.
What’s the best play to ask questions on theme making? Happy for us to do it here or another place preferred?
-
Can I add videos on qml on pegasus right know? Im testing but it looks like Im not having any luck with this ...
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.