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

Subscribers

People subscribed via source and target branches

to all changes: