:: #mythtv-theming

Daily chat history

Current users (17):

abqjp, anykey_, Beirdo, Captain_Murdoch, gbee, gbutters, gregl, jpabq, jpabq-, k-man, mag0o, mrand, MythLogBot, paul-h, rooaus, sphery, wagnerrp
Monday, May 31st, 2010, 00:03 UTC
[00:03:28] iamlindoro (iamlindoro! has quit (Changing host)
[00:03:42] iamlindoro (iamlindoro!~iamlindor@unaffiliated/iamlindoro) has joined #mythtv-theming
[00:03:42] Mode for #mythtv-theming by ChanServ!ChanServ@services. : +v iamlindoro
[02:02:24] iamlindoro: Behold the glory of the new generic metadata system!
[02:02:33] iamlindoro: (That's choosing from a list of search results)
[02:04:30] mag0o: Ooooo
[02:04:52] iamlindoro: Will also allow all sorts of new metadata, picking which artwork you want to download, etc.
[02:05:11] mag0o: nice
[02:05:45] iamlindoro: Plus the core reason for writing it, that it's a metadata system that any plugin can use with about ~25 lines of code
[02:06:13] iamlindoro: Now I need someone to write a compliant grabber for MythGame ;)
[03:06:03] mrand: iamlindoro: cool! Don't know it is strictly necessary, but can you sort the results by release date?
[03:06:26] iamlindoro: You could write a patch to do anything, but that's outside the scope of this work
[03:06:52] iamlindoro: And adding more fiddly and sort options for a results screen does not sound like the kind of patch I would apply, to be honest
[03:07:28] iamlindoro: ie, it's the kind of small, confusing knob that I am desperate to get rid of in Myth
[03:07:43] iamlindoro: because the results already come in in order of relevance
[03:07:53] iamlindoro: ie, closest match
[03:07:54] mrand: iamlindoro: ah.
[03:10:37] mrand: I understand what you're saying though. Each little knob and such makes perfect sense on its own, but at some point, a more simple interface without all the fluff might be the way to go (witness the Chrome browser).
[03:12:16] iamlindoro: Well I just figure it's a video metadata browser, not the ls command ;)
[03:12:54] mrand: heh. I use ls -ltra
[03:57:06] brfransen (brfransen! has quit (Quit: brfransen)
[06:00:08] abqjp (abqjp! has quit (Quit: abqjp)
[12:07:12] rooaus (rooaus! has quit (Ping timeout: 260 seconds)
[12:21:57] rooaus (rooaus! has joined #mythtv-theming
[13:00:05] DjMadness (DjMadness! has joined #mythtv-theming
[13:00:05] DjMadness (DjMadness!~quassel@pdpc/supporter/student/DjMadness) has joined #mythtv-theming
[13:00:05] DjMadness (DjMadness! has quit (Changing host)
[13:28:30] iamlindoro: stuartm, 7 files changed, 502 insertions(+), 820 deletions(-)
[13:28:42] iamlindoro: Heh, not too bad for all that fancy new functionality ;)
[14:01:13] abqjp (abqjp! has joined #mythtv-theming
[14:03:12] brfransen (brfransen! has joined #mythtv-theming
[14:38:45] brfransen (brfransen! has quit (Quit: brfransen)
[14:51:04] psipsi (psipsi! has quit (Ping timeout: 240 seconds)
[14:56:49] stuartm: nice
[15:03:56] iamlindoro: stuartm, in case you are interested in looking at the working product:
[15:06:13] stuartm: if you are interested in Const correctness all those Get methods can be const
[15:07:34] iamlindoro: I'm interested in all sorts of correctness, will do :)
[15:10:08] stuartm: QString GetTitle() const { return m_title; };
[15:11:16] stuartm: reinforces the requirement that GetTitle() won't modify the class in any way, it's read-only
[15:11:51] iamlindoro: What about functions that produce containers?
[15:12:58] stuartm: anything that modifies a member variable cannot be const, but if it just constructs a throwaway container/variable then it can be const
[15:13:06] iamlindoro: cool, thanks
[15:14:32] stuartm: const correctness is really just about documentation as it is anything else, it's a way of explicitly declaring that the method should not change the class, so those using the class know that it's safe and those patching it know that they should change that read-only behaviour
[15:52:28] wagnerrp: iamlindoro: so accessing these commands, would i ever need to call the grabber scripts directly? or is everything done over mythproto?
[16:37:34] iamlindoro: wagnerrp, It's not done over myth proto (though I might add a limited, synchronous protocol method) because it goes into the queue and comes back as an event, so the lookup object itself has a data value so that when it comes back in order to reassociate it with the item in the plugin/screen-- I don't think I can pass that via the protocol so right now it's just a thread that the plugin or screen would start, passa list of queries
[16:37:34] iamlindoro: to, and when and if responses come back, do what it wants with the metadata
[16:38:05] wagnerrp: queue?
[16:38:31] wagnerrp: so this is all done by the frontend currently, and would need to be duplicate in its entirety in the bindings
[16:38:43] wagnerrp: (as with the old grabbers)
[16:38:51] iamlindoro: yes, the metadata lookup thread is a queue, and it just works through the queries as fast as it can, and passes back a populate MetadataLookup object
[16:38:58] iamlindoro: er populated
[16:39:02] wagnerrp: ah, ok
[16:39:31] wagnerrp: you just define a callback to be run when completed, and throw it into the queue
[16:40:30] iamlindoro: It's generic in that it contains an enum of types (video, music, game currently) and the metadatalookup object is a generic container that can contain all the relevant information types for each, but unless I can come up with a better way of sending off a query object, getting it back as an event, and reassociating it with a local object/video/song/etc., I don't see how to pass it over the protocol
[16:41:07] iamlindoro: Sort of, yeah, you take the data value of the object being looked up, and set the lookup data to that. Then when it comes back, the plugin takes that data value, finds the relevant item, and updates it
[16:41:45] iamlindoro: In the case of MythVideo, that's the MythGenericTree node of the item being looked up
[16:42:16] iamlindoro: which would also be the case for MythMusic and MythGame, since they use the same, and theoretically for MythNetvision, though I can't see the purpose of a grabber for that
[16:42:48] iamlindoro: For recordings it would probably be the programinfo object
[16:44:40] iamlindoro: the lookup thread also has an adjustable auto-mode, so you can tell it how aggressive to be with name matching, set auto mode to true, and it will find and update everything it can within the threshhold of name matching permissiveness without user input
[16:45:19] iamlindoro: So a user could set permissiveness to "dirty slut" and get all of mythvideo done in one step, though perhaps with some error, or set it to "nun" and get most of MythVideo done correctly, and have to pick off some stragglers manually
[16:50:56] iamlindoro: wagnerrp, I can probably come up with a way to offer a slightly more limited version via the protocol, but then the unique ID would probably need to be a string or an integer-- I suspect that would be fine for the python bindings, but of less use to the plugins themselves
[16:51:40] iamlindoro: the binding version also probably wouldn't have the queue system, it would probably need to be synchronous
[16:51:54] wagnerrp: ive got no trouble reproducing it all in the bindings, i mean they already handle external function calls for the existing grabbers
[16:52:24] wagnerrp: just need to know the behavior that has to be reproduced
[16:52:42] wagnerrp: and i could make such a queue without a whole lot of effort
[16:52:52] iamlindoro: I'm sorry, I meant to say the protocol system, not binding system
[16:53:16] iamlindoro: s/system/version/
[16:55:25] iamlindoro: Right now it's a couple dozen lines to use the new system in any plugin:
[16:55:48] iamlindoro: there's another few lines to listen for the return event, but the query itself is dead easy
[17:00:43] natanojl (natanojl! has joined #mythtv-theming
[17:27:52] stuartm is now known as gbee
[17:35:07] DjMadness (DjMadness!~quassel@pdpc/supporter/student/DjMadness) has quit (Read error: Connection reset by peer)
[17:40:16] DjMadness (DjMadness! has joined #mythtv-theming
[17:40:16] DjMadness (DjMadness!~quassel@pdpc/supporter/student/DjMadness) has joined #mythtv-theming
[17:40:16] DjMadness (DjMadness! has quit (Changing host)
[18:23:25] DjMadness (DjMadness!~quassel@pdpc/supporter/student/DjMadness) has quit (Ping timeout: 260 seconds)
[18:24:41] DjMadness (DjMadness!~quassel@pdpc/supporter/student/DjMadness) has joined #mythtv-theming
[20:21:58] DjMadness (DjMadness!~quassel@pdpc/supporter/student/DjMadness) has quit (Ping timeout: 264 seconds)
[20:44:51] justinh (justinh! has joined #mythtv-theming
[20:50:48] DjMadness (DjMadness! has joined #mythtv-theming
[20:50:48] DjMadness (DjMadness!~quassel@pdpc/supporter/student/DjMadness) has joined #mythtv-theming
[20:50:48] DjMadness (DjMadness! has quit (Changing host)
[21:52:21] natanojl (natanojl! has quit (Quit: Quit)

IRC Logs collected by BeirdoBot.
Please use the above link to report any bugs.