EPG discussion

117 views
Skip to first unread message

Tom Miranda

unread,
Aug 5, 2011, 4:47:54 PM8/5/11
to sagetv-b...@googlegroups.com
I'm starting this topic to discuss the design of the EPG.

Derek did some digging and found an example of what's possible, see here:  http://forum.xbmc.org/showpost.php?p=826284&postcount=5

and here for the source: http://xbmc-focus.googlecode.com/svn/trunk/skin.refocus/reFocus.PR2-0.9.1.zip

This EPG looks fantastic and it's what I'd like to do for our app.

I've looked briefly at this code and while I don't understand it all some things are evident.  One thing that sticks out like a sore thumb is the fact that they are using what appears to be custom fields in the ListItem.  I see references to things like ListItem.HasTimer and ListItem.IsRecording, and yet nowhere in the docs do I see those fields.  (Keep in mind this is for XMBC not Boxee, but since Boxee is really just an XBMC derivative we should be able to do similar things)  I'm wondering how they were added and if we can add custom fields as well.  What we're doing now is creating custom properties to hold metadata that is imported from Sage.

Derek - Can you see if you can figure out how/if they are adding these custom fields to ListItems?  If we can do that it will make the UI a lot better. I'm going to continue to dissect this code to see how this very cool EPG was created.

Michael Reid

unread,
Aug 5, 2011, 4:53:59 PM8/5/11
to sagetv-b...@googlegroups.com
thats purrr-deee!

i like it!

--
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/-/tv72Bs9bIVIJ.
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

Karl Ricker

unread,
Aug 5, 2011, 5:00:09 PM8/5/11
to sagetv-b...@googlegroups.com
If you need any custom graphics for it let me know.

Tom Miranda

unread,
Aug 5, 2011, 5:04:50 PM8/5/11
to sagetv-b...@googlegroups.com
Karl,

I can use a custom icon to display while the recordings window is being loaded.  Right now I'm using a sage icon that looks ugly because I'm stretching it too much.

If you can create that I'd appreciate it.

On Fri, Aug 5, 2011 at 5:00 PM, Karl Ricker <kjri...@gmail.com> wrote:
If you need any custom graphics for it let me know.
--
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/-/B-9BXCFpJfIJ.

Karl Ricker

unread,
Aug 5, 2011, 5:08:28 PM8/5/11
to sagetv-b...@googlegroups.com
Sure. Do you have any specs for the image? Pixel size, aspect ratio etc. I'll download the latest version in Boxee tonight to test with.

Michael Reid

unread,
Aug 5, 2011, 5:10:20 PM8/5/11
to sagetv-b...@googlegroups.com
is there a way to request specific things from the favorite object?  i am looking at the sagex/api/  commands and im not seing anything...only one which returns the entire set of favorite objects....

On Fri, Aug 5, 2011 at 4:08 PM, Karl Ricker <kjri...@gmail.com> wrote:
Sure. Do you have any specs for the image? Pixel size, aspect ratio etc. I'll download the latest version in Boxee tonight to test with.

--
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/-/GHkM3ONQe-MJ.

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 5, 2011, 5:18:04 PM8/5/11
to sagetv-b...@googlegroups.com
basically what i want to do is call the sagex and get an object back which has 

FavoriteID : FavoriteDescription 

pairs
--
~Mike

Derek Battams

unread,
Aug 5, 2011, 5:19:41 PM8/5/11
to sagetv-b...@googlegroups.com
I have to experiment with this, but I think it's possible.  You'll have to download the fav id keys, which I'll add a custom method in the sage.py for.  Then from there, you should be able to get each individual piece of data as desired, however, it will be an HTTP call for each piece of data per fav object.  So, it's not going to be the fastest way of doing it.  Depending just how big a fav obj actually is, it might just be quicker to download it all in one shot and then access the data through the JSON objects locally.

  - Derek

Michael Reid

unread,
Aug 5, 2011, 5:26:33 PM8/5/11
to sagetv-b...@googlegroups.com
the fav object is HUGE!

can you create a method which will setup the key value fair for me?  that way we only have to make one request, unless the user goes down the path of modifying a favorite.  Which in that case we would have to call the server, but will have teh ID and can get the object for that particular ID.  here is the object!

its so big for one show im actually not even going to paste it...its ridiculous


Tom Miranda

unread,
Aug 5, 2011, 6:02:04 PM8/5/11
to sagetv-b...@googlegroups.com
300 x 300 would be perfect.

On Fri, Aug 5, 2011 at 5:08 PM, Karl Ricker <kjri...@gmail.com> wrote:
Sure. Do you have any specs for the image? Pixel size, aspect ratio etc. I'll download the latest version in Boxee tonight to test with.

--
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/-/GHkM3ONQe-MJ.

Tom Miranda

unread,
Aug 5, 2011, 6:07:19 PM8/5/11
to sagetv-b...@googlegroups.com
And if you want to test it just replace thumb.png with your test image.

On Fri, Aug 5, 2011 at 5:08 PM, Karl Ricker <kjri...@gmail.com> wrote:
Sure. Do you have any specs for the image? Pixel size, aspect ratio etc. I'll download the latest version in Boxee tonight to test with.

--
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/-/GHkM3ONQe-MJ.

Tom Miranda

unread,
Aug 5, 2011, 7:33:00 PM8/5/11
to sagetv-b...@googlegroups.com
Another thing (two things) that would be a big help.

I need the main menu backgroung image (TVBackground.jpg) split into "slices".  Assuming the image is 1280 pixels wide x 720 pixels tall:

The first slice should be 375 pixels wide starting at the very left of the screen and the full 720 pixels high.

The second image should be 500 pixels wide x 720 pixels tall starting at pixel 350 (frm the left side of the picture.)

The purpose of these images is to provide a background for the main menu black panels that appear under the main choices (TV, Video, Music, ...) and the submenu choices (Recordings, Live TV, Program Guide....)

.png works better than jpg, I don't know if that's hard or easy to do but .png is better.

Thanks!

I'm not a graphics guy so if you need more information or this is not clear just let me know.

On Fri, Aug 5, 2011 at 5:08 PM, Karl Ricker <kjri...@gmail.com> wrote:
Sure. Do you have any specs for the image? Pixel size, aspect ratio etc. I'll download the latest version in Boxee tonight to test with.

--
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/-/GHkM3ONQe-MJ.

Karl Ricker

unread,
Aug 5, 2011, 8:12:55 PM8/5/11
to sagetv-b...@googlegroups.com
That was my plan. Bit what aspect or size are you displaying the image at?

-
Karl

Tom Miranda

unread,
Aug 5, 2011, 8:15:05 PM8/5/11
to sagetv-b...@googlegroups.com
The icon display size is 300 x 300.  Is that what you mean?

Karl Ricker

unread,
Aug 5, 2011, 8:25:12 PM8/5/11
to sagetv-b...@googlegroups.com
Is that the size of the icon or the size you are displaying it?

Karl Ricker

unread,
Aug 5, 2011, 8:27:53 PM8/5/11
to sagetv-b...@googlegroups.com
Is that the size of the actual icon or the size you display it at? You said earlier that you stretched the icon you were using.

Brian Schneider

unread,
Aug 5, 2011, 8:39:19 PM8/5/11
to sagetv-b...@googlegroups.com
Probably 720p (which is what the boxee interface assumes)

Tom Miranda

unread,
Aug 5, 2011, 9:08:32 PM8/5/11
to sagetv-b...@googlegroups.com
The interface is 720p.

Gotta run, just found out the inlaws house was hit by a tornado! Holy crap!

On Fri, Aug 5, 2011 at 8:39 PM, Brian Schneider <lehi...@gmail.com> wrote:
Probably 720p (which is what the boxee interface assumes)

--
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/-/WkL19t8zTk0J.

Michael Reid

unread,
Aug 5, 2011, 9:10:03 PM8/5/11
to sagetv-b...@googlegroups.com
Oh man!  I hope everything is ok!

Good luck.

~Mike

Karl Ricker

unread,
Aug 5, 2011, 9:19:09 PM8/5/11
to sagetv-b...@googlegroups.com
That is terrible news. Best wishes to your family.

Tom Miranda

unread,
Aug 5, 2011, 11:18:25 PM8/5/11
to sagetv-b...@googlegroups.com
Damage isn't too bad.  The screen room was blown down and 3 or 4 sheets of plywood were ripped of the peak of the roof.  Luckily the rain didn't last long so there wasn't too much water in the house.
 
They live on a lake and it was actually a water spout that came right across the lake and got them :(  We live on the other side of the lake and we didn;t even get any wind, go figure.
 
Not the best start to the weekend.

Michael Reid

unread,
Aug 5, 2011, 11:20:56 PM8/5/11
to sagetv-b...@googlegroups.com
Awesome!  So glad u and your family are all ok!

Your weekend will get better from here :-)

~Mike

Tom Miranda

unread,
Aug 6, 2011, 1:41:35 PM8/6/11
to sagetv-b...@googlegroups.com
Received an answer from a dev over on the Boxee forums telling me it's not possible to resize buttons.  I think he also indirectly answered the other question I raised regarding the custom fields.  It seems there is a myth tv branch that includes PVR functionality so I suspect these custom fields are part of that branch.

--
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/-/tv72Bs9bIVIJ.

Tom Miranda

unread,
Aug 7, 2011, 10:28:08 AM8/7/11
to sagetv-b...@googlegroups.com
Where there is a will, there is a way.  See attached.  Note the variable sized entries in the guide.

This is a draft, and real ugly, but it's a major step for the EPG.
teaser3.JPG

Karl Ricker

unread,
Aug 7, 2011, 10:30:25 AM8/7/11
to sagetv-b...@googlegroups.com
I'll start on the images first of the week. They shouldn't take too long to do.

Michael Reid

unread,
Aug 7, 2011, 10:47:53 AM8/7/11
to sagetv-b...@googlegroups.com
I can't see the attachment... Maybe just cause I'm on my phone. I'm hoping to get some time today to spend on the favorites. Wifes bday was this weekend and we had our annual bday BBQ.. I had to watch the little one again Friday night all day Saturday...

Derek Battams

unread,
Aug 7, 2011, 10:48:32 AM8/7/11
to sagetv-b...@googlegroups.com
And I've nearly got a fix for the channel logos issue.  It's a bug in the sagex apis.  Also, you'll actually have to call the sagex apis directly to get logo images:

http://host:port/sagex/media/logo/CNNHD?type=Small

That URL will get you the logo for CNNHD or return a 404 if there is no logo for that channel.  Don't bother trying it now because there's a bug in that sagex call that always returns 404.  I'm working on the fix right now and will provide a new sagex-api.jar file hopefully before lunch.

  - Derek

On Sun, Aug 7, 2011 at 10:30, Karl Ricker <kjri...@gmail.com> wrote:
I'll start on the images first of the week. They shouldn't take too long to do.

--
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/-/WpGmYjRtEucJ.

Daniel Kohler

unread,
Aug 7, 2011, 11:02:53 AM8/7/11
to sagetv-b...@googlegroups.com
Color me impressed - nice work Tom!

Derek Battams

unread,
Aug 7, 2011, 11:10:45 AM8/7/11
to sagetv-b...@googlegroups.com
The new jar is in the downloads section (-1 suffix).  It contains the fix for the channel logo media handler.  It works just as described below.  You still probably have to scale the image, but you can do that on the server side by specifying additional params:

http://host:port/sagex/media/logo/CNNHD?type=Small&scalex=90&scaley=67

That URL will either return a 90x67 logo for CNNHD or return a 404 error if there is no logo.  The scalex and scaley params are optional, the type is not.  Let me know if that does what's needed.

  - Derek

Tom Miranda

unread,
Aug 7, 2011, 11:58:35 AM8/7/11
to sagetv-b...@googlegroups.com
I don't understand.  Do I need to call the sagex directly to work around a bug, or is this just the way it is?  Why can't I use one of the GetChannelLogo() sage APIs?

Derek Battams

unread,
Aug 7, 2011, 12:56:50 PM8/7/11
to sagetv-b...@googlegroups.com
The remote APIs don't return binary data - that's how Sean set them up.  It would return the file path of the logo instead, but that's only if it's a user supplied logo in the ChannelLogos directory.  Since the logos provided by the Sage EPG server aren't ever stored locally, the remote APIs can't return a file path and that's why they return null in those cases.

Instead, the remote APIs provide a media handler interface, which is how you can directly download recordings files, fanart, and channel logos via the remote APIs.  There was a bug in the logo handler, which I fixed in the latest jar I uploaded, but either way, to access the logos you have to do it through the URL I specified - that's just the way it's always going to be.

Now, as I said, I could add a custom API call to sage.py called "sageAPI.getChannelLogo('CNNHD')", which would just return either the constructed image URL or the actual raw image data, which ever is more appropriate for the Boxee UI.  Let me know if that's something that's needed.

  - Derek

Tom Miranda

unread,
Aug 7, 2011, 1:11:38 PM8/7/11
to sagetv-b...@googlegroups.com
Now I understand.

Please implement the custom handler, that will make my life easier.

Thanks.

Derek Battams

unread,
Aug 7, 2011, 1:16:21 PM8/7/11
to sagetv-b...@googlegroups.com
Should the custom call return the image URL or the raw image itself?

Tom Miranda

unread,
Aug 7, 2011, 1:18:27 PM8/7/11
to sagetv-b...@googlegroups.com
URL.  I can display that directly in the UI.

Derek Battams

unread,
Aug 7, 2011, 2:29:41 PM8/7/11
to sagetv-b...@googlegroups.com
Done.  r72 adds custom API call:

sageAPI.getChannelLogoUrl(name)

name is the channel name as returned by ChannelAPI.GetChannelName() (i.e. CNNHD).  The method returns the URL that will display the channel's logo.  Note, however, that the URL may or may not return an image.  If there is no logo available for the channel then the URL returned will return a 404 error when accessed.  The only way to know if a logo exists is to try and access it via the returned URL and handle the 404 error as required.

  - Derek

Michael Reid

unread,
Aug 7, 2011, 2:35:27 PM8/7/11
to sagetv-b...@googlegroups.com
Anyone gonna be around doing some work tonight?  I worked it out with wifey so I can put some hours in tonight on the favorites and wanted to know I'd anyone will be around for support.

~Mike

Tom Miranda

unread,
Aug 7, 2011, 3:31:34 PM8/7/11
to sagetv-b...@googlegroups.com
I'll be around, but I usually quit around 9:00.

Michael Reid

unread,
Aug 7, 2011, 4:23:04 PM8/7/11
to sagetv-b...@googlegroups.com
Sweet!  Thanks.

~Mike

Tom Miranda

unread,
Aug 7, 2011, 8:20:15 PM8/7/11
to sagetv-b...@googlegroups.com
This version is a little more polished, but still not complete.  I still need to add in the logos and line things up a little better, but you get the idea.  Right now the only thing you can do in this window is scroll up and down, and skip ahead and back 24 hours.  I'll be adding more navigation next.

Due to the way the Boxee UI works you can only scroll within the channel list, there is no way to make the individual Airings focusable.  Therefore "taking action" on an airing will be a two step process; scroll the EPG until the Airing you are interested in appears in the list, then press "select" to bring up another window with the Airings on the channel you've selected. This isn't ideal, but until I figure out how to make the individual Airings focusable it's the best I can do.

I was hoping to be able to make horizontal lists of Airings within the vertical list of channels, but as far as I can tell that's impossible because there is no way to make buttons variable width.  Given that you can't make labels variable width either it's a minor miracle I got the EPG to look decent at all.

On Sun, Aug 7, 2011 at 10:28 AM, Tom Miranda <tom.m...@gmail.com> wrote:
teaser5.JPG

Michael Reid

unread,
Aug 7, 2011, 8:44:02 PM8/7/11
to sagetv-b...@googlegroups.com
very nice tom!  I tried grabbing the most recent code from svn, and running it, but it keeps failing on me with the following:

ERROR: Unable to load skin file special://home/apps/com.googlecode.sagetvboxee.sageboxee/skin/Boxee Skin NG/720p/windows.txt

19:38:15 T:1620 M:2629316608  NOTICE: Traceback (most recent call last):
19:38:15 T:1620 M:2629316608  NOTICE:   File "C:\Users\MReid\AppData\Roaming\BOXEE\userdata\apps\com.googlecode.sagetvboxee.sageboxee\startsage.py", line 5, in ?
19:38:15 T:1620 M:2629316608  NOTICE: import config
19:38:15 T:1620 M:2629316608  NOTICE:   File "C:\Users\MReid\AppData\Roaming\BOXEE\userdata\apps\com.googlecode.sagetvboxee.sageboxee\config.py", line 2, in ?
19:38:15 T:1620 M:2629316608  NOTICE: import version
19:38:15 T:1620 M:2629316608  NOTICE: ImportError
19:38:15 T:1620 M:2629316608  NOTICE: :
19:38:15 T:1620 M:2629316608  NOTICE: No module named version
19:38:15 T:1620 M:2629316608   ERROR: Scriptresult: Error
--
~Mike

Tom Miranda

unread,
Aug 7, 2011, 8:50:59 PM8/7/11
to sagetv-b...@googlegroups.com
You can ignore the error about window.txt.  The real problem is that you are missing version.py.

Are you running as a test app or as an installed app?  At this stage I recommend running it as a test app.

First try to unzip this version.py file and put it in the main directory (same place as sage.py.)  Let me know if that doesn't work.
version.zip

Michael Reid

unread,
Aug 7, 2011, 8:54:21 PM8/7/11
to sagetv-b...@googlegroups.com
really for now i just needed teh update version of the sage.py which allows me access to the sagex jar that Derek put up.  So i reinstalled the app from within boxee, and then copied over the new sage.py from the repos for now.  Ill mess around with the version and such tomorrow during work :-)

Thanks!

Brian Schneider

unread,
Aug 7, 2011, 9:08:37 PM8/7/11
to sagetv-b...@googlegroups.com
I downloaded r73 and when I go to the new program guide screen, I just get a Loading... and nothing loads.

I see the following in boxee.log... does this help debug at all?

21:05:05 T:7168 M:955146240   DEBUG: SageBoxee: EPG.
21:05:05 T:7168 M:955146240   DEBUG: SageBoxee: sage.py: New activeWindow is 14030
21:05:05 T:7168 M:955146240   DEBUG: CAppManager::GetWindowId - requested window id  = 14030, for app id = com.googlecode.sagetvboxee.sageboxee (applaunch)
21:05:05 T:7168 M:955146240   DEBUG: CAppManager::GetWindowId - requested window id  = 14030, for app id = com.googlecode.sagetvboxee.sageboxee, returning = 14502 (applaunch)
21:05:05 T:7168 M:955146240   DEBUG: XAPP::MC::GetWindow, requested window id = 14030, translated window id = 14502 (applaunch)
21:05:05 T:7168 M:955121664   DEBUG: CAppManager::GetWindowId - requested window id  = 14030, for app id = com.googlecode.sagetvboxee.sageboxee (applaunch)
21:05:05 T:7168 M:955121664   DEBUG: CAppManager::GetWindowId - requested window id  = 14030, for app id = com.googlecode.sagetvboxee.sageboxee, returning = 14502 (applaunch)
21:05:05 T:7168 M:955121664   DEBUG: XAPP::MC::GetWindow, requested window id = 14030, translated window id = 14502 (applaunch)
21:05:06 T:8948 M:955121664   DEBUG: CGUIBaseContainer::CGUIBaseContainer,  GUI_MSG_LABEL_RESET, 200 (basecontainer)
21:05:06 T:7168 M:955121664   ERROR: Scriptresult: Error
21:05:06 T:7168 M:955121664  NOTICE: Traceback (most recent call last):
21:05:06 T:7168 M:955125760  NOTICE:   File "<string>", line 37, in ?
21:05:06 T:7168 M:955125760  NOTICE:   File "<string>", line 22, in moveToTime
21:05:06 T:7168 M:955125760  NOTICE: AttributeError
21:05:06 T:7168 M:955125760  NOTICE: :
21:05:06 T:7168 M:955125760  NOTICE: 'module' object has no attribute 'timeToListItems'

Tom Miranda

unread,
Aug 8, 2011, 4:43:09 PM8/8/11
to sagetv-b...@googlegroups.com
This is because sage.py needs to be updated and I haven't done that yet.  I sent it off to Derek for tweaking, if he can't get to it today I'll make the updates and check them into svn.

--
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/-/qbFEOKW8kcEJ.

Derek Battams

unread,
Aug 8, 2011, 4:47:35 PM8/8/11
to sagetv-b...@googlegroups.com
When you return to work from a week of vacation, it's inevitable that you work late on Monday. :(  I will not be able to work on any of this tonight.

  - Derek

Tom Miranda

unread,
Aug 8, 2011, 4:49:13 PM8/8/11
to sagetv-b...@googlegroups.com
OK, I'll take care of it.  Now that the sagex api is fixed I can upgrade to the latest of everything.

Tom Miranda

unread,
Aug 8, 2011, 4:57:43 PM8/8/11
to sagetv-b...@googlegroups.com
r80 committed.  The EPG should now work for you.

Brian Schneider

unread,
Aug 9, 2011, 2:14:22 PM8/9/11
to sagetv-b...@googlegroups.com
Tom - while you work through continuing to refine the UI look and feel piece, would it make sense to come up with a list of API calls you might need Derek to incorporate into sage.py?  Trying to do as much in parallel as possible.

At a minimum, would be great to get API calls (or guidance on how to call) for the following:

Start Recording
Cancel Recording
Is Recording?
(I don't think you need functionality for future/past airings)
(and I didn't include any logo-related items as it looks like Derek and stuckless implemented what you need there)

And not sure if we need it, but perhaps something that flags if there is a conflict or not... (e.g. if one show is recording, you only have one tuner, and you go to try to start recording another show).  That is lower priority on the list, but something to consider.

Tom Miranda

unread,
Aug 9, 2011, 5:21:31 PM8/9/11
to sagetv-b...@googlegroups.com
That's sensible.  What I've been doing is asking him as things come up, or adding them myself.  if you have specific requests, ask away.

I think for methods that are only used in one window we should put them in the <onload> tag in the window where they are used rather than clutter up sage.py.

--
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/-/cnyZ723wALcJ.

Tom Miranda

unread,
Aug 10, 2011, 9:18:16 PM8/10/11
to sagetv-b...@googlegroups.com
Good news: I have a way that is much more functional and loads much faster.
Bad news: EPG needs a major rewrite.
Good news: I've started on it.

On Fri, Aug 5, 2011 at 4:47 PM, Tom Miranda <tom.m...@gmail.com> wrote:
I'm starting this topic to discuss the design of the EPG.

Derek did some digging and found an example of what's possible, see here:  http://forum.xbmc.org/showpost.php?p=826284&postcount=5

and here for the source: http://xbmc-focus.googlecode.com/svn/trunk/skin.refocus/reFocus.PR2-0.9.1.zip

This EPG looks fantastic and it's what I'd like to do for our app.

I've looked briefly at this code and while I don't understand it all some things are evident.  One thing that sticks out like a sore thumb is the fact that they are using what appears to be custom fields in the ListItem.  I see references to things like ListItem.HasTimer and ListItem.IsRecording, and yet nowhere in the docs do I see those fields.  (Keep in mind this is for XMBC not Boxee, but since Boxee is really just an XBMC derivative we should be able to do similar things)  I'm wondering how they were added and if we can add custom fields as well.  What we're doing now is creating custom properties to hold metadata that is imported from Sage.

Derek - Can you see if you can figure out how/if they are adding these custom fields to ListItems?  If we can do that it will make the UI a lot better. I'm going to continue to dissect this code to see how this very cool EPG was created.

--
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/-/tv72Bs9bIVIJ.

Michael Reid

unread,
Aug 10, 2011, 9:24:55 PM8/10/11
to sagetv-b...@googlegroups.com
So what's the new way?

~Mike

Tom Miranda

unread,
Aug 10, 2011, 10:19:32 PM8/10/11
to sagetv-b...@googlegroups.com
Use a panel container for the Airings instead of a hacked list container.

Brian Schneider

unread,
Aug 12, 2011, 11:10:39 AM8/12/11
to sagetv-b...@googlegroups.com
Tom - how are things progressing using the panel container approach?  I'm not sure if this helps or hurts, but I noticed XBMC's dev wiki seems to be more robust than Boxee's, so not sure if any of this helps but here's some panel-related information.  Any things you might be struggling with or need help with?

Tom Miranda

unread,
Aug 12, 2011, 5:52:53 PM8/12/11
to sagetv-b...@googlegroups.com
Brian,

The panel container is coming along very well.  I'm now working on the python code that will allow users to navigate through the airings and time.  Let me know if you ant to help, I'm always open to that.

Tom

On Fri, Aug 12, 2011 at 11:10 AM, Brian Schneider <lehi...@gmail.com> wrote:
Tom - how are things progressing using the panel container approach?  I'm not sure if this helps or hurts, but I noticed XBMC's dev wiki seems to be more robust than Boxee's, so not sure if any of this helps but here's some panel-related information.  Any things you might be struggling with or need help with?

--
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/-/HsAQqDTrNZMJ.

Brian Schneider

unread,
Aug 12, 2011, 6:55:02 PM8/12/11
to sagetv-b...@googlegroups.com
Fantastic.  I might take you up on your offer to to add the actions to the EPG (e.g. click a show, then be able to record, cancel record, watch live, etc etc)... I'll see what you have once you post at the end of the weekend and we can figure out who's doing what from there.

Tom Miranda

unread,
Aug 12, 2011, 7:37:39 PM8/12/11
to sagetv-b...@googlegroups.com
Sounds like a plan.

On Fri, Aug 12, 2011 at 6:55 PM, Brian Schneider <lehi...@gmail.com> wrote:
Fantastic.  I might take you up on your offer to to add the actions to the EPG (e.g. click a show, then be able to record, cancel record, watch live, etc etc)... I'll see what you have once you post at the end of the weekend and we can figure out who's doing what from there.

--
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/-/u_GzlzlM0mEJ.

Michael Reid

unread,
Aug 12, 2011, 7:41:16 PM8/12/11
to sagetv-b...@googlegroups.com
I'm out of dev tonight...
 I just got told I have datenight...  :-/

Wine and the Hottub are always appealing.

I'll be working on stuff tomorrow.

~Mike

Karl Ricker

unread,
Aug 12, 2011, 10:34:46 PM8/12/11
to sagetv-b...@googlegroups.com
Be careful....that's how you end up loosing even more dev time ;)

Michael Reid

unread,
Aug 12, 2011, 10:59:49 PM8/12/11
to sagetv-b...@googlegroups.com
Haha!

~Mike

On Aug 12, 2011, at 9:34 PM, Karl Ricker <kjri...@gmail.com> wrote:

Be careful....that's how you end up loosing even more dev time ;)

--
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/-/Moebaw6sx_UJ.

Brian Schneider

unread,
Aug 14, 2011, 9:09:34 PM8/14/11
to sagetv-b...@googlegroups.com
Tom/Derek - is there a method anywhere that I can use where I can pass in an AiringID and have it return to me an Airing object that I can then use with a sageAPI call?  I don't have the airing object necessarily... but an alternative could be that instead of passing the AiringID to a dialog window, I reach back into the parent window from the dialog and use something like GetFocusedItem to get the airing.

e.g. I want to be able to do something like below... thoughts?

#Get airing object a
a = METHOD(AiringID)

sageAPI.startRecording(a)

Brian Schneider

unread,
Aug 14, 2011, 9:33:03 PM8/14/11
to sagetv-b...@googlegroups.com
To add to my previous note, Derek, is there something that can be done in sage.py to address this per my earlier note about the exception?  Here's the exception I get from the following code:

airing = mc.GetFocusedItem(14030,400) #Returns a ListItem object of an airing from the EPG window (window #14030)

sageAPI.Record(airing)




21:29:39 T:6808 M:886046720   DEBUG: sagex API call "Record" [args: (<mc.ListItem; proxy of <Swig Object of type 'XAPP::ListItem *' at 0xaf63d20> >,)] FAILED!
21:29:39 T:6808 M:886046720   DEBUG: sagex API error response:
                                            MSG: None
                                            ERROR: Unknown Object Type: sage.e$f for Sage Object: sage.e$f@199d3a7
21:29:39 T:6808 M:886046720   DEBUG: sagex API exception:
                                            java.lang.Exception: Unknown Object Type: sage.e$f for Sage Object: sage.e$f@199d3a7

Derek Battams

unread,
Aug 15, 2011, 1:06:30 AM8/15/11
to sagetv-b...@googlegroups.com
This will all work nicely, once I'm able to edit sage.py to handle ListItem wrapped airing objects.  I wasn't around on the weekend so maybe after work Monday.  It really isn't much to do, I just have to find the time to do it.

  - 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/-/xjHKyT1M7lQJ.

Brian Schneider

unread,
Aug 15, 2011, 9:36:48 AM8/15/11
to sagetv-b...@googlegroups.com
Thanks Derek... appreciate the support.  Alternatively, I can try to take a shot if you talk me through it if you're not able to get to this this week.

Tom Miranda

unread,
Aug 15, 2011, 5:31:30 PM8/15/11
to sagetv-b...@googlegroups.com
I'm confused, doesn't sage.py do this already?  In the recordings window I use:

sageAPI.MoveFileToLibrary(item)

and that works fine.  What am I missing?  I thought the sageApi handled ListItems already as long as they were in "standard" format, and by standard I mean we've set the various properties with the correct values.

Derek Battams

unread,
Aug 15, 2011, 5:49:53 PM8/15/11
to sagetv-b...@googlegroups.com
Yeah, but when I wrote that code, I (incorrectly) assumed ListItem objects would only ever be used to wrap Sage MediaFile objects so the conversion code in sage.py assumes if it encounters a ListItem then it must be a MediaFile.  The code fails when it encounters a ListItem that wraps other types of Sage objects (Airings, Shows, etc.).  It's a real quick fix, I just have to find 30-45 minutes to sit down and write it/test it some evening this week.

  - Derek

Derek Battams

unread,
Aug 15, 2011, 5:54:49 PM8/15/11
to sagetv-b...@googlegroups.com
Issue 25 is logged for this one.  Tom, I know we had a back and forth about some other issues in sage.py last week.  Did you already address them all?  If there's anything outstanding you need me to add/fix in sage.py, can you open up tickets for them sometime this evening?  I might have some time this evening, but it's probably going to be Wednesday evening before I can sit down at look at these issues.

  - Derek

Tom Miranda

unread,
Aug 15, 2011, 6:31:38 PM8/15/11
to sagetv-b...@googlegroups.com
Got it.

Tom Miranda

unread,
Aug 15, 2011, 7:02:08 PM8/15/11
to sagetv-b...@googlegroups.com
Brian,

I looked at sage.py and now see how it handles ListItem MediaFiles.  The good news (I think) is that Sage is very forgiving as it accepts MediaFiles nad Airings interchangeably.  I *think* as long as your ListItem has the property 'MediaFileID' set then the method will work.

I believe you are working on the Recording Options, correct? Are you sure you're passing the api a mc.ListItem()? Can you post your code so I can have a look?

On Mon, Aug 15, 2011 at 9:36 AM, Brian Schneider <lehi...@gmail.com> wrote:
Thanks Derek... appreciate the support.  Alternatively, I can try to take a shot if you talk me through it if you're not able to get to this this week.

--
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/-/g5lm55EtOd4J.

Tom Miranda

unread,
Aug 15, 2011, 7:04:15 PM8/15/11
to sagetv-b...@googlegroups.com
The only outstanding issue I have is the request to get the Series Fanart working.

Brian Schneider

unread,
Aug 15, 2011, 10:01:04 PM8/15/11
to sagetv-b...@googlegroups.com
Tom - here's an example of something simple that I was trying to get to work... in epg.xml, onclick in the Airings panel, try the following:

i = airings.GetFocusedItem()
item = airings.GetItem(i)
sageAPI.Record(item)

Perhaps this is because Airings don't have mediafileid's?  (given it's not a mediafile until it's recorded?)

Tom Miranda

unread,
Aug 15, 2011, 10:13:08 PM8/15/11
to sagetv-b...@googlegroups.com
Yes, you are correct.  There will be no MediaFileID for an unrecorded Airing.  Sorry, I misunderstood what you were trying to do.

I'll take a look at sage.py tomorrow (if Derek doesn't get to it first).  I think I know enough about what he's doing in there to make it work.  No guarantees :)

--
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/-/C0kkMckNCLIJ.

Brian Schneider

unread,
Aug 15, 2011, 10:22:15 PM8/15/11
to sagetv-b...@googlegroups.com
Tom - looks like Derek updated sage.py in r101. I'll mess with start/cancel record tomorrow. Feel free to beat me to it though :)

Brian Schneider

unread,
Aug 16, 2011, 6:47:32 AM8/16/11
to sagetv-b...@googlegroups.com
Hi Derek - I just tried a simple test to Record by passing in an Airing object with r101 and it works, but still throws an exception when I call sageAPI.Record.  Good news is the recording does indeed start! But I get the exception below... thoughts?


06:44:24 T:6484 M:1236828160   DEBUG: sagex request URL: http://******@localhost:8889/sagex/api?size=50000&encoder=json&c=Record&1=airing%3A3771555
06:44:25 T:6484 M:1238081536   DEBUG: sagex API call "Record" [args: (<mc.ListItem; proxy of <Swig Object of type 'XAPP::ListItem *' at 0xa8da608> >,)] FAILED!
06:44:25 T:6484 M:1238081536   DEBUG: sagex API error response:
                                            MSG: None
                                            ERROR: Unknown Object Type: sage.e$f for Sage Object: sage.e$f@1dd2126
06:44:25 T:6484 M:1238081536   DEBUG: sagex API exception:
                                            java.lang.Exception: Unknown Object Type: sage.e$f for Sage Object: sage.e$f@1dd2126

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

                                            at sagex.remote.builder.SageAPIBuilder.build(SageAPIBuilder.java:76)

                                            at sagex.remote.api.JsonReplyEncoder.encodeReply(JsonReplyEncoder.java:35)

                                            at sagex.remote.api.ApiHandler.handleRequest(ApiHandler.java:175)

                                            at sagex.remote.SagexServlet.doPost(SagexServlet.java:60)

                                            at sagex.remote.SagexServlet.doGet(SagexServlet.java:38)

                                            at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)

                                            at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

                                            at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)

                                            at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:389)

                                            at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)

                                            at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)

                                            at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)

                                            at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)

                                            at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

                                            at org.mortbay.jetty.handler.rewrite.RewriteHandler.handle(RewriteHandler.java:230)

                                            at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

                                            at org.mortbay.jetty.Server.handle(Server.java:322)

                                            at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)

                                            at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864)

                                            at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)

                                            at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)

                                            at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)

                                            at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)

                                            at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)

                                            Caused by: java.lang.Exception: Unknown Object Type: sage.e$f for Sage Object: sage.e$f@1dd2126

                                            ... 24 more
06:44:25 T:6484 M:1238077440   ERROR: Scriptresult: Error
06:44:25 T:6484 M:1238077440  NOTICE: Traceback (most recent call last):
06:44:25 T:6484 M:1238061056  NOTICE:   File "<string>", line 5, in ?
06:44:25 T:6484 M:1238061056  NOTICE:   File "C:\Users\Erica\AppData\Roaming\BOXEE\userdata\apps\com.googlecode.sagetvboxee.sageboxee\sage.py", line 306, in __call__
06:44:25 T:6484 M:1237848064  NOTICE: raise SageApiException(resp)
06:44:25 T:6484 M:1237848064  NOTICE: sage
06:44:25 T:6484 M:1237848064  NOTICE: .
06:44:25 T:6484 M:1237848064  NOTICE: SageApiException
06:44:25 T:6484 M:1237848064  NOTICE: :
06:44:25 T:6484 M:1237848064  NOTICE: Unknown Object Type: sage.e$f for Sage Object: sage.e$f@1dd2126

Derek Battams

unread,
Aug 16, 2011, 9:15:45 AM8/16/11
to sagetv-b...@googlegroups.com
Yeah, based on the Sage API docs:


Record() is one of those weird API calls that returns a java.lang.Object and what it's returning is an obfuscated Sage object that can't be encoded for return via the remote APIs.  I've forwarded this along to Sean for his review/thoughts to see if sagex can handle this in some way, if not, we may have to make an exception for the Record() call in sage.py.  In the mean time, the crude work around is to catch the exception when calling Record() and simply ignore it.

  - 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/-/G3mdxeLFKeoJ.

Brian Schneider

unread,
Aug 16, 2011, 10:05:53 AM8/16/11
to sagetv-b...@googlegroups.com
sounds good... will work on this more tonight and will ignore the exception for now (victory for me was when i hit record and the rec icon in the top toolbar lit up :))

Tom Miranda

unread,
Aug 16, 2011, 4:36:03 PM8/16/11
to sagetv-b...@googlegroups.com
Good that we have something workable.  I won't make any changes at this time.

On Tue, Aug 16, 2011 at 10:05 AM, Brian Schneider <lehi...@gmail.com> wrote:
sounds good... will work on this more tonight and will ignore the exception for now (victory for me was when i hit record and the rec icon in the top toolbar lit up :))

--
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/-/p6DIsy_seKMJ.

Brian Schneider

unread,
Aug 19, 2011, 4:24:57 PM8/19/11
to sagetv-b...@googlegroups.com
FYI... I just checked in r111 which adds future airing functionality (and the groundwork for past airing).  Take a look... and I'll try to get past airing to work too.

Tom Miranda

unread,
Aug 19, 2011, 4:57:22 PM8/19/11
to sagetv-b...@googlegroups.com
I see it, but have not tried it yet.  I'm still making changes to get the "Watch Now" button to work, when I'm done I'll send you the .xml and let you merge the two versions.

On Fri, Aug 19, 2011 at 4:24 PM, Brian Schneider <lehi...@gmail.com> wrote:
FYI... I just checked in r111 which adds future airing functionality (and the groundwork for past airing).  Take a look... and I'll try to get past airing to work too.

--
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/-/YA97TUqOejEJ.

Tom Miranda

unread,
Aug 19, 2011, 5:51:49 PM8/19/11
to sagetv-b...@googlegroups.com
Brian,

Here is the options dialog that will now play items selected from the EPG.  Since this is your baby I'll let you merge my changes into yours.

It does NOT handle any conflicts created as a result of watching something from the EPG.  We need to think more about how to handle that.

On Fri, Aug 19, 2011 at 4:24 PM, Brian Schneider <lehi...@gmail.com> wrote:
FYI... I just checked in r111 which adds future airing functionality (and the groundwork for past airing).  Take a look... and I'll try to get past airing to work too.

--
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/-/YA97TUqOejEJ.
epg_options_show.xml

Brian Schneider

unread,
Aug 19, 2011, 6:20:07 PM8/19/11
to sagetv-b...@googlegroups.com
Thanks... I just merged into r112.  I'm done working on this for a while, so definitely if you're making any changes just pull down the latest code and use that as a starting point.

David Hamann

unread,
Aug 22, 2011, 11:43:21 PM8/22/11
to sagetv-b...@googlegroups.com
When I try to pull up the EPG I get this error.  Did I miss a setup step somewhere?


20:40:39 T:4536 M:3148877824   DEBUG: sagex API call "EvaluateExpression" [args: ('Sort(FilterByBoolMethod(GetAllChannels(), "IsChannelViewable", true), false, "ChannelNumber")',)] succeeded!
20:40:39 T:4536 M:3148877824   DEBUG: sagex API call: valid response received (1KB max logged)
                                            
                                            {"Result":[{"ChannelLogoCount":2,"IsChannelViewable":true,"StationID":20292,"ChannelNetwork":"ABC Affiliate","IsChannelObject":true,"ChannelDescription":"KATUDT (KATU-DT) Portland, OR","ChannelNumber":"2-1","ChannelName":"KATUDT"},{"ChannelLogoCount":0,"IsChannelViewable":true,"StationID":62792,"ChannelNetwork":"Independent","IsChannelObject":true,"ChannelDescription":"KATUDT2 (KATU-DT2) Portland, OR","ChannelNumber":"2-2","ChannelName":"KATUDT2"},{"ChannelLogoCount":1,"IsChannelViewable":true,"StationID":21722,"ChannelNetwork":"CBS Affiliate","IsChannelObject":true,"ChannelDescription":"KOINDT (KOIN-DT) Portland, OR","ChannelNumber":"6-1","ChannelName":"KOINDT"},{"ChannelLogoCount":2,"IsChannelViewable":true,"StationID":20378,"ChannelNetwork":"NBC Affiliate","IsChannelObject":true,"ChannelDescription":"KGWDT (KGW-DT) Portland, OR","ChannelNumber":"8-1","ChannelName":"KGWDT"},{"ChannelLogoCount":0,"IsChannelViewable":true,"StationID":32190,"ChannelNetwork":"Independent","IsChannelObject":true,"ChannelDescript
20:40:39 T:4536 M:3148869632   ERROR: Scriptresult: Error
20:40:39 T:4536 M:3148869632  NOTICE: Traceback (most recent call last):
20:40:39 T:4536 M:3148869632  NOTICE:   File "<string>", line 162, in ?
20:40:39 T:4536 M:3148869632  NOTICE:   File "<string>", line 20, in getAllChannels
20:40:39 T:4536 M:3148865536  NOTICE:   File "C:\Users\David\AppData\Roaming\BOXEE\userdata\apps\com.googlecode.sagetvboxee.sageboxee\epg.py", line 63, in channelListToListItems
20:40:39 T:4536 M:3148865536  NOTICE: item = _chanToListItem(i, t, api)
20:40:39 T:4536 M:3148865536  NOTICE:   File "C:\Users\David\AppData\Roaming\BOXEE\userdata\apps\com.googlecode.sagetvboxee.sageboxee\epg.py", line 87, in _chanToListItem
20:40:39 T:4536 M:3148865536  NOTICE: item.SetEpisode(int(chan['ChannelNumber']))
20:40:39 T:4536 M:3148865536  NOTICE: ValueError
20:40:39 T:4536 M:3148865536  NOTICE: :
20:40:39 T:4536 M:3148865536  NOTICE: invalid literal for int(): 2-1

Derek Battams

unread,
Aug 23, 2011, 12:02:12 AM8/23/11
to sagetv-b...@googlegroups.com
Nope, that's a bug.  Open a ticket for it, probably assign it to Tom??  Problem is code in that window is assuming that all channel numbers are integers - they aren't and should be treated as strings (OTA ATSC channels follow the format seen below "x-y").

  - 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/-/WWRiZmeEPeEJ.

David Hamann

unread,
Aug 23, 2011, 1:06:19 AM8/23/11
to sagetv-b...@googlegroups.com
Thanks, that makes sense.  looks like the real problem is item.SetEpisode() requires an int, which in our case a "channel number" might not be.  I've gone ahead and update epg.py and epg.xml.  Can someone confirm that item.Episode isn't used anywhere other than epg.xml?

Tom Miranda

unread,
Aug 25, 2011, 6:48:53 PM8/25/11
to sagetv-b...@googlegroups.com
Just committed r150 which adds icons to the EPG grid.  I had to position them above the text because there is no way to place them in a variable position following the text.

Have I said lately how much I miss studio? :)

On Tue, Aug 23, 2011 at 1:06 AM, David Hamann <dha...@gmail.com> wrote:
Thanks, that makes sense.  looks like the real problem is item.SetEpisode() requires an int, which in our case a "channel number" might not be.  I've gone ahead and update epg.py and epg.xml.  Can someone confirm that item.Episode isn't used anywhere other than epg.xml?

--
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/-/2bBd7YMRMekJ.

Michael Reid

unread,
Aug 25, 2011, 6:50:05 PM8/25/11
to sagetv-b...@googlegroups.com
Hey Tom nice work.  Did u see my post with the pic of favorites so far?

~Mike

Tom Miranda

unread,
Aug 25, 2011, 6:57:03 PM8/25/11
to sagetv-b...@googlegroups.com
Yes, it looks good. :)

Karl Ricker

unread,
Aug 26, 2011, 10:02:22 AM8/26/11
to sagetv-b...@googlegroups.com
There is a way to position them behind the text variably. I remember reading it int he XBMC wiki.It does depend on what controller you used though for the layout.

Karl Ricker

unread,
Aug 26, 2011, 10:03:51 AM8/26/11
to sagetv-b...@googlegroups.com
I hope to be finishing up a bunch of work next week. Then I can look at any GUI issues anyone needs me to.

Tom Miranda

unread,
Aug 26, 2011, 2:42:37 PM8/26/11
to sagetv-b...@googlegroups.com
Karl,

AFAIK It can be done with a grouplist, but I can't place a grouplist within a list control.  (Specifically, I can't place the grouplist within the <itemlayout> or <focusedlayout> tags.)  I hope I'm wrong about that but I made an inquiry on the Boxee forum and was told there is no way to do what I wanted....

On Fri, Aug 26, 2011 at 10:02 AM, Karl Ricker <kjri...@gmail.com> wrote:
There is a way to position them behind the text variably. I remember reading it int he XBMC wiki.It does depend on what controller you used though for the layout.

--
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/-/d_yXaFiJh_sJ.
Reply all
Reply to author
Forward
0 new messages