Status 8/12/2011

51 views
Skip to first unread message

Tom Miranda

unread,
Aug 12, 2011, 6:11:39 PM8/12/11
to sagetv-b...@googlegroups.com
Ladies and Gents,

I've been up to my eyeballs with my daytime job this week and want to make sure I'm on the same page as the rest of you regarding where we are.  Here is what I think the status is, and what we need to do next:

- Recordings menu: Almost done.  Karl R has made some really good enhancements which he is sending to me so I can get them into svn.  David H is working on the "episodes" options.  Dave, any ETA on when this will be done?  I think once Karl and David's pieces are done we should do another build.

- I'm working on the EPG.  I had to rewrite large parts of it but it has been worth it.  I expect to have something usable checked into svn by the end of the weekend. By "usable" I mean you will be able to browse the EPG and that's it.  Once the browsing is done I'll start adding actions that can be taken on selected Airings.  The window is far enough along that if somebody else wants to take on the "actions" I can upload what I have to svn.  Volunteers?

- Michael R is working on the Favorites and is making nice progress.

- Derek is on bug squashing duty and (I think) will take requests for python code that needs to be written.

- Investigating live TV is in progress.

Did I miss anything?

I'd love to see other people take on some pieces.  Volunteers welcome.

Tom Miranda

unread,
Aug 13, 2011, 8:57:43 AM8/13/11
to sagetv-b...@googlegroups.com
I just committed the latest and greatest.  It has a lot of changes (including the visual changes made by Karl) in it so please try it out to make sure I didn't bork anything.

The EPG is not Boxee Box friendly.  You can try it, but I doubt it will work.

I also know that the times in the EPG are off by one hour due to daylight savings time.  Hopefully Sensei Derek can make me smart enough to figure out how to fix that soon.

You can navigate the EPG.  If you click on the date (upper left corner of the grid) it will advance one day.  Clicking right or left on the date moves you ahead or back one day. Moving right, left, up and down in the grid should do what you expect.  It still needs a lot of visual improvement which is what I'll be working on next.

Brian - If you want to start working on the "actions" for the EPG you should be able to do that.  Each ListItem in the grid has a custom property 'AiringID' that can be used in the Sage APIs.  Let me know what other information you need and will make the changes.  (Or feel free to make them yourself.)

In order to keep sage.py clean I moved all of the epg specific python to epg.py.  I think I'm going to move the recording specific python to its own .py file as well and use sage.py for methods that are used globally in the app.

Michael Reid

unread,
Aug 13, 2011, 9:34:43 AM8/13/11
to sagetv-b...@googlegroups.com
That's a good idea with the python. I current have two functions in sage.py. But I know there will be more.  Let's keep that guy clean of mine an your hack jobs :-)

~Mike
--
You received this message because you are subscribed to the Google Groups "SageTV for Boxee (Development)" group.
To view this discussion on the web visit https://groups.google.com/d/msg/sagetv-boxee-dev/-/rcHde_1RnYUJ.
To post to this group, send email to sagetv-b...@googlegroups.com.
To unsubscribe from this group, send email to sagetv-boxee-d...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sagetv-boxee-dev?hl=en.

Tom Miranda

unread,
Aug 13, 2011, 10:11:38 AM8/13/11
to sagetv-b...@googlegroups.com
Thanks to Sensei Derek I fixed the DST issue and updated svn.

--
You received this message because you are subscribed to the Google Groups "SageTV for Boxee (Development)" group.

David Hamann

unread,
Aug 13, 2011, 10:37:37 AM8/13/11
to sagetv-b...@googlegroups.com
I've been building a playhouse for my daughter, but I'll finish up the options tonight.

Brian Schneider

unread,
Aug 13, 2011, 11:48:48 AM8/13/11
to sagetv-b...@googlegroups.com
Sure, I can start to look into the options dialog for the EPG airings.

In looking through epg.xml, what control should I attach the "onclick" to?  I see you have a section for "Panel to contain the Airings", and within that, you have two background controls and two airing title (label) controls.  Why 2?  And which should I put the onclick onto? (I tried onclick on all 4 and nothing was happening).

I'll use a similar dialog to what you did with recordings.xml to start... I already have a shell, just trying to understand how to get the onclick to get captured.  Feel free to email me directly if that's faster.

Tom Miranda

unread,
Aug 13, 2011, 12:17:00 PM8/13/11
to sagetv-b...@googlegroups.com
Put the onclick right after

<ondown lang="python">gTopChannelIndex=downOneAiring(gTopChannelIndex, gAllChannelListItems, gCurrentAiringListItems, gEpgTime, sageAPI)</ondown>

You see two two background images and two labels because one is displayed when the item is in focus and the other is displayed when the item is not in focus. 

--
You received this message because you are subscribed to the Google Groups "SageTV for Boxee (Development)" group.
To view this discussion on the web visit https://groups.google.com/d/msg/sagetv-boxee-dev/-/VivH7ckRbj8J.

Brian Schneider

unread,
Aug 13, 2011, 1:46:31 PM8/13/11
to sagetv-b...@googlegroups.com
K.. got it.  One more question, I'm getting a "'int' object has no attribute 'GetTitle'" in the following block of code.  Just trying some simple stuff first.  Thoughts?

i = airings.GetFocusedItem()
title = i.GetTitle()
mc.LogDebug("BRIANSageBoxee: Clicked title=" + title)

How do I get the Airing that is the current focus and then pull properties from it (e.g. title, airingID)

Brian Schneider

unread,
Aug 13, 2011, 2:02:30 PM8/13/11
to sagetv-b...@googlegroups.com
Ignore previous note... I realized that GetFocusedItem returns an integer... the following for me now works:

i = airings.GetFocusedItem()
item = airings.GetItem(i)
airingID = item.GetProperty("AiringID")

Couple more questions... in the Sage API, I noticed there is a method for Airing.Record(pass in Airing).  How do I call various methods from the Sage API?  I'm not used to the sagex APIs... so if you could just help me with an example of how to take the airing ID above (and/or get an Airing object), and call Record(), I'll be off to the races!

Derek Battams

unread,
Aug 13, 2011, 2:25:27 PM8/13/11
to sagetv-b...@googlegroups.com
You need to make a slight adjustment to sage.py, namely the _objToArg() method towards the end.

I'm out for the day so I don't want to make the change without being able to test it, but basically you need to inspect the ListItem much like I do the dictionary in that function and return the appropriate string value.  When you make that edit, then you can just pass a ListItem as the argument to Record() (or any API call) and sage.py will properly encode and pass the Sage object ID in the API call.  Let me know if you need me to make that change, but it won't be today, tomorrow at the earliest.

  - Derek



--
You received this message because you are subscribed to the Google Groups "SageTV for Boxee (Development)" group.
To view this discussion on the web visit https://groups.google.com/d/msg/sagetv-boxee-dev/-/o7gHsj7KH7sJ.

Brian Schneider

unread,
Aug 13, 2011, 2:34:11 PM8/13/11
to sagetv-b...@googlegroups.com
Derek - I'll wait for you to get back.  I'm confused though as I'm looking at how the Set Watched functionality was implemented on the recordings screen and all that's done there is passing in a ListItem to SetWatched (which expects an Airing object) and it works.

What happens when I do the following is get an exception:

i = airings.GetFocusedItem()
item = airings.GetItem(i)
AiringID = item.GetProperty("AiringID")
mc.LogDebug("BRIANSageBoxee: Clicked AiringID=" + AiringID)
sageAPI.Record(item)


14:28:39 T:3424 M:1216032768   DEBUG: sagex API call "Record" [args: (<mc.ListItem; proxy of <Swig Object of type 'XAPP::ListItem *' at 0xabf0d88> >,)] FAILED!
14:28:39 T:3424 M:1216032768   DEBUG: sagex API error response:
                                            MSG: None
                                            ERROR: Unknown Object Type: sage.e$f for Sage Object: sage.e$f@13c6976
14:28:39 T:3424 M:1216032768   DEBUG: sagex API exception:
                                            java.lang.Exception: Unknown Object Type: sage.e$f for Sage Object: sage.e$f@13c6976

                                            at sagex.remote.builder.SimpleJSONBuilder.handleError(SimpleJSONBuilder.java:68)

David Hamann

unread,
Aug 13, 2011, 2:38:16 PM8/13/11
to sagetv-b...@googlegroups.com
Unless, you get the focused item this way...

item = mc.GetFocusedItem(14001, 1000)

Tom Miranda

unread,
Aug 14, 2011, 6:37:03 AM8/14/11
to sagetv-b...@googlegroups.com
New version available in svn:
- Now works on Boxee Box.
- Moved all recordings specific python from sage.py to recordings.py.
- Improved scrolling performance of EPG.  Moveing up and down is acceptable but I'm still not real happy with how long it takes to scroll left and right.  The only way to further improve the scrolling performance is to cache data in the background which adds a lot more complexity.

It still needs many visual improvements which I'll be working on next.

Other thoughts:

I haven't figured a way to implement page up or page down.  Anybody see a way to capture other keystrokes other than up, down, left, right and click?

On a PC client you can click and press right and left on the date that appears in the upper left corner of the grid to move a day at a time.  On the Box that's not possible simply because you can't navigate to that control.  If I can figure out how to capture keystrokes I could get this to work on the Box.



--
You received this message because you are subscribed to the Google Groups "SageTV for Boxee (Development)" group.
To view this discussion on the web visit https://groups.google.com/d/msg/sagetv-boxee-dev/-/kA-dKrVx40gJ.

David Hamann

unread,
Aug 14, 2011, 8:18:51 AM8/14/11
to sagetv-b...@googlegroups.com
The updates for the episode went in last night- for any recording you can set watched, don't like and archived.  You can also delete the recording, but that isn't as well tested as I'd like.

What I'm still working on:
I'm still working on the "recording options"  setting the manual recording and favorite statuses.
After an update to a recording (listitem), the whole list for the show is reloaded.  I'm trying to find a way to just reload the one individual item.

Tom Miranda

unread,
Aug 14, 2011, 9:14:47 AM8/14/11
to sagetv-b...@googlegroups.com
Look at reloadEpisodes() in recordings.xml.  It reloads all the episodes for the show in focus, not just one episode, but the performance is acceptable IMHO. 

If you want to gauge how fast it is I use it after changing the status of the whole group of shows.


--
You received this message because you are subscribed to the Google Groups "SageTV for Boxee (Development)" group.
To view this discussion on the web visit https://groups.google.com/d/msg/sagetv-boxee-dev/-/jV_PHSMuZBcJ.

Tom Miranda

unread,
Aug 14, 2011, 9:18:43 AM8/14/11
to sagetv-b...@googlegroups.com
And this is great progress!

We need to co-ordinate how the recording options will work both functionally and aesthetically because the same basic dialog should be used if the user selects "recording options" from the Recordings window or the EPG.

How do you suggest we all proceed?

On Sun, Aug 14, 2011 at 8:18 AM, David Hamann <dha...@gmail.com> wrote:

--
You received this message because you are subscribed to the Google Groups "SageTV for Boxee (Development)" group.

Brian Schneider

unread,
Aug 14, 2011, 10:28:22 AM8/14/11
to sagetv-b...@googlegroups.com
I'm close with a start for the shell for record options which could appear in the EPG.

qq... what is the python command to get a property of a window object.

e.g. I set the isRecording property via below... but I can't figure out how to fetch it as window.GetProperty doesn't seem to work

command = 'Window.SetProperty(isRecording, %s)' % isRecording
xbmc.executebuiltin(command)

I'll post the shell of what I have once I get some guidance above.

Tom Miranda

unread,
Aug 14, 2011, 10:46:53 AM8/14/11
to sagetv-b...@googlegroups.com
From the UI you can fetch the data using Window.Property:

$INFO[Window.Property(showTitle),Options for all episodes of[CR],:]

I'm not sure how to do it in python.  I would expect GetProperty() to work.  Maybe you're just not using it correctly?  Maybe mc.GetWindow(xxx).GetProperty(k,v)?

--
You received this message because you are subscribed to the Google Groups "SageTV for Boxee (Development)" group.
To view this discussion on the web visit https://groups.google.com/d/msg/sagetv-boxee-dev/-/RRKYaOqmDxEJ.

Brian Schneider

unread,
Aug 14, 2011, 11:08:56 AM8/14/11
to sagetv-b...@googlegroups.com
There isn't a window.GetProperty method so that won't work.  Alternatively, is there a way to add logic in the <label> tag to set the text differently based on a value?

e.g. 
$INFO[Window.Property(isRecording) is either 0 or 1

If 1, I'd like the label to say "Cancel Recording"
If 0, I'd like the label to say "Start Recording"

So what would the label tag be to handle this?

Tom Miranda

unread,
Aug 14, 2011, 11:42:28 AM8/14/11
to sagetv-b...@googlegroups.com
Conditional anything in the UI is almost non-existent.  I've resorted to making two controls occupy the same space and then controlling which one is visible by setting a custom property and using <visible>IsEmpty<.visible>.  Ugly for sure.

You can set the label in the <onload> tag.  Look in the "Tips and Tricks" topic in this group.

--
You received this message because you are subscribed to the Google Groups "SageTV for Boxee (Development)" group.
To view this discussion on the web visit https://groups.google.com/d/msg/sagetv-boxee-dev/-/XXn8K1uqlIYJ.

David Hamann

unread,
Aug 14, 2011, 11:43:51 AM8/14/11
to sagetv-b...@googlegroups.com
reloadEpisodes is plenty fast, but I've wrapped it with reloadEpisodesSetActive() that keeps the focus on the correct episode in the list.  I was mostly just wondering out load if there was a way to force the recordings window to recognize that the episode had changed.

Actually- now that I'm thinking about it... I'm going to try just updating the item properties and seeing if that takes care of it...

David Hamann

unread,
Aug 14, 2011, 11:49:22 AM8/14/11
to sagetv-b...@googlegroups.com
take a look at recording_options_episode.xml.  I set the labels dynamically, so that it's either "Clear Whatever" or "Set Whatever"

Here's how the initial label is set in the onload:
watched = item.GetProperty('IsWatched')
setLabel(thisWindow.GetButton(505), (watched and "Clear" or "Set") + " Watched")

Then when the property is changed:
if watched:
sageAPI.ClearWatched(item)
setLabel(thisWindow.GetButton(505), "Set Watched")
else:
sageAPI.SetWatched(item)
setLabel(thisWindow.GetButton(505), "Clear Watched")
watched = not watched

David Hamann

unread,
Aug 14, 2011, 12:01:00 PM8/14/11
to sagetv-b...@googlegroups.com
I only just started thinking about the recording options window last night.

I know that it needs to look something like this:
set/clear manual recording
if a favorite
Remove this Favorite
Adjust Favorite Options
else
Add this show as a Favorite

I do have the manual recording toggle started, although I need to change the actual function calls to work right.  The only reason to set the label on the fly is if the window doesn't close immediately.

in onLoad:
isManualRecord = item.GetProperty('IsManualRecord')
setLabel(thisWindow.GetButton(501), (isManualRecord and "Remove" or "Add") + " Manual Recording status for this show")

in the onClick:
if isManualRecord:
sageAPI.ClearManualRecording(item)
setLabel(thisWindow.GetButton(501), "Add Manual Recording status for this show")
else:
sageAPI.SetManualRecording(item)
setLabel(thisWindow.GetButton(501), "Remove Manual Recording status for this show")
isManualRecord = not isManualRecord

Tom Miranda

unread,
Aug 14, 2011, 12:35:20 PM8/14/11
to sagetv-b...@googlegroups.com
I just committed the latest and greatest to svn.  Lots of visual enhancements plus more options now work when a single episode is selected in the recordings menu.

If you run the app on a software client you will not see any logos in the EPG.  If you do run the app on a Box then the logos will be visible.

On Fri, Aug 12, 2011 at 6:11 PM, Tom Miranda <tom.m...@gmail.com> wrote:

--
You received this message because you are subscribed to the Google Groups "SageTV for Boxee (Development)" group.
To view this discussion on the web visit https://groups.google.com/d/msg/sagetv-boxee-dev/-/kA-dKrVx40gJ.

Michael Reid

unread,
Aug 14, 2011, 1:32:18 PM8/14/11
to sagetv-b...@googlegroups.com
Awesome work Tom!  I'll be workin later tonight after the kiddo goes Down.  Sunday is "Sunday fun day". As Jamie like to call it.  Church,  lunch,  and the day with grammie and papa..  :-)

~Mike

Brian Schneider

unread,
Aug 14, 2011, 2:53:27 PM8/14/11
to sagetv-b...@googlegroups.com
Setting the label is the easy part... not a problem.  My problem is passing a variable into the window and then doing conditional logic off that property.  I'll think about a different approach.

Brian Schneider

unread,
Aug 14, 2011, 3:03:47 PM8/14/11
to sagetv-b...@googlegroups.com
UPDATE: I used a sneaky workaround.  To access a Window property in python, here's what I did:

1. Set the label of the control to the value I'm trying to retrieve (e.g. $INFO[Window.Property(AiringID)])
2. In the <onload> of the window, simply use GetLabel() of the control above to get the property
3. Voila!... you now have access to the property you set in the python

Tom - I'll post my code shortly... could use your help to merge as I don't have access to the repo.

Tom Miranda

unread,
Aug 14, 2011, 3:10:20 PM8/14/11
to sagetv-b...@googlegroups.com
No problem.  Just let me know how you want to get the code to me.  I did a lot yesterday and today so now I'm just tweaking some small things and thinking about how to fix some big things.

If you modeled the dialogs after what I did you'll need to make some small changes to the button control.  Look at the last few posts I put in to thread outlining the differences between the Box and the PC client.  Also take a look at the new dialogs I checked into svn to see what needs to be done.  There's not much to do but it makes a world of difference visually on the box.

Once the episode stuff is submitted I'll ask Derek to do another build for the repo.

--
You received this message because you are subscribed to the Google Groups "SageTV for Boxee (Development)" group.
To view this discussion on the web visit https://groups.google.com/d/msg/sagetv-boxee-dev/-/fJQsCCER8cQJ.

Brian Schneider

unread,
Aug 14, 2011, 3:58:10 PM8/14/11
to sagetv-b...@googlegroups.com
Tom - I've implemented a start to the airings option dialog on the EPG screen.  Given I don't have permission to edit the repo, can you merge in my changes?  Here's what's needed (can you also update the permissions for me so I can edit the repo in the future?):

Let me know if I missed anything, but in terms of functionality, it just shows an option dialog and has some logic to determine if the airing you clicked on is currently recording or not (e.g. to set the Start/Cancel Recording label in the dialog)

1. Add the attached OSDRecord.png to the "media" folder
2. Add the attached epg_options_show.xml to the "720p" folder (feel free to rename this as well, especially if we intend to use it in both the EPG window and the recordings window)
3. Add a new entry in windows.txt with the window ID for the new dialog (I used 14999... but feel free to change it to whatever you think makes sense based on whatever convention you were using... just do a search/replace if you change it)
4. Add in the following lines of code to epg.xml after the <ondown> section in the Airings panel
<content type="action">
<onclick lang="python">
<![CDATA[
i = airings.GetFocusedItem()
item = airings.GetItem(i)

# Pass values to the recording options dialog, then open the dialog
command = 'Window.SetProperty(AiringTitle, %s)' % item.GetProperty("AiringTitle")
xbmc.executebuiltin(command)
command = 'Window.SetProperty(AiringID, %s)' % item.GetProperty("AiringID")
xbmc.executebuiltin(command)
IsAiringRecording = epg.IsAiringRecording(item.GetProperty("AiringID"), sageAPI)
command = 'Window.SetProperty(IsAiringRecording, %s)' % IsAiringRecording
xbmc.executebuiltin(command)

mc.ActivateWindow(14999)
]]>
</onclick>
</content>


5. Add the following lines of code to epg.py
# Checks if an airing is currently recording (accepts an AiringID as a string as input)
def IsAiringRecording(a, api):
# Check if the airing is recording or not
recs = api.GetScheduledRecordings()
for rec in recs:
if(a == str(rec['AiringID'])):
return 1
return 0


OSDRecord.png
epg_options_show.xml

Tom Miranda

unread,
Aug 14, 2011, 4:29:18 PM8/14/11
to sagetv-b...@googlegroups.com
Done in revision 96.  I'll email Derek and ask him to add you, he owns the svn repository.

--
You received this message because you are subscribed to the Google Groups "SageTV for Boxee (Development)" group.
To view this discussion on the web visit https://groups.google.com/d/msg/sagetv-boxee-dev/-/aC955kNCAQsJ.

Michael Reid

unread,
Aug 14, 2011, 11:08:42 PM8/14/11
to sagetv-b...@googlegroups.com
Hey guys,

i have been trying to use this thread to get what i want working but I can't seem to get the syntax right.  bascially what I am doing right now is grabbing ALL info on the favorites load...which i said i wasn't going to do, but it doesn't take that much more time to get the specific pieces of data i need for editing favorites...anyways i have that working proprely.  when I click on a favorite it launches my next window for favorite detail.  now what i need to do is bascially this

i = mc.GetWindow(14010).Control(100).GetFocusedItem()

I tried the example above in this thread without success.  I need to bascially get the previous window elements.  Tom, I tried what you sent me as well, and that didnt' work.

GetWindow.Control.ListItem.

any suggestions?
--
~Mike

David Hamann

unread,
Aug 14, 2011, 11:49:54 PM8/14/11
to sagetv-b...@googlegroups.com
I keep going back here a lot... it's the closest thing I've seen to useful documentation  http://developer.boxee.tv/MC_Module
This has links to the API's for the classes in the module.

Are you trying to get the actual item, or the item number?  I'm making an assumption that you're working from a List control.

For the item:
item = mc.GetFocusedItem(14010100)  --- this is the easiest way that I've found that to get the actual item, otherwise you have to get the list and call list.GetItem(itemNumber)

For the item number:
itemNumber = mc.GetWindow(14010).GetList(100).GetFocusedItem()

Michael Reid

unread,
Aug 15, 2011, 8:56:27 AM8/15/11
to sagetv-b...@googlegroups.com
Thanks David, Ill try that asap.

--
You received this message because you are subscribed to the Google Groups "SageTV for Boxee (Development)" group.
To view this discussion on the web visit https://groups.google.com/d/msg/sagetv-boxee-dev/-/rIEWWAdsX5UJ.

To post to this group, send email to sagetv-b...@googlegroups.com.
To unsubscribe from this group, send email to sagetv-boxee-d...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sagetv-boxee-dev?hl=en.



--
~Mike

Michael Reid

unread,
Aug 15, 2011, 9:30:19 PM8/15/11
to sagetv-b...@googlegroups.com
Still no luck with this.  I am calling window 14011 from window 14010

when the user clicks on a favorite thats what activates the new window.  from within the new window i tried both of your suggestion, and each time i get errors which look like this:

20:28:52 T:3916 M:2458951680  NOTICE: MIKE1
20:28:52 T:3916 M:2458951680   DEBUG: CAppManager::GetWindowId - requested window id  = 14010, for app id = com.googlecode.sagetvboxee.sageboxee (applaunch)
20:28:52 T:3916 M:2458951680   DEBUG: CAppManager::GetWindowId - requested window id  = 14010, for app id = com.googlecode.sagetvboxee.sageboxee, returning = 14505 (applaunch)
20:28:52 T:3916 M:2458951680   DEBUG: XAPP::MC::GetWindow, requested window id = 14010, translated window id = 14505 (applaunch)
20:28:52 T:3916 M:2458918912   ERROR: CThread::staticThread - Unhandled exception caught in thread process, attemping cleanup in OnExit
20:28:52 T:3916 M:2458918912   DEBUG: Thread 3916 terminating
20:28:52 T:3700 M:2458959872   DEBUG: ------ Window Deinit (DialogProgress.xml) ------
20:28:54 T:3700 M:2459279360   DEBUG: CWinEventsWin32::WndProcWindow is active
20:28:54 T:3700 M:2459279360   DEBUG: CWinEventsWin32::WndProcWindow lost focus

i tried this:

itemNumber = mc.GetWindow(14010).GetList(101).GetFocusedItem()
item = list.GetItem(itemNumber)

and this:
item = mc.GetFocusedItem(14010101)
--
~Mike

Tom Miranda

unread,
Aug 15, 2011, 9:51:30 PM8/15/11
to sagetv-b...@googlegroups.com
To me it looks like you are getting itemNumber correctly.  In the second statement where is "item" coming from?  GetItem works on a List so you need to get the list:

item = mc.GetWindow(14010).GetList(101).GetItem(itemNumber)

Michael Reid

unread,
Aug 15, 2011, 10:06:57 PM8/15/11
to sagetv-b...@googlegroups.com
i dunno if im just being stupid here or what...i did what you said and i get the following error

code:

itemNumber = mc.GetWindow(14010).GetList(101).GetFocusedItem()
item = mc.GetWindow(14010).GetList(101).GetItem(itemNumber)
print item

error:

BUG: XAPP::MC::GetWindow, requested window id = 14010, translated window id = 14505 (applaunch)
21:02:37 T:4664 M:2428813312   ERROR: Scriptresult: Error
21:02:37 T:4664 M:2428813312  NOTICE: Traceback (most recent call last):
21:02:37 T:4664 M:2428813312  NOTICE:   File "<string>", line 5, in ?
21:02:37 T:4664 M:2428813312  NOTICE:   File "C:\Program Files (x86)\Boxee\system\python\local\mc.py", line 2280, in GetList
21:02:37 T:2832 M:2428792832   DEBUG: ------ Window Deinit (DialogProgress.xml) ------
21:02:37 T:4664 M:2439864320  NOTICE: return _mc.Window_GetList(*args)
21:02:37 T:4664 M:2439864320  NOTICE: RuntimeError
21:02:37 T:4664 M:2439864320  NOTICE: :
21:02:37 T:4664 M:2439864320  NOTICE: _08fdfb0a_p_XAPP__AppException
--
~Mike

Tom Miranda

unread,
Aug 15, 2011, 10:18:18 PM8/15/11
to sagetv-b...@googlegroups.com
The code is almost right out of the "textbook" http://developer.boxee.tv/List_Class Look at the GetItem example.

What Window are you calling this from? Is Window(14010) a valid Window?  Is 101 a valid list control?

If you can't get it to work either zip and attach the entire .xml file, or email it to me and I'll have a look tomorrow.

Michael Reid

unread,
Aug 15, 2011, 10:56:00 PM8/15/11
to sagetv-b...@googlegroups.com
yes 14010 is a valid window and 101 is a valid list control.  ill email you the code.

Michael Reid

unread,
Aug 19, 2011, 10:43:47 PM8/19/11
to sagetv-b...@googlegroups.com
Just to close this topic out a bit, I found some additional info that works quite well.

The above suggestions didn't work because the calling window lost focus, and getfocuseitem would cause boxee app to puke.  the way around it is to use window parameters.

head over to the "UI Tips/Tricks" thread for additional info.
Reply all
Reply to author
Forward
0 new messages