v17 [Implemented] Open 'Series Record' dialogue with single keypress
#1
edit: please see my last post in this thread which shows how to achieve this (Krypton+ only).

Hi, I installed Jarvis RC2 yesterday because I couldn't wait any longer to see how the series record PVR stuff has been implemented! So far, it's looking good, I'm just trying to work out the finer points of usability and wife acceptance.

At first, I could not find the option to do a series record/series link but later discovered I have to bring up the context menu on the program in the EPG and select 'Add Timer'. This isn't quite as slick as it needs to be but I think there must be a way around that - there always is right?

My first thought was to use a keymap entry, limited to the EPG window which brings up the special Add Timer dialogue but I can't quite work out how to get there. I already have this in my keyboard.xml to handle one-shot recordings:

Code:
<tvguide>
    <keyboard>
        <r>Record</r>
    </keyboard>
</tvguide>

which works fine so I just need to work out what action or Window ID to bind to another unused key. I checked the window IDs on the Wiki but can't find one for the PVR Add Timer/Series Link dialogue. Can anyone help with this?
Reply
#2
Anyone? I'm looking for a way to bring up the Add Timer dialogue (for doing a series record) with a single key press when on the EPG screen.
Reply
#3
Not sure about mapping that to a remote key you would have to find out the window name/ID or something have a look at the wiki is there anything in there...

If it helps I have the standard setting that when you press ok in the guide it brings up the context menu (originally it was set at "tune channel" this makes it a little more "wife acceptable"
Reply
#4
Thanks but I did say in the original post that I already checked the Wiki for the window ID. I'm guessing because PVR Series Record is relatively new, it hasn't been added to that page yet.
Reply
#5
I think you'll have to look at the source code in order to figure out the window/dialog IDs.
Reply
#6
Thanks but I'm not sure how you could possibly think that comment could be helpful in any way. Of course the answer lies somewhere in the source code but as you can see from my member status here, I am not a Kodi developer. I'm not fluent in the language Kodi is written in and more importantly, I don't understand the principles of windows IDs in the context of source code, how they are referenced, named or called, where do you suggest I start in the - how many lines of source code is Kodi up to now?

Dennis Nedry has, I'm afraid, left the building and I'm just John Hammond asking how the frig I bring up a dialogue to stop dinosaurs eating everyone. Or to get easier series linking, one of the two.
Reply
#7
I know it's not very helpful, but until someone else does it and adds it to the wiki it's really the only solution.
Reply
#8
Turn on debug , open window normal way and look for window name in log ??
Reply
#9
Thank you Jönke, that was very helpful! After enabing debugging, the log showed the following skin file being loaded: DialogPVRTimerSettings.xml which on the Window IDs page of the wiki translates to:

pvrtimersetting WINDOW_DIALOG_PVR_TIMER_SETTING 10604 604 DialogPVRTimerSettings.xml

Only problem now is, I've added this to my keyboard.xml:

Code:
<tvguide>
    <keyboard>
        <d>ActivateWindow(pvrtimersetting)</d>
    </keyboard>
</tvguide>

But this causes an instant crash when I press it in the EPG: "ERROR: Exception caught on main loop, Exiting". the debug log looks like this:

Code:
11:59:36 T:36892   DEBUG: Keyboard: scancode: 0x12, sym: 0x0065, unicode: 0x0065, modifier: 0x0
11:59:36 T:36892   DEBUG: CInputManager::OnKey: e (0xf045) pressed, action is ActivateWindow(TVGuide)
11:59:36 T:36892   DEBUG: Activating window ID: 10617
11:59:37 T:36892   DEBUG: ------ Window Deinit (Home.xml) ------
11:59:37 T:36892   DEBUG: ------ Window Init (MyPVRGuide.xml) ------
11:59:37 T:36892    INFO: Loading skin file: MyPVRGuide.xml, load type: KEEP_IN_MEMORY
11:59:37 T:36892   DEBUG: CGUIEPGGridContainer - EPG::CGUIEPGGridContainer::SetStartEnd - start=07/02/2016 11:30:00 end=15/02/2016 11:30:00
11:59:37 T:36892   DEBUG: CGUIEPGGridContainer - EPG::CGUIEPGGridContainer::UpdateItems completed successfully in 40 ms
11:59:38 T:36892   DEBUG: Keyboard: scancode: 0x4d, sym: 0x0113, unicode: 0x0000, modifier: 0x0
11:59:38 T:36892   DEBUG: CInputManager::OnKey: right (0xf083) pressed, action is Right
11:59:39 T:39792    INFO: CPythonInvoker(14, C:\Users\User\AppData\Roaming\Kodi\addons\weather.wunderground\default.py): script successfully run
11:59:39 T:39792    INFO: Python script stopped
11:59:39 T:39792   DEBUG: Thread LanguageInvoker 39792 terminating
11:59:39 T:39396   DEBUG: POParser: PO file has Win Style Line Endings. Converted in memory to Linux LF for file: resource://resource.language.en_gb/strings.po
11:59:39 T:39396   DEBUG: POParser: loaded 130 weather tokens
11:59:40 T:36892   DEBUG: Keyboard: scancode: 0x20, sym: 0x0064, unicode: 0x0064, modifier: 0x0
11:59:40 T:36892   DEBUG: CInputManager::OnKey: d (0xf044) pressed, action is ActivateWindow(pvrtimersetting)
11:59:40 T:36892   DEBUG: Activating window ID: 10604
11:59:40 T:36892   DEBUG: ------ Window Init (DialogPVRTimerSettings.xml) ------
11:59:40 T:36892    INFO: Loading skin file: DialogPVRTimerSettings.xml, load type: LOAD_EVERY_TIME
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.type) was not found.
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.active) was not found.
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.name) was not found.
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.epgsearch) was not found.
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.fulltext) was not found.
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.channel) was not found.
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.weekdays) was not found.
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.startanytime) was not found.
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.startday) was not found.
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.begin) was not found.
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.endanytime) was not found.
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.endday) was not found.
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.end) was not found.
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.firstday) was not found.
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.newepisodes) was not found.
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.startmargin) was not found.
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.endmargin) was not found.
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.priority) was not found.
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.lifetime) was not found.
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.maxrecordings) was not found.
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.directory) was not found.
11:59:40 T:36892   DEBUG: CSettingsManager: requested setting (timer.recgroup) was not found.
11:59:40 T:36892   DEBUG: CWinEventsWin32::WndProcWindow is active
11:59:40 T:36892   DEBUG: CWinEventsWin32::WndProc: Focus switched to process C:\Program Files (x86)\Kodi\Kodi.exe
11:59:41 T:36892   DEBUG: CJoystick::Initialize : No Joystick found
11:59:41 T:36892   DEBUG: CWinEventsWin32::WndProcWindow is active
11:59:41 T:36664   DEBUG: CMMNotificationClient::OnPropertyValueChanged: Changed device property of {0.0.0.00000000}.{b231e968-8e89-4732-aea4-2a5de8a611de} is {9855c4cd-df8c-449c-a181-8191b68bd06c}#0

I thought maybe all the "not found" lines were related to the error but they appear in the log even when accessing series link via the context menu. Damn! Thought we had it then.

edit: This thread shows some other guys who have come across ActivateWindow(pvrtimersetting) causing a crash, I might file a bug report. I tested this in Confluence too just to be sure it wasn't my skin causing this and it's the same problem. Update: bug report filed.
Reply
#10
Ofc the crash is not intended. ;-) Fixing it should be no problem, but...

... currently, what you want is simply not possible. Before activation, the timer settings dialog needs to be "pointed" to the timer it shall display, and this timer has to be created from a specific epg event. All this is currently simply not possible using a simple key mapping.
Reply
#11
Fix for the crash: https://github.com/xbmc/xbmc/pull/9095

I will see what I can do about the original feature request. Should not be to difficult to implement, it is just a matter of spare time.
Reply
#12
Thanks for the crash fix ksoo, fast work. And if you can find time to implement one-click Series Link dialogues, I think a lot of PVR users would be very grateful, not least me.
Reply
#13
I appreciate this is not the "Feature Request" forum, but just seemed the most appropriate place to mention.... thinking outside the box a little, instead of having a one key press for scheduling a series record, how about using the current "record" button, which then brings up a small context menu displaying:

>>>>>>Record Now
>>>>>>Record Series

"Record Now" would, as the name suggest record now, but "Record Series" would take you to the "Add Timer/Series Link" dialogue, I guess their Pros and Cons for doing this and I'm sure it's probably not as simple as it sounds and there's probably some complexities to get over..... but.....Just a thoughtHuh?
Reply
#14
Where would be the difference to defining a hotkey to open the existing epg event's context menu and then selecting either "record" or "add timer" from that menu?

The feature request is exactly about avoiding indirection on the way to the timer settings dialog.
Reply
#15
Ok, good point Ksoooo, I guess I was coming from pressing the record button while actually watching "live TV" rather than in the EPG, when I select a programme in the EPG it shows the context menu anyway, so I kind of get this feature anyway, abit with expanded options...I guess it needs the EPG data to schedule a series recording does it?
Reply

Logout Mark Read Team Forum Stats Members Help
[Implemented] Open 'Series Record' dialogue with single keypress0