X Class - Xtream Codes IPTV Player (work in progress)

There are 23 replies in this Thread which was already clicked 3,615 times. The last Post () by KiddaC.

  • I don't know why I do this to myself. :zany face:

    Ok so I have been threatening to re-write xtreamity to be more like an android app.
    Where the player loads first, and all other options are then accessible via the menu button or other buttons.
    The majority of code from xtreamity is going to be recycled, but its just going to function a little different.


    So this is just my diary. It's a closed thread.

    I have an idea, but nothing really written on paper.


    So lets go............. :nerd face:

    ** A person who feels appreciated will always do more than what is expected **

  • KiddaC

    Closed the thread.
  • Hmmm, Now I have started shuffling things about. I am wondering if this is even possible.

    Enigma2 keeps a chain of events, so if you close out of one screen, you go back to the previous screen.

    Now some of these steps move forwards, some of these steps move backwards.


    Think, think, think

    ** A person who feels appreciated will always do more than what is expected **

  • I have had a think - I told you I have no plan.

    We open the live channel list page as default. This becomes the first page where I can access everything else (via a slide out or pop up dialog menu)
    I need to combine live, vod, series, catchup in one skin file and one python file. (xstreamity of old did this).
    There is a lot of code in those combined files, but as everything is pretty much stable now, debugging isn't a problem.


    Then live, vod, series, catchup can just switch between elements.
    All other screens remain separate, return you to the channel screen when closed.

    Streamplayer stays as it is. Returns to channel select screen.

    pasted-from-clipboard.png

    ** A person who feels appreciated will always do more than what is expected **

  • OK so what have been doing the last few days.


    Trying to get this dialog menu to work. I have no idea what I am doing. But found a way to hack everything together.
    Its probably not the official way to use these dialog popups, but it now works.

    Now got a pop up menu that I can interact with


    pasted-from-clipboard.png

    ** A person who feels appreciated will always do more than what is expected **

  • :party-time: :party-time: :party-time: :party-time: :party-time: :party-time: :party-time:

    God, I have just spend hours and hours trying to work out how to not have a chain of events of screens. Even more difficult because my sub menu is a dialog box and not a single screen. (it overlays the other screen )

    So normally, you go menu screen, then plugin screen, then another screen..etc etc. And on close you go back through the lists. Its very linear.

    But I want to go main menu > xclass live > open dialog sub menu > xclass vod > exit to main menu.
    Basically skipping any screens I have opened inbetween. Which is difficult with a dialog screen as you cant do a recursive close.

    I was just about to give up as I had tried multiple attempts, but in the end I pasted the code from StartEnigma.py from openatv into ChatGPT and asked it how to achieve my goal.
    I love artificial intelligence. Sometimes it just comes up with a perfect solution.

    The solution is so bloody easy in the end. Stangely I have never seen any other enigma2 plugin do this. (and yes I have been googling other plugins for hours too)
    But I like to share my knowledge to help other hobbyists.

    So every time you open a screen its gets pushed to a session dialog_stack. Which is just a list of the screens you have visited.


    [(<class 'Screens.InfoBar.InfoBar'>, False), (<class 'Screens.Menu.Menu'>, True), (<class 'Plugins.Extensions.XKlass.start.XKlass_Start'>, True)]


    Every time you close a screen, it gets removed from the list and loads the previous screen in the list.

    So all I actually have to do, is on every screen I don't want the previous screen as history. I call this simple command when initialising that screen. Which is just basically deleting the previous screen you have visited.

    Code
            if self.session.dialog_stack:
                self.session.dialog_stack.pop()

    And that my friends has just taken me 6 hours to work out. :slot machine:

    So as example. My first screen is an invisible screen that does some logic to work out which screen to show first based on the last viewed screen. i.e live channels.

    so I go [start]
    open [live] and delete [start]
    open my submenu dialog - select an option. i.e VOD
    open [vod] and delete [live]
    click exit. Start has gone. Live has gone. Back to main menu.

    My plugin is now easy to finish. That was the hard bit to work out

    ** A person who feels appreciated will always do more than what is expected **

KiddaC Skins and Plugins

KiddaC Enigma2 Picons, Plugins and Skins, includes slyk-1-HD, v-skin-HD, slyk-q-HD, slyk onyx skins, Bouquet Maker Xtream, E2Piconizer, IPTV Bouquet Maker, Jedi Maker Xtream, Jedi EPG Xtream, ScreenNames, Visual Weather and X Class, X-Streamity - Xtream Codes IPTV Player.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!