GNOME Bugzilla – Bug 328943
Add remember playtime support
Last modified: 2018-05-24 11:10:10 UTC
The following patch (based on James Livingston's) remember's the position of a podcast when it stopped/paused playing. It is based on how iTunes does it. It is useful since podcasts are very long, and one may pause them, close RB, etc, and then it is hard to remember were one left off. Other information:
Created attachment 58256 [details] [review] Patch against anoncvs
Notes I made on the original patch, which probably still apply: * It doesn't save the position when quitting, you have to stop or change what's playing first. * This should really be gone with the "song changed" signal, and a new "pre-change" signal (for doing things with the track that is ending).
Yeah, this patch applies cleanly, but isnt perfect. I do not think it is working right now. Somebody needs to do work on it.
*** Bug 377455 has been marked as a duplicate of this bug. ***
*** Bug 444290 has been marked as a duplicate of this bug. ***
Can somebody close this already? 3 requests... more than a year old.
just to let y'all know i've started porting the patch to current svn head. my plan is: 1. get the patch to apply and compile 2. fix the code to work 3. change the code in accordance with Doc's notes 4. further expand the functionality [1] is done [2] is almost done: - I have rb remember positions in all cases I can imagine - One call to ..._entry_changing is currently in a wrong place - it may be called when nothing is played or when the entry isn't actually changing. this doesn't break remembering position, but is a bad place for a signal (step [3]) - Somehow the timeline scroller breaks after remembering position - i have to investigate how that happens and fix before going further [3] I will then refactor the solution to use this new signal, which I would like to call "entry-changing" or something [4] after this is working for podcasts it can be reviewed and applyed, but I would like to expand it like: any seekable track can have "remember position" boolean property and if it is set - this functionality is enabled. podcast episodes get this flag set by default, for audiobooks or other tracks this will have to be set manually.
Created attachment 92817 [details] [review] updated and fixed patch against svn trunk this is the patch after phase [2] of my plan. please review and test.
Created attachment 92967 [details] [review] remeber position with new song-changing signal this is the same as my previous patch but implemented via new signal. NB: this patch doesn't work with crossfading backend (even with crossfading time set to 0). I can't figure out what goes wrong. Could someone please give me a hand here? Seeking to remembered position doesn't work in this case because the track isn't playing yet and later all hell breaks loose.
Created attachment 92969 [details] [review] remember and recall via signals, works with crossfading backend thanks to moch from #rhythmbox the patch now works with both backends. please review and consider for applying.
How can I remove my mail from this? I don't care to receive mails anymore
An object shouldn't connect to its own signals, it can just set the function pointer in the class structure to point to the functions it wants to use for those signals. That aside, until this functionality is used for something other than podcasts, I'd prefer to have the song_changing_cb and recall_position (which should be called recall_position_cb, by the way) in the podcast code. Adding new properties in the middle of the property enums is generally bad. I'm not sure the playing-song-changing signal is being emitted in the right place. It doesn't look right there.
Created attachment 94698 [details] [review] revised version of the patch 92969 I've implemented all suggestions by Jonathan except the place where playing-song-changing is being emitted. As a confirmation that the current place is wrong the patch breaks with crossfading backend again.
*** Bug 520405 has been marked as a duplicate of this bug. ***
*** Bug 588151 has been marked as a duplicate of this bug. ***
*** Bug 619834 has been marked as a duplicate of this bug. ***
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/rhythmbox/issues/127.