Merge lp:~loneowais/ubuntu/precise/rhythmbox/remember-the-rhythm into lp:ubuntu/precise/rhythmbox

Proposed by Owais Lone
Status: Work in progress
Proposed branch: lp:~loneowais/ubuntu/precise/rhythmbox/remember-the-rhythm
Merge into: lp:ubuntu/precise/rhythmbox
Diff against target: 700 lines (+671/-0)
5 files modified
data/org.gnome.rhythmbox.gschema.xml (+23/-0)
plugins/remember-the-rhythm/Makefile.am (+13/-0)
plugins/remember-the-rhythm/Makefile.in (+503/-0)
plugins/remember-the-rhythm/remember-the-rhythm.plugin.in (+9/-0)
plugins/remember-the-rhythm/remember-the-rhythm.py (+123/-0)
To merge this branch: bzr merge lp:~loneowais/ubuntu/precise/rhythmbox/remember-the-rhythm
Reviewer Review Type Date Requested Status
Sebastien Bacher Needs Information
Ubuntu branches Pending
Review via email: mp+82801@code.launchpad.net

Description of the change

Added Remember-the-rhythm plugin.

I'm upstream for this
Upstream link: https://github.com/owais/remember-the-rhythm

To post a comment you must log in.
Revision history for this message
Owais Lone (loneowais) wrote :
Revision history for this message
Sebastien Bacher (seb128) wrote :

Thanks Owais for your work, that seems a nice addition to rhythmbox. Did you consider trying to get it added to the rhythmbox upstream source? If not, why? Do you think it should be added to the rhythmbox package in Ubuntu or as a new source if it doesn't get added to the rhythmbox upstream source?

review: Needs Information
Revision history for this message
Owais Lone (loneowais) wrote :

Hi Sebastien,

I tried with a merge request on lp:rhythmbox but it was rejected with the reason that I should use upstream bugzilla. To be honest, I was too lazy to familiarize myself with upstream workflow and I don't really care if this lands in other distros or not. In Ubuntu, I would like it to ship with the rhythmbox or rhythmbox-plugins package.

If it can make life easier for Ubuntu maintainers, I can try to get it merged upstream. Let me know.

Thanks!

Revision history for this message
Sebastien Bacher (seb128) wrote :

Right, upstream doesn't use launchpad, the right way would be to open a bug: https://bugzilla.gnome.org/enter_bug.cgi?product=rhythmbox
Basically explaining what your code is doing with a pointer to your git

You can also try to connect to irc.gnome.org #rhythmbox and ask there if you do IRC

It would make sense to me to try to get that upstream since it would make easier to have it maintained and in sync with rhythmbox updates this way. That seems something we are interested in getting in Ubuntu in any case so keep the good work there!

Revision history for this message
Owais Lone (loneowais) wrote :
Revision history for this message
Sebastien Bacher (seb128) wrote :

Thanks, I will let upstream the time to comment and look again at your work next week

Revision history for this message
Martin Pitt (pitti) wrote :

This is now (and should) being handled in the upstream bug, so I set this as "work in progress" for now as we don't (currently) want to upload this directly to Ubuntu. If upstream rejects it, please change back to "Needs Review" so that we can re-consider how to package this. Thanks!

195. By Owais Lone

Merge in latest changes and updated remember-the-rhythm

Unmerged revisions

195. By Owais Lone

Merge in latest changes and updated remember-the-rhythm

194. By Owais Lone

Added remember-the-rhythm plugin

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'data/org.gnome.rhythmbox.gschema.xml'
--- data/org.gnome.rhythmbox.gschema.xml 2012-01-10 17:05:11 +0000
+++ data/org.gnome.rhythmbox.gschema.xml 2012-01-15 09:54:25 +0000
@@ -419,4 +419,27 @@
419 <schema id="org.gnome.rhythmbox.plugins.grilo" path="/org/gnome/rhythmbox/plugins/grilo/">419 <schema id="org.gnome.rhythmbox.plugins.grilo" path="/org/gnome/rhythmbox/plugins/grilo/">
420 <child name="source" schema="org.gnome.rhythmbox.source"/>420 <child name="source" schema="org.gnome.rhythmbox.source"/>
421 </schema>421 </schema>
422
423 <schema id="org.gnome.rhythmbox.plugins.remember-the-rhythm" path="/org/gnome/rhythmbox/plugins/remember-the-rhythm/">
424 <key type="s" name="last-entry-location">
425 <default>''</default>
426 <summary>Location of the last playing entry</summary>
427 <description>This entry will be automatically played by rhythmbox upon startup.</description>
428 </key>
429 <key type="u" name="playback-time">
430 <default>0</default>
431 <summary>Playback time of the last playing entry</summary>
432 <description>Rhythmbox will resume playback from this second.</description>
433 </key>
434 <key type="aas" name="browser-values">
435 <default>[]</default>
436 <summary>Genre/Artist/Album</summary>
437 <description>Remembers the filters in RBLibraryBrowser and sets on start up.</description>
438 </key>
439 <key type="s" name="playlist">
440 <default>''</default>
441 <summary>Last playlist</summary>
442 <description>Name of the last playing playlist if any.</description>
443 </key>
444 </schema>
422</schemalist>445</schemalist>
423446
=== added directory 'plugins/remember-the-rhythm'
=== added file 'plugins/remember-the-rhythm/Makefile.am'
--- plugins/remember-the-rhythm/Makefile.am 1970-01-01 00:00:00 +0000
+++ plugins/remember-the-rhythm/Makefile.am 2012-01-15 09:54:25 +0000
@@ -0,0 +1,13 @@
1# sample python plugin
2plugindir = $(PLUGINDIR)/remember-the-rhythm
3#plugin_PYTHON = remember-the-rhythm.py
4
5plugin_in_files = remember-the-rhythm.plugin.in
6%.plugin: %.plugin.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache
7
8#plugin_DATA = $(plugin_in_files:.plugin.in=.plugin)
9
10EXTRA_DIST = $(plugin_in_files) remember-the-rhythm.py
11
12CLEANFILES = $(plugin_DATA)
13DISTCLEANFILES = $(plugin_DATA)
014
=== added file 'plugins/remember-the-rhythm/Makefile.in'
--- plugins/remember-the-rhythm/Makefile.in 1970-01-01 00:00:00 +0000
+++ plugins/remember-the-rhythm/Makefile.in 2012-01-15 09:54:25 +0000
@@ -0,0 +1,503 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17VPATH = @srcdir@
18pkgdatadir = $(datadir)/@PACKAGE@
19pkgincludedir = $(includedir)/@PACKAGE@
20pkglibdir = $(libdir)/@PACKAGE@
21pkglibexecdir = $(libexecdir)/@PACKAGE@
22am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
23install_sh_DATA = $(install_sh) -c -m 644
24install_sh_PROGRAM = $(install_sh) -c
25install_sh_SCRIPT = $(install_sh) -c
26INSTALL_HEADER = $(INSTALL_DATA)
27transform = $(program_transform_name)
28NORMAL_INSTALL = :
29PRE_INSTALL = :
30POST_INSTALL = :
31NORMAL_UNINSTALL = :
32PRE_UNINSTALL = :
33POST_UNINSTALL = :
34build_triplet = @build@
35host_triplet = @host@
36subdir = plugins/remember-the-rhythm
37DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
38ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
39am__aclocal_m4_deps = $(top_srcdir)/macros/gnome-doc-utils.m4 \
40 $(top_srcdir)/macros/gsettings.m4 \
41 $(top_srcdir)/macros/gtk-doc.m4 \
42 $(top_srcdir)/macros/intltool.m4 \
43 $(top_srcdir)/macros/libtool.m4 \
44 $(top_srcdir)/macros/ltoptions.m4 \
45 $(top_srcdir)/macros/ltsugar.m4 \
46 $(top_srcdir)/macros/ltversion.m4 \
47 $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac
48am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
49 $(ACLOCAL_M4)
50mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
51CONFIG_HEADER = $(top_builddir)/config.h
52CONFIG_CLEAN_FILES =
53CONFIG_CLEAN_VPATH_FILES =
54AM_V_GEN = $(am__v_GEN_$(V))
55am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
56am__v_GEN_0 = @echo " GEN " $@;
57AM_V_at = $(am__v_at_$(V))
58am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
59am__v_at_0 = @
60SOURCES =
61DIST_SOURCES =
62DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
63ACLOCAL = @ACLOCAL@
64ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
65ALL_LINGUAS = @ALL_LINGUAS@
66AMTAR = @AMTAR@
67AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
68AR = @AR@
69AUTOCONF = @AUTOCONF@
70AUTOHEADER = @AUTOHEADER@
71AUTOMAKE = @AUTOMAKE@
72AVAHI_CFLAGS = @AVAHI_CFLAGS@
73AVAHI_LIBS = @AVAHI_LIBS@
74AWK = @AWK@
75CATALOGS = @CATALOGS@
76CATOBJEXT = @CATOBJEXT@
77CC = @CC@
78CCDEPMODE = @CCDEPMODE@
79CFLAGS = @CFLAGS@
80CHECK_CFLAGS = @CHECK_CFLAGS@
81CHECK_LIBS = @CHECK_LIBS@
82CPP = @CPP@
83CPPFLAGS = @CPPFLAGS@
84CYGPATH_W = @CYGPATH_W@
85DATADIRNAME = @DATADIRNAME@
86DBUS_CFLAGS = @DBUS_CFLAGS@
87DBUS_GLIB_BIN = @DBUS_GLIB_BIN@
88DBUS_LIBS = @DBUS_LIBS@
89DEFS = @DEFS@
90DEPDIR = @DEPDIR@
91DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
92DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
93DLLTOOL = @DLLTOOL@
94DMAPSHARING_CFLAGS = @DMAPSHARING_CFLAGS@
95DMAPSHARING_LIBS = @DMAPSHARING_LIBS@
96DOC_USER_FORMATS = @DOC_USER_FORMATS@
97DSYMUTIL = @DSYMUTIL@
98DUMPBIN = @DUMPBIN@
99ECHO_C = @ECHO_C@
100ECHO_N = @ECHO_N@
101ECHO_T = @ECHO_T@
102EGREP = @EGREP@
103EXEEXT = @EXEEXT@
104FGREP = @FGREP@
105GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
106GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
107GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
108GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
109GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
110GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
111GMOFILES = @GMOFILES@
112GMSGFMT = @GMSGFMT@
113GNOME_KEYRING_CFLAGS = @GNOME_KEYRING_CFLAGS@
114GNOME_KEYRING_LIBS = @GNOME_KEYRING_LIBS@
115GREP = @GREP@
116GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
117GSTCDDA_CFLAGS = @GSTCDDA_CFLAGS@
118GSTCDDA_LIBS = @GSTCDDA_LIBS@
119GSTREAMER_0_10_CFLAGS = @GSTREAMER_0_10_CFLAGS@
120GSTREAMER_0_10_LIBS = @GSTREAMER_0_10_LIBS@
121GTKDOC_CHECK = @GTKDOC_CHECK@
122GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
123GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
124GTKDOC_MKPDF = @GTKDOC_MKPDF@
125GTKDOC_REBASE = @GTKDOC_REBASE@
126GUDEV_CFLAGS = @GUDEV_CFLAGS@
127GUDEV_LIBS = @GUDEV_LIBS@
128HAL_CFLAGS = @HAL_CFLAGS@
129HAL_LIBS = @HAL_LIBS@
130HAVE_LIBBRASERO_MEDIA = @HAVE_LIBBRASERO_MEDIA@
131HELP_DIR = @HELP_DIR@
132HTML_DIR = @HTML_DIR@
133INSTALL = @INSTALL@
134INSTALL_DATA = @INSTALL_DATA@
135INSTALL_PROGRAM = @INSTALL_PROGRAM@
136INSTALL_SCRIPT = @INSTALL_SCRIPT@
137INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
138INSTOBJEXT = @INSTOBJEXT@
139INTLLIBS = @INTLLIBS@
140INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
141INTLTOOL_MERGE = @INTLTOOL_MERGE@
142INTLTOOL_PERL = @INTLTOOL_PERL@
143INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
144INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
145INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
146INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
147INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
148INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
149INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
150INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
151INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
152IPOD_CFLAGS = @IPOD_CFLAGS@
153IPOD_LIBS = @IPOD_LIBS@
154JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
155JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
156LD = @LD@
157LDFLAGS = @LDFLAGS@
158LIBBRASERO_MEDIA_CFLAGS = @LIBBRASERO_MEDIA_CFLAGS@
159LIBBRASERO_MEDIA_LIBS = @LIBBRASERO_MEDIA_LIBS@
160LIBOBJS = @LIBOBJS@
161LIBS = @LIBS@
162LIBTOOL = @LIBTOOL@
163LIPO = @LIPO@
164LN_S = @LN_S@
165LTLIBOBJS = @LTLIBOBJS@
166MAINT = @MAINT@
167MAKEINFO = @MAKEINFO@
168MANIFEST_TOOL = @MANIFEST_TOOL@
169MKDIR_P = @MKDIR_P@
170MKINSTALLDIRS = @MKINSTALLDIRS@
171MOZILLA_PLUGINDIR = @MOZILLA_PLUGINDIR@
172MSGFMT = @MSGFMT@
173MSGFMT_OPTS = @MSGFMT_OPTS@
174MSGMERGE = @MSGMERGE@
175MTP_CFLAGS = @MTP_CFLAGS@
176MTP_LIBS = @MTP_LIBS@
177MUSICBRAINZ3_CFLAGS = @MUSICBRAINZ3_CFLAGS@
178MUSICBRAINZ3_LIBS = @MUSICBRAINZ3_LIBS@
179NM = @NM@
180NMEDIT = @NMEDIT@
181NOTIFY_CFLAGS = @NOTIFY_CFLAGS@
182NOTIFY_LIBS = @NOTIFY_LIBS@
183NO_STRICT_ALIASING_CFLAGS = @NO_STRICT_ALIASING_CFLAGS@
184OBJDUMP = @OBJDUMP@
185OBJEXT = @OBJEXT@
186OMF_DIR = @OMF_DIR@
187OTOOL = @OTOOL@
188OTOOL64 = @OTOOL64@
189PACKAGE = @PACKAGE@
190PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
191PACKAGE_NAME = @PACKAGE_NAME@
192PACKAGE_STRING = @PACKAGE_STRING@
193PACKAGE_TARNAME = @PACKAGE_TARNAME@
194PACKAGE_URL = @PACKAGE_URL@
195PACKAGE_VERSION = @PACKAGE_VERSION@
196PATH_SEPARATOR = @PATH_SEPARATOR@
197PKG_CONFIG = @PKG_CONFIG@
198PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
199PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
200PLUGINDATADIR = @PLUGINDATADIR@
201PLUGINDIR = @PLUGINDIR@
202PLUGIN_LIBTOOL_FLAGS = @PLUGIN_LIBTOOL_FLAGS@
203POFILES = @POFILES@
204POSUB = @POSUB@
205PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
206PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
207PYTHON = @PYTHON@
208PYTHON_CFLAGS = @PYTHON_CFLAGS@
209PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
210PYTHON_LIBS = @PYTHON_LIBS@
211PYTHON_PLATFORM = @PYTHON_PLATFORM@
212PYTHON_PREFIX = @PYTHON_PREFIX@
213PYTHON_VERSION = @PYTHON_VERSION@
214RANLIB = @RANLIB@
215RB_CLIENT_CFLAGS = @RB_CLIENT_CFLAGS@
216RB_CLIENT_LIBS = @RB_CLIENT_LIBS@
217RHYTHMBOX_CFLAGS = @RHYTHMBOX_CFLAGS@
218RHYTHMBOX_CFLAGS_NOWARN = @RHYTHMBOX_CFLAGS_NOWARN@
219RHYTHMBOX_CORE_AGE = @RHYTHMBOX_CORE_AGE@
220RHYTHMBOX_CORE_CURRENT = @RHYTHMBOX_CORE_CURRENT@
221RHYTHMBOX_CORE_REVISION = @RHYTHMBOX_CORE_REVISION@
222RHYTHMBOX_LIBS = @RHYTHMBOX_LIBS@
223ROOT_UNINSTALLED_DIR = @ROOT_UNINSTALLED_DIR@
224SED = @SED@
225SET_MAKE = @SET_MAKE@
226SHELL = @SHELL@
227STRIP = @STRIP@
228TOTEM_PLPARSER_CFLAGS = @TOTEM_PLPARSER_CFLAGS@
229TOTEM_PLPARSER_LIBS = @TOTEM_PLPARSER_LIBS@
230USE_NLS = @USE_NLS@
231VALAC = @VALAC@
232VAPIDIR = @VAPIDIR@
233VAPIGEN = @VAPIGEN@
234VERSION = @VERSION@
235WARN_CFLAGS = @WARN_CFLAGS@
236WEBKIT_CFLAGS = @WEBKIT_CFLAGS@
237WEBKIT_LIBS = @WEBKIT_LIBS@
238WNOERROR_CFLAGS = @WNOERROR_CFLAGS@
239XGETTEXT = @XGETTEXT@
240XMKMF = @XMKMF@
241X_CFLAGS = @X_CFLAGS@
242X_EXTRA_LIBS = @X_EXTRA_LIBS@
243X_LIBS = @X_LIBS@
244X_PRE_LIBS = @X_PRE_LIBS@
245abs_builddir = @abs_builddir@
246abs_srcdir = @abs_srcdir@
247abs_top_builddir = @abs_top_builddir@
248abs_top_srcdir = @abs_top_srcdir@
249ac_ct_AR = @ac_ct_AR@
250ac_ct_CC = @ac_ct_CC@
251ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
252am__include = @am__include@
253am__leading_dot = @am__leading_dot@
254am__quote = @am__quote@
255am__tar = @am__tar@
256am__untar = @am__untar@
257bindir = @bindir@
258build = @build@
259build_alias = @build_alias@
260build_cpu = @build_cpu@
261build_os = @build_os@
262build_vendor = @build_vendor@
263builddir = @builddir@
264datadir = @datadir@
265datarootdir = @datarootdir@
266docdir = @docdir@
267dvidir = @dvidir@
268exec_prefix = @exec_prefix@
269gsettingsschemadir = @gsettingsschemadir@
270host = @host@
271host_alias = @host_alias@
272host_cpu = @host_cpu@
273host_os = @host_os@
274host_vendor = @host_vendor@
275htmldir = @htmldir@
276includedir = @includedir@
277infodir = @infodir@
278install_sh = @install_sh@
279libdir = @libdir@
280libexecdir = @libexecdir@
281localedir = @localedir@
282localstatedir = @localstatedir@
283mandir = @mandir@
284mkdir_p = @mkdir_p@
285oldincludedir = @oldincludedir@
286pdfdir = @pdfdir@
287pkgpyexecdir = @pkgpyexecdir@
288pkgpythondir = @pkgpythondir@
289prefix = @prefix@
290program_transform_name = @program_transform_name@
291psdir = @psdir@
292pyexecdir = @pyexecdir@
293pyoverridesdir = @pyoverridesdir@
294pythondir = @pythondir@
295sbindir = @sbindir@
296sharedstatedir = @sharedstatedir@
297srcdir = @srcdir@
298sysconfdir = @sysconfdir@
299target_alias = @target_alias@
300top_build_prefix = @top_build_prefix@
301top_builddir = @top_builddir@
302top_srcdir = @top_srcdir@
303
304# Remember The Rhythm plugin
305plugindir = $(PLUGINDIR)/remember-the-rhythm
306#plugin_PYTHON = remember-the-rhythm.py
307plugin_in_files = remember-the-rhythm.plugin.in
308
309#plugin_DATA = $(plugin_in_files:.plugin.in=.plugin)
310EXTRA_DIST = $(plugin_in_files) remember-the-rhythm.py
311CLEANFILES = $(plugin_DATA)
312DISTCLEANFILES = $(plugin_DATA)
313all: all-am
314
315.SUFFIXES:
316$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
317 @for dep in $?; do \
318 case '$(am__configure_deps)' in \
319 *$$dep*) \
320 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
321 && { if test -f $@; then exit 0; else break; fi; }; \
322 exit 1;; \
323 esac; \
324 done; \
325 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/remember-the-rhythm/Makefile'; \
326 $(am__cd) $(top_srcdir) && \
327 $(AUTOMAKE) --gnu plugins/remember-the-rhythm/Makefile
328.PRECIOUS: Makefile
329Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
330 @case '$?' in \
331 *config.status*) \
332 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
333 *) \
334 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
335 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
336 esac;
337
338$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
339 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
340
341$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
342 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
343$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
344 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
345$(am__aclocal_m4_deps):
346
347mostlyclean-libtool:
348 -rm -f *.lo
349
350clean-libtool:
351 -rm -rf .libs _libs
352tags: TAGS
353TAGS:
354
355ctags: CTAGS
356CTAGS:
357
358
359distdir: $(DISTFILES)
360 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
361 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
362 list='$(DISTFILES)'; \
363 dist_files=`for file in $$list; do echo $$file; done | \
364 sed -e "s|^$$srcdirstrip/||;t" \
365 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
366 case $$dist_files in \
367 */*) $(MKDIR_P) `echo "$$dist_files" | \
368 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
369 sort -u` ;; \
370 esac; \
371 for file in $$dist_files; do \
372 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
373 if test -d $$d/$$file; then \
374 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
375 if test -d "$(distdir)/$$file"; then \
376 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
377 fi; \
378 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
379 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
380 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
381 fi; \
382 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
383 else \
384 test -f "$(distdir)/$$file" \
385 || cp -p $$d/$$file "$(distdir)/$$file" \
386 || exit 1; \
387 fi; \
388 done
389check-am: all-am
390check: check-am
391all-am: Makefile
392installdirs:
393install: install-am
394install-exec: install-exec-am
395install-data: install-data-am
396uninstall: uninstall-am
397
398install-am: all-am
399 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
400
401installcheck: installcheck-am
402install-strip:
403 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
404 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
405 `test -z '$(STRIP)' || \
406 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
407mostlyclean-generic:
408
409clean-generic:
410 -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
411
412distclean-generic:
413 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
414 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
415 -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
416
417maintainer-clean-generic:
418 @echo "This command is intended for maintainers to use"
419 @echo "it deletes files that may require special tools to rebuild."
420clean: clean-am
421
422clean-am: clean-generic clean-libtool mostlyclean-am
423
424distclean: distclean-am
425 -rm -f Makefile
426distclean-am: clean-am distclean-generic
427
428dvi: dvi-am
429
430dvi-am:
431
432html: html-am
433
434html-am:
435
436info: info-am
437
438info-am:
439
440install-data-am:
441
442install-dvi: install-dvi-am
443
444install-dvi-am:
445
446install-exec-am:
447
448install-html: install-html-am
449
450install-html-am:
451
452install-info: install-info-am
453
454install-info-am:
455
456install-man:
457
458install-pdf: install-pdf-am
459
460install-pdf-am:
461
462install-ps: install-ps-am
463
464install-ps-am:
465
466installcheck-am:
467
468maintainer-clean: maintainer-clean-am
469 -rm -f Makefile
470maintainer-clean-am: distclean-am maintainer-clean-generic
471
472mostlyclean: mostlyclean-am
473
474mostlyclean-am: mostlyclean-generic mostlyclean-libtool
475
476pdf: pdf-am
477
478pdf-am:
479
480ps: ps-am
481
482ps-am:
483
484uninstall-am:
485
486.MAKE: install-am install-strip
487
488.PHONY: all all-am check check-am clean clean-generic clean-libtool \
489 distclean distclean-generic distclean-libtool distdir dvi \
490 dvi-am html html-am info info-am install install-am \
491 install-data install-data-am install-dvi install-dvi-am \
492 install-exec install-exec-am install-html install-html-am \
493 install-info install-info-am install-man install-pdf \
494 install-pdf-am install-ps install-ps-am install-strip \
495 installcheck installcheck-am installdirs maintainer-clean \
496 maintainer-clean-generic mostlyclean mostlyclean-generic \
497 mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
498
499%.plugin: %.plugin.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache
500
501# Tell versions [3.59,3.63) of GNU make to not export all variables.
502# Otherwise a system limit (for SysV at least) may be exceeded.
503.NOEXPORT:
0504
=== added file 'plugins/remember-the-rhythm/remember-the-rhythm.plugin.in'
--- plugins/remember-the-rhythm/remember-the-rhythm.plugin.in 1970-01-01 00:00:00 +0000
+++ plugins/remember-the-rhythm/remember-the-rhythm.plugin.in 2012-01-15 09:54:25 +0000
@@ -0,0 +1,9 @@
1[Plugin]
2Loader=python
3Module=remember-the-rhythm
4IAge=1
5Name=Remember the Rhythm
6Description=Remembers last playing song + playback time and resumes on next start
7Authors=Owais Lone <hello@owaislone.org>
8Copyright=Copyright © 2011 Owais Lone
9Website=https://github.com/owais/remember-the-rhythm
010
=== added file 'plugins/remember-the-rhythm/remember-the-rhythm.py'
--- plugins/remember-the-rhythm/remember-the-rhythm.py 1970-01-01 00:00:00 +0000
+++ plugins/remember-the-rhythm/remember-the-rhythm.py 2012-01-15 09:54:25 +0000
@@ -0,0 +1,123 @@
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3
4from gi.repository import GObject
5from gi.repository import Peas
6from gi.repository import RB
7from gi.repository import Gio
8from gi.repository.GLib import Variant
9
10
11GSETTINGS_KEY = "org.gnome.rhythmbox.plugins.remember-the-rhythm"
12KEY_PLAYBACK_TIME = 'playback-time'
13KEY_LOCATION = 'last-entry-location'
14KEY_PLAYLIST = 'playlist'
15KEY_BROWSER_VALUES = 'browser-values'
16
17
18class RememberTheRhythm(GObject.Object, Peas.Activatable):
19
20 __gtype_name = 'RememberTheRhythm'
21 object = GObject.property(type=GObject.Object)
22
23 first_run = False
24
25 def __init__(self):
26 GObject.Object.__init__(self)
27 self.settings = Gio.Settings.new(GSETTINGS_KEY)
28 self.location = self.settings.get_string(KEY_LOCATION)
29 self.playlist = self.settings.get_string(KEY_PLAYLIST)
30 self.playback_time = self.settings.get_uint(KEY_PLAYBACK_TIME)
31 self.browser_values_list = self.settings.get_value(KEY_BROWSER_VALUES)
32 self.source = None
33
34 def do_activate(self):
35 self.shell = self.object
36 self.library = self.shell.props.library_source
37 self.shell_player = self.shell.props.shell_player
38 self.playlist_manager = self.shell.props.playlist_manager
39 self.db = self.shell.props.db
40 self.backend_player = self.shell_player.props.player
41 self.shell_player.connect('playing-changed', self.playing_changed)
42 self.shell_player.connect('playing-source-changed', self.playing_source_changed)
43 self.shell.props.db.connect('load-complete', self.load_complete)
44 self.shell_player.connect('elapsed-changed', self.elapsed_changed)
45
46 def do_deactivate(self):
47 self.save_rhythm()
48
49 def load_complete(self, *args, **kwargs):
50 if self.location:
51 entry = self.db.entry_lookup_by_location(self.location)
52 if self.playlist:
53 playlists = self.playlist_manager.get_playlists()
54 for playlist in playlists:
55 if playlist.props.name == self.playlist:
56 self.source = playlist
57 break
58 if not self.source:
59 self.source = self.shell.guess_source_for_uri(self.location)
60 self.shell_player.set_playing_source(self.source)
61 self.shell_player.set_selected_source(self.source)
62 self.shell_player.play_entry(entry, self.source)
63 self.first_run = True
64
65 def playing_source_changed(self, player, source, data=None):
66 if source:
67 self.source = source
68 if self.source in self.playlist_manager.get_playlists():
69 self.settings.set_string('playlist', self.source.props.name)
70 else:
71 self.settings.set_string('playlist', '')
72
73 def playing_changed(self, player, playing, data=None):
74 if self.first_run:
75 self.first_run = False
76 try:
77 self.shell_player.set_playing_time(self.playback_time)
78 except:
79 pass
80 GObject.idle_add(self.init_source)
81 return
82
83 try:
84 entry = self.shell_player.get_playing_entry()
85 self.location = entry.get_string(RB.RhythmDBPropType.LOCATION)
86 GObject.idle_add(self.save_rhythm, 0)
87 except:
88 return
89
90
91 def elapsed_changed(self, player, entry, data=None):
92 try:
93 self.playback_time = self.shell_player.get_playing_time()[1]
94 except:
95 pass
96
97 def get_source_data(self):
98 if self.source:
99 views = self.source.get_property_views()
100 browser_values_list = []
101 for view in views:
102 browser_values_list.append(view.get_selection())
103 self.browser_values_list = Variant('aas', browser_values_list)
104 self.settings.set_value(KEY_BROWSER_VALUES, self.browser_values_list)
105
106 def init_source(self):
107 if self.source:
108 views = self.source.get_property_views()
109 for i, view in enumerate(views):
110 value = self.browser_values_list[i]
111 if value:
112 view.set_selection(value)
113 self.shell.props.display_page_tree.select(self.source)
114 self.shell_player.jump_to_current()
115
116 def save_rhythm(self, pb_time=None):
117 if self.location:
118 pb_time = pb_time == None and self.playback_time or pb_time
119 self.settings.set_uint(KEY_PLAYBACK_TIME, pb_time)
120 self.settings.set_string(KEY_LOCATION, self.location)
121 GObject.idle_add(self.get_source_data)
122
123

Subscribers

People subscribed via source and target branches

to all changes: