Jump to content

EPG: Filter by "Favourites"


daffy

Recommended Posts

In my humble opinion, the EPG would be more useful if there was a way to only show those stations, which are on the "Favourites" list.

 

Currently, EPG data can be filtered only on video / radio - but still every single station is being displayed. To reduce the number of stations to look at, filtering on favourite stations can be very helpful; alternatively adding a new child item in the "Stations" tree view, named "[Favourites]" and listing only favourite channels, would have the same effect.

 

I use DVBViewer the following way:

- The channel list has *all* channels under the sun - whatever a channel scan found

- The favourites list features only those channels, which I regularly watch

- Whenever I would like to watch a non-favourite channel, I open the channel window and use the search functionality to locate it

 

It should be evident that *for me* the EPG window in its current state is very inconvenient to use. Having a "favourites only" view on EPG data would be quite helpful for me.

Link to comment

i want more EPG. Not only favorites. And ists no problem with channellist to say that you don't wnat EPG from this station! Have a look at the edit tab in your channellist!

On full version you have a much more adjustable EPG.

 

Steffen

Link to comment

Have a look here. There you'll find the EPG Manager - a tool that provides convenient selection of the channels that shall be shown in the DVBViewer EPG.

 

Alternatively, if there is an unwanted channel in the EPG, simply select it and press Del (Entf) - it will be gone forever :( well, not really. It can be reactivated in the channellist window, Edit Tab.

Link to comment

Interesting hack, griga!

 

My apologies for calling it hack - but I believe for the following reasons my original request still makes sense:

 

1.) I absolutely do want to have at my disposal EPG data for every single channel; it's just that I do not want to *see* it always every single time I look at the EPG window.

 

2.) Even if 1.) does not convince, it is clear that editing the "Exclude EPG" flag for each single station (and there are MANY stations on Astra 19.2) requires quite a bit of an effort (made easier by the EPG manager, no doubt). Having a pre-defined, user-selectable filter in the EPG window reading "favourites only", this effort would not be required.

 

3.) Favourites change, at least occasionally. Each time the favourites change, I'd have to update the EPG configuration.

 

4.) Stations change - and each time that happens, it is necessary to update the EPG setting for any added station.

 

IOW, *not* having a "Favourites only" filter in the EPG window means loading off a lot of work onto the user - *and* still does not keep the existing functionality.

 

All I want is reduce the default amount of information that is *shown* in the EPG window; I absolutely do want to have EPG data *available* for every single station.

Link to comment
*not* having a "Favourites only" filter in the EPG window means loading off a lot of work onto the user

 

Having it loads off work to the programmers and makes the internal structures more complicated.

 

But we can check how much effort would be necessary to synchronize the EPG with the favourites and how many users actually want it - and then have a look at the general costs/profit ratio.

Link to comment
in normal "EPG window"

 

Forget it - filtering channels isn't done here at all, and it has never been requested, since the user selects the channel anyway.

 

Have a look at the filter options. This part of the EPG displays a kind of time table, so we have time based filter criteria here.

Link to comment

First of all, thank you, griga, for this very fast response - and the incredibly quick action!

 

Secondly, I agree with what Klausing suggested implicitly: Having a filter on the "plain full EPG window" would be very helpful, too:

 

Imagine a person looking for some background noise (me? never!). That person prefers to get this noise from some quality sources, i.e. "Favourites". Only in the event that this person gets desperate is the full set of station asked for.

 

For the full-featured "plain" EPG view, it would probably help to also add a "Favourites" root branch to the treeview on the left hand side. This would then display

 

- - Astra 1B, 1C, ...

|- Video

|- Group(s)

|- Audio

|- Group(s)

 

- - [Favourites]

ARD

ZDF

BBC World

|- Music (TV)

|- Radio

 

Sure, this would make it possible to get hold of EPG data for, say, the arte channel through two different means (via the satellite scan and the favourites settings). IMHO, this is not a bad thing at all.

 

An alternative would also require implementing the Favourites filter - exactly the filter which you already kindly added to the other EPG views. That probably would break user interface logic, though, as the filter criterion in the "plain" EPG view is time-based, not station-based (well, except for "Search", which does break user interface logic already - but I digress).

 

Perhaps I should add that I avoid touching the channel list for customizations. I simply do not know / cannot predict / do not understand what changes in the event of a satellite (re)scan.

Link to comment

That's how it works at the moment:

 

procedure tfrmEPG.BuildStations;
begin
 if assigned(frmchannellist) then begin
  //tvchannels is the treeview of the EPG window
   tvChannels.Items.beginupdate;
   tvChannels.Images:=frmchannellist.ilImages;
   tvChannels.Items.Assign(frmchannellist.tvChannels.items);
   tvChannels.Items.endupdate;
 end;
end;

 

Please assume that there is another treeview (tvFavourites) and complete it according to your needs... :(

Link to comment

procedure tfrmEPG.BuildStations;
...
begin
 if not Assigned(frmChannelList) then
   raise EInternalError.Create(SOhMyGod);

 //tvchannels is the treeview of the EPG window
  tvChannels.Items.BeginUpdate;
  try
    // First assign all channel data
    tvChannels.Images := frmChannelList.ilImages;
    tvChannels.Items.Assign(frmChanneLlist.tvChannels.Items);

    FavouritesList := GatherFavouritesForEpgView();
    try
      AppendCollection(FavouritesList, tvChannels.Items);
     finally
       FavouritesList.Free;
     end;
  finally
     tvChannels.Items.EndUpdate;
  end;
end;
end;

 

AppendCollection() is not exactly fun, but, hey... ;-) [Don't have Delphi anywhere nearby, sorry, so that's a bit of free hot air for you]

 

Unfortunately I have no idea what exactly is stored in .Items - presumably this is some kind of reference to EPG data? Copying channel item information around (GatherFavouritesForEpgView) therefore should be rather inexpensive.

 

BTW, may I suggest using http://www.gexperts.org/ (the code proofreader) for correct capitalization of identifier names? Sorry, I am somewhat anal^Hpicky when it comes to readability ;-)

Link to comment

Well, I was a bit curious how you would merge two tree views into one...

 

Unfortunately I have no idea what exactly is stored in .Items

 

Item.Data points to a TTuner record, containing the frequency, service ID, pids and stuff - what you see in the channellist window, edit tab. Sample code is available in the Service Center (Channel ShortCutter source).

 

AppendCollection() is not exactly fun

 

No, for sure. The favourites tree view and the channellist tree view are not compatible. The data property of the favourites points to an ID string (the one you can see in the favourites.ini file), which allows to retrieve the according entry in the channellist tree view by brute force searching ;) (something similar has to be done when assigning EPG data to a channel - searching up and down the channellist tree for the appropriate service ID).

 

On the other side, the channellist tree view hierarchy, unlike the favourites tree view, is very much fíxed to that root -> video/audio -> category -> channel scheme (hard coded).

 

So it wouldn't be fun to make ends meet. Maybe some masochistic coder comes along, who is willing to do the job... :( and to be true: This "favourites in EPG channels tree" feature doesn't make much sense to me.

Link to comment
Guest Lars_MQ

WellFavorites are the channels you like to watch, all other stuff is not so important.

 

Why not simply sort the channellist with your favored channels at the begining and the rest trailing?

 

lars

Link to comment

As mentioned before, I avoid touching the channel list for customizations. I simply do not know / cannot predict / do not understand what changes in the event of a satellite (re)scan.

 

Call me dumb, call me lazy - I'll be only too happy to agree ;-)

 

Besides, my Favourites configuration currently has

 

<a number of TV items>

--> Music folder

--> Spanish stations

--> News stations

--> Particularly peculiar stations ;-> (rhein main tv, for instance)

--> hdtv

--> Radio stations

 

which provides a rather different classification than would be sensible (my humble opinion) to try in the "raw" channel list with its list of providers etc.

 

For me, the channel list is the "technical" view, while my favourites configuration reflects my "preferred stations classified by content" view. In my opinion these two views are different and, particular, *useful* enough to justify supporting both. :-)

Link to comment

@griga:

 

This brute-force thing really makes my under-utilized CPU happy like a bunny. Sigh. But I recall earlier statements to this effect.

 

Anyway - how to map? Given the information you have provided, things should be relatively easy to implement?

 

Append a new child item named "[Favourites]" at the root level of the tree view. This will be the child item which will be the parent to all further entries. Now recurse(!) over the favourite data tree, depth first, creating child items on the EPG favourites tree on the fly. As a side-effect of the recursion you will visit each single item in the favourite data tree. The ID string apparently can be mapped to a PTuner value - now simply drop that PTuner value into the EPG view and you are done?

 

In the best case, all the existing "grab EPG data and display it" code will still work unchanged, because that code will not notice any difference between EPG data from the channel list and EPG data from the favourites list, as it is the PTuner entry that is used for displaying?

 

There is one, probably significant, problem though: The runtime performance of mapping the ID string to the PTuner entry. Now, THAT is something that someone might wish to fix at a slightly more fundamental level to make the application more maintainable as a whole. Refactoring can actually be rewarding, both as an investment into the future AND as a "hey, it's actually looking *right* this way".

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...