home
products
contribute
download
documentation
forum
Home
Forums
New posts
Search forums
What's new
New posts
All posts
Latest activity
Members
Registered members
Current visitors
Donate
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Search titles only
By:
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
MediaPortal 2
Plugin Development
Trakt.tv LiveTV scrobble Development help request.
Contact us
RSS
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="Alberto83" data-source="post: 1223272" data-attributes="member: 128278"><p>A little follow up.</p><p>I'm working on a little change on how TimeShiftContexes work on SlimTV, which also would be important to develop a fully working Trakt.TV scrobbler for LiveTV later.</p><p>The idea behind this is to transform the timeshiftcontexes list into a timeline for the current timeshift stream.</p><p>These are the features I've been able to code up to now, almost everything implemented under the SlimTVHanlder class.</p><ol> <li data-xf-list-type="ol">LiveTVMediaItem.TimeShiftContexes list as a timeline for the TimeShift. Every item in the list contains channel, tuneintime for the channel, program at the moment of tune with all its info (if any) and timeshift duration. This would make it easy to create a TimeLine Chapterlist for any timeshift player.<br /> </li> <li data-xf-list-type="ol">A Thread.Timer process that triggers when CurrentProgram (if any) ends to add the next program to the list of timeshift. It resets every time a new channel is tuned, and sets back to the newly next program begin time.<br /> </li> <li data-xf-list-type="ol">Distinctions between the timeline of the primary player and PIP player (all the logic was already there, I just took care not to break it).<br /> </li> <li data-xf-list-type="ol">The whole process happens when the channel is already tuned, so zapping shouldn't add any unnecessary garbage.<br /> </li> <li data-xf-list-type="ol">Since this implementation broke the chapter enumeration already implemented, I developed an IEqualityComparer class for the IChannel object to retrieve a list of unique channels using the Distinct() Method on the channellist. This way the current behavior of the Chapter selection is still working as before.</li> </ol><p>Next features ideas:</p><ol> <li data-xf-list-type="ol">I would like to implement a message system that notifies when a program changes that the trakt plugin (or any other plugin) can subscribe to and take proper actions.<br /> </li> <li data-xf-list-type="ol">Implement a garbage collector to remove all the programs not tunable anymore because the timeshift is already past their seek point.<br /> </li> <li data-xf-list-type="ol">Create a method seektoposition(positionInTimeshift) to switch back and forth the timeline and use programs as chapters. (I couldn't find it, but I haven't searched too much yet, focusing on bug bashing now)</li> </ol><p>With all these informations, a LiveTV Scrobbler for trakt TV would perform great, and take pretty precise decisions whether to scrobble a program or not based on what's inside the LiveTVMediaItem.TimeshiftContexes list. For example, it could decide not to scrobble a program because its tune time is too far away from the program start time, or because its timeshiftduration is not enough to consider the whole program as seen. Values could be manually changed in trakt plugin settings by users. Since I have the current timeline for the timeshift, I could also scrobble the current watching program, that might be different from the current program based on its properties. And zapping wouldn't be a problem anyways.</p><p></p><p>What do you think? Could this be a problem to other features?</p><p></p><p>And now, a little doubt that is puzzling me since I started this change: I'm currently developing all this client side, on the SlimTVClient. However, streams are "server side" objects. Would it make sense to do all this server side and then send it to the clients? This would make sense especially if clients could share streams, something that will be implemented in next TVE revisions, right?</p></blockquote><p></p>
[QUOTE="Alberto83, post: 1223272, member: 128278"] A little follow up. I'm working on a little change on how TimeShiftContexes work on SlimTV, which also would be important to develop a fully working Trakt.TV scrobbler for LiveTV later. The idea behind this is to transform the timeshiftcontexes list into a timeline for the current timeshift stream. These are the features I've been able to code up to now, almost everything implemented under the SlimTVHanlder class. [LIST=1] [*]LiveTVMediaItem.TimeShiftContexes list as a timeline for the TimeShift. Every item in the list contains channel, tuneintime for the channel, program at the moment of tune with all its info (if any) and timeshift duration. This would make it easy to create a TimeLine Chapterlist for any timeshift player. [*]A Thread.Timer process that triggers when CurrentProgram (if any) ends to add the next program to the list of timeshift. It resets every time a new channel is tuned, and sets back to the newly next program begin time. [*]Distinctions between the timeline of the primary player and PIP player (all the logic was already there, I just took care not to break it). [*]The whole process happens when the channel is already tuned, so zapping shouldn't add any unnecessary garbage. [*]Since this implementation broke the chapter enumeration already implemented, I developed an IEqualityComparer class for the IChannel object to retrieve a list of unique channels using the Distinct() Method on the channellist. This way the current behavior of the Chapter selection is still working as before. [/LIST] Next features ideas: [LIST=1] [*]I would like to implement a message system that notifies when a program changes that the trakt plugin (or any other plugin) can subscribe to and take proper actions. [*]Implement a garbage collector to remove all the programs not tunable anymore because the timeshift is already past their seek point. [*]Create a method seektoposition(positionInTimeshift) to switch back and forth the timeline and use programs as chapters. (I couldn't find it, but I haven't searched too much yet, focusing on bug bashing now) [/LIST] With all these informations, a LiveTV Scrobbler for trakt TV would perform great, and take pretty precise decisions whether to scrobble a program or not based on what's inside the LiveTVMediaItem.TimeshiftContexes list. For example, it could decide not to scrobble a program because its tune time is too far away from the program start time, or because its timeshiftduration is not enough to consider the whole program as seen. Values could be manually changed in trakt plugin settings by users. Since I have the current timeline for the timeshift, I could also scrobble the current watching program, that might be different from the current program based on its properties. And zapping wouldn't be a problem anyways. What do you think? Could this be a problem to other features? And now, a little doubt that is puzzling me since I started this change: I'm currently developing all this client side, on the SlimTVClient. However, streams are "server side" objects. Would it make sense to do all this server side and then send it to the clients? This would make sense especially if clients could share streams, something that will be implemented in next TVE revisions, right? [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
MediaPortal 2
Plugin Development
Trakt.tv LiveTV scrobble Development help request.
Contact us
RSS
Top
Bottom