Following up on this, I did a more comprehensive write up of what's needed to encode both Slideshow and EPG (or any other multiple of MOT Applications) in X-PAD.
X-PAD uses a concept of Data Group Start and Data Group Continuation indicators as it segments Data Groups across consecutive X-PAD frames.
The "default" is to use values of X-PAD AppTy 12 and 13 to indicate the Start and Continuation of Data Groups carrying MOT. These were "hard-coded" to Slideshow for first generation receivers (and probably, frankly, a whole bunch of lazy receivers since then).
When you want to transport more than one MOT application, you have to explicitly define which App Ty values you're using for each MOT Application. So in FIG 0/13 you need
- Number of User Applications : 2
- User Application 1: User App Type = 0x02 (Slideshow), X-PAD AppTy = X* (MOT), DSCTy = 60 (MOT)
- User Application 2: User App Type = 0x07 (EPG), X-PAD AppTy = Y* (MOT), DSCTy = 60 (MOT)
X would normally default to 12, and Y needs to be some other even number between 16 and 30.
Similarly, the X-PAD encoder has to use those values of X and Y in the Contents Indicator at the start of each X-PAD Frame, so that you can differentiate between Slideshow Data Groups and SPI Data Groups.
So my suggestion is (and I'll put this on an issue at the Github)
* Allow multiple instances of figtype in the component configuration section
* Define fixed User App Type numbers - Slideshow (0x02) -> 12, SPI (0x07) -> 16
* Compile FIG0/13 accordingly.
And then to set the same details in odr-padenc so it matches up.