pragha-music-player / pragha Goto Github PK
View Code? Open in Web Editor NEWPragha is a Lightweight Music Player for GNU/Linux.
License: GNU General Public License v3.0
Pragha is a Lightweight Music Player for GNU/Linux.
License: GNU General Public License v3.0
Pragha is a Lightweight Music Player for GNU/Linux, based on Gtk and sqlite. It is completely written in C, constructed to be fast, light, and simultaneously tries to be complete without obstructing the daily work. ;) A tiny history of the project.? Consonance, An excellent player emerged in the archlinux forums, was discontinued. The author, Sacamano said in his blog: "Which doesn't mean that it won't be maintained. I would still be fixing bugs, but major feature additions are not in the pipeline, because I have completed all that I wanted to see in Consonance. It has been a fun project. :)" Well.. Dissonance is the project to continue developing Consonance, and its result is Pragha Music Player. A New reproducer of music.. ;) Main features: * Full integration with GTK+3, but always completely independent of gnome or xfce. * Two panel design inspired by Amarok 1.4. Library and current playlist. * Library with multiple views, according to tags or folder structure. * Search, filter and queue songs on current playlist. * Play and edit tags of mp3, m4a, ogg, flac, asf, wma, and ape files. Limited only by codecs installed and taglib version used. * Playlist management: Export M3U and read M3U, PLS, XSPF and WAX playlists. * Playback control with command line. Extensible by plugins: * AcoustID: Get metadata from AcoustID service. * CD-ROM: Play audio CDs and identify them on CDDB. * DLNA Server: Share your playlist on a DLNA server. * DLNA Renderer: Play music from a DLNA server. * Gnome-Media-Keys: Control pragha with gnome-media-keys daemon. * Global Hotkeys: Control pragha with multimedia keys. * Last.fm: Scrobbling, love, unlove song, and append similar song to get related playlists. * MPRIS2: Control pragha with mpris2 interface. * Mtp Devices: Basic Management of MTP devices. * Notification: Show a notification when changing songs. * Removable media: Detect removable media and scan it. * Song-info: Get Artist info, Lyrics and Album art of your songs. * Get radios: Search radios on TuneIn service. Requirements: * gtk+-3.0 >= 3.8, glib-2.0 >= 2.36 * gstreamer-1.0 >= 1.0, gstreamer-base-1.0 >= 1.0 * taglib >= 1.8 * sqlite3 >= 3.4 Optional: * libpeas-1.0 >= 1.0.0 and libpeas-gtk-1.0 >= 1.0.0: Required for all plugins. * libxfce4ui >= 4.11.0: Better session managament support. Save the current playlist, last position when saving session, etc. * totem-plparser >= 2.26: Support to open many more formats and internet radio playlists. * gstreamer-plugins-base-devel >= 1.0: Use cubic volume for better volume control.
Album art disabled, but after restart show again.
Ubuntu 14.04
Pragha 1.3.2
How do you see with porting/supporting Pragha to gstreamer 1.0?
In many cases (like archive.org for example), sites provide a "stream URL" pointing to an m3u playlist that contains more URI's than just one (example, another one). Typically this is a way to stream an entire album to a player. Currently Pragha only adds the first song in the playlist and ignores the rest. It should add all the songs in the m3u file instead.
Hi!
I would very much appreciate a support for compilation records like e.g. Amarok has. There should be an artist item in library called "Various Artists" under which all compilation records with multiple artists are listed. This would cleanup my library view from artist items which only have one track. Then of course the artist's name must be shown besides each track.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
I can't build actual git version ofPragha without totem-plparser. Totem-plparser is no more optional?
checking for libxfce4ui-1 >= 4.8.0... 4.10.0
checking LIBXFCE4UI_CFLAGS... -pthread -I/usr/include/xfce4/libxfce4ui-1 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/libpng15 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng15 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/xfce4 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
checking LIBXFCE4UI_LIBS... -lxfce4ui-1 -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lfreetype -lfontconfig -lxfce4util -lglib-2.0
checking for optional package totem-plparser >= 2.26... not found
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating po/Makefile.in
config.status: creating src/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing default-1 commands
config.status: executing po/stamp-it commands
Build Configuration for pragha version 1.1.2
Gtk version used...: 2.24.17
Prefix.............: /usr
Debug enabled......: true
Cubic volume support.....................(Need gstreamer-plugins-base).: yes
Use multimedia key without gnome-media-keys..(Need keybinder >= 0.2.0).: yes
Better session management support...........(Need libxfce4ui >= 4.8.0).: yes
Lastfm scroble, and add similar songs support (Need libclastfm >= 0.5).: yes
Search lyrics, artists info and albums art.....(Need libglyr >= 1.0.1).: yes
Use totem-pl-parser to open playlists....(Need totem-plparser >= 2.26).: no
make all-recursive
make[1]: Entering directory /home/ARCH/PKGBUILD/pragha/src/pragha-master' Making all in po make[2]: Entering directory
/home/ARCH/PKGBUILD/pragha/src/pragha-master/po'
make[2]: Nothing to be done for all'. make[2]: Leaving directory
/home/ARCH/PKGBUILD/pragha/src/pragha-master/po'
Making all in src
make[2]: Entering directory /home/ARCH/PKGBUILD/pragha/src/pragha-master/src' CC pragha-init.o CC pragha-info-bar-import-music.o CC pragha-gnome-media-keys.o CC pragha-pragha.o CC pragha-pragha-backend.o CC pragha-pragha-cdda.o CC pragha-pragha-cmdline.o CC pragha-pragha-dbus.o CC pragha-pragha-equalizer.o pragha-cmdline.c: In function ‘init_options’: pragha-cmdline.c:342:2: warning: implicit declaration of function ‘xfce_sm_client_get_option_group’ [-Wimplicit-function-declaration] pragha-cmdline.c:342:2: warning: passing argument 2 of ‘g_option_context_add_group’ makes pointer from integer without a cast [enabled by default] In file included from /usr/include/glib-2.0/glib.h:66:0, from /usr/include/glib-2.0/glib/gi18n-lib.h:23, from pragha-cmdline.c:24: /usr/include/glib-2.0/glib/goption.h:339:17: note: expected ‘struct GOptionGroup *’ but argument is of type ‘int’ CC pragha-pragha-file-utils.o CC pragha-pragha-filter-dialog.o CC pragha-pragha-glyr.o CC pragha-pragha-library-pane.o CC pragha-pragha-menubar.o CC pragha-pragha-mpris.o CC pragha-pragha-musicobject.o CC pragha-pragha-musicobject-mgmt.o CC pragha-pragha-notify.o CC pragha-pragha-playback.o CC pragha-pragha-playlist.o CC pragha-pragha-playlists-mgmt.o CC pragha-pragha-preferences.o pragha-playlists-mgmt.c: In function ‘pragha_pl_parser_parse_xspf’: pragha-playlists-mgmt.c:607:2: error: unknown type name ‘XMLNode’ pragha-playlists-mgmt.c:631:2: warning: implicit declaration of function ‘tinycxml_parse’ [-Wimplicit-function-declaration] pragha-playlists-mgmt.c:631:6: warning: assignment makes pointer from integer without a cast [enabled by default] pragha-playlists-mgmt.c:633:2: warning: implicit declaration of function ‘xmlnode_get’ [-Wimplicit-function-declaration] pragha-playlists-mgmt.c:633:23: error: ‘CCA’ undeclared (first use in this function) pragha-playlists-mgmt.c:633:23: note: each undeclared identifier is reported only once for each function it appears in pragha-playlists-mgmt.c:633:27: error: expected ‘)’ before ‘{’ token pragha-playlists-mgmt.c:634:16: error: request for member ‘next’ in something not a structure or union pragha-playlists-mgmt.c:635:27: error: expected ‘)’ before ‘{’ token pragha-playlists-mgmt.c:637:15: error: request for member ‘content’ in something not a structure or union pragha-playlists-mgmt.c:638:35: error: request for member ‘content’ in something not a structure or union pragha-playlists-mgmt.c:641:5: error: request for member ‘content’ in something not a structure or union pragha-playlists-mgmt.c:658:2: warning: implicit declaration of function ‘xmlnode_free’ [-Wimplicit-function-declaration] pragha-playlists-mgmt.c: In function ‘pragha_pl_parser_parse_m3u’: pragha-playlists-mgmt.c:721:2: warning: implicit declaration of function ‘open’ [-Wimplicit-function-declaration] pragha-playlists-mgmt.c:721:20: error: ‘O_RDONLY’ undeclared (first use in this function) make[2]: *** [pragha-pragha-playlists-mgmt.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory
/home/ARCH/PKGBUILD/pragha/src/pragha-master/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/ARCH/PKGBUILD/pragha/src/pragha-master'
make: *** [all] Error 2
After install totem-plparser can i build Pragha without problem, but i will use no totem-plparser.
Pragha version 1.2.1 built against GTK+ 2. openSUSE Factory (13.1+).
A short log:
% gdb pragha
GNU gdb (GDB; openSUSE Factory) 7.7
...
Reading symbols from pragha...Reading symbols from /usr/lib/debug/usr/bin/pragha.debug...done.
done.
(gdb) run
Starting program: /usr/bin/pragha
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7fffe5f73700 (LWP 5834)]
(pragha:5830): Gtk-WARNING **: Rescan library: missing action Rescan library
(pragha:5830): Gtk-WARNING **: Update library: missing action Update library
[New Thread 0x7fffca62f700 (LWP 5835)]
[Thread 0x7fffca62f700 (LWP 5835) exited]
[New Thread 0x7fffca62f700 (LWP 5836)]
Program received signal SIGSEGV, Segmentation fault.
pragha_application_get_backend (pragha=0x0) at pragha.c:221
221 pragha.c: Нет такого файла или каталога.
...
(gdb) bt
#0 pragha_application_get_backend (pragha=0x0) at pragha.c:221
#1 0x0000000000429035 in pragha_mpris_close (mpris2=0x751aa0) at pragha-mpris.c:1450
#2 0x0000000000429119 in pragha_mpris_free (mpris2=0x751aa0) at pragha-mpris.c:1478
#3 0x0000000000417dea in pragha_application_dispose (object=0x73f080) at pragha.c:421
#4 0x00007ffff4ade9dc in g_object_unref () from /usr/lib64/libgobject-2.0.so.0
#5 0x0000000000416d33 in main (argc=1, argv=0x7fffffffde68) at pragha.c:762
First, it crashes on exit via menu "File -> Exit".
Second, it crashes after adding or removing collection.
Please drop the -Werror from release builds, preferably hide it behind ./configure option like --enable-fatal-warnings or similar.
You don't want end users, like from source based distribution to not be able to compile your software when something in the system changes... like an GCC upgrade
Pragha built against libglyr.
Plaing the "Stones Grow Her Name" album by "Sonata Arctica". Pragha doesn't fetch the album cover.
screen: http://itmages.ru/image/view/538870/fab82e44
Then I run glyrc.
% glyrc cover -a "Sonata Arctica" -b "Stones Grow Her Name"
---- Triggering: musictree local lastfm
---- Triggering: jamendo musicbrainz slothradio
///// ITEM #1 /////
WRITE to './Sonata Arctica_Stones Grow Her Name__cover_1.jpeg'
FROM: http://ecx.images-amazon.com/images/I/61L-BIv6tTL.jpg
PROV: musicbrainz
SIZE: 85980 Bytes
MSUM: 8d3ca4c84a54b448621e53a143426169
TYPE: cover
SAFE: No
RATE: 0
STMP: 0,000000
FRMT: jpeg
DATA:
////////////////////
% ll Sonata\ Arctica_Stones\ Grow\ Her\ Name__cover_1.jpeg
-rw-r--r-- 1 kent users 85980 июня 2 00:32 Sonata Arctica_Stones Grow Her Name__cover_1.jpeg
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
pragha 1.1.0 installed from deb package
Ubuntu 12.04 64 bits
Gnome-shell
Output of pragha -e 4 -l pragha.log
and installed gstreamer packages described in log file: http://paste.ubuntu.com/1054098/
Using Ubuntu 10.04 LTS (2.6.32-45-generic) on i686, I'm having a hard time compiling the latest source I've downloaded from github.
I couldn't find gio-2.0 even though autogen.sh said the installed version was not new enough. I didn't really care that it didn't match, so I hacked the autogen.sh to pass the check for gio-2.0. Upon implementing this hack, I was able to get the autogen.sh to complete, and I subsequently ran make.
During the make, I encountered this:
make all-recursive
make[1]: Entering directory /usr/local/src/pragha' making all in po make[2]: Entering directory
/usr/local/src/pragha/po'
make[2]: nothing to be done for `all'.
.... <<< SNIP >>> ....
make[2]: entering directory /usr/local/src/pragha/src
CC pragha-cdda.o
In file included from cdda.c:19:
pragha.h:563: error: expected specifier-qualifier-list before 'GDBusNodeInfo'
..... <<< SNIP >>> .....
GDBus seems unrelated to gio, as there were other dependencies that GDBus were fulfilled by. I'm hoping someone can shed some light on my predicament. I don't care too much about full audio playing capability than I do getting the complete project to compile.
Thanks in advance for the help!
Hello. I'm a real fan of Pragha and I was using it on my testing x86 for a long time. It was always compiling well. But now i moved to a clean unstable debian and i cannot compile player. Also i tried to compile it on clean x86_64 testing debian but it shows the same error. I have all needed libraries installed and configure goes well. But make doesn't work. Maybe i must install some extra packages? Here is the error
daniel@debian:~/Sources/pragha-1.1.0.1$ make
make all-recursive
make[1]: Entering directory /home/daniel/Sources/pragha-1.1.0.1' Making all in po make[2]: Entering directory
/home/daniel/Sources/pragha-1.1.0.1/po'
make[2]: Nothing to be done for all'. make[2]: Leaving directory
/home/daniel/Sources/pragha-1.1.0.1/po'
Making all in src
make[2]: Entering directory /home/daniel/Sources/pragha-1.1.0.1/src' CC pragha-cdda.o In file included from cdda.c:19:0: pragha.h:67:19: fatal error: tag_c.h: No such file or directory compilation terminated. make[2]: *** [pragha-cdda.o] Error 1 make[2]: Leaving directory
/home/daniel/Sources/pragha-1.1.0.1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/daniel/Sources/pragha-1.1.0.1'
make: *** [all] Error 2
configure goes well until:
checking that generated files are newer than configure... done
configure: error: conditional "HAVE_LIBMTP" was never defined.
Usually this means the macro was only invoked conditionally.
Help, please.
'Ctrl+F9' doesn't work to hide/display Secondary lateral panel.
It works from the menu "View" -> "Secondary lateral panel", though.
Built for openSUSE.
This happens because it use PNG format. If use SVG - displayed normally.
I create pragha.svg , please use it ))
Preview:
Download SVG:
http://www.datafilehost.com/d/f6c8ad22
Using commit b99cf42
The free @ pragha.c#527 causes a crash. I guess The freeing of the window does not need to be handled manually?
#0 0x00000031b3ec13c0 in gtk_application_impl_window_removed ()
from /lib64/libgtk-3.so.0
#1 0x00000031b3ebedb0 in gtk_application_window_removed () from /lib64/libgtk-3.so.0
#2 0x00000031a32132db in g_cclosure_marshal_VOID__OBJECTv ()
from /lib64/libgobject-2.0.so.0
#3 0x00000031a3210207 in _g_closure_invoke_va () from /lib64/libgobject-2.0.so.0
#4 0x00000031a3229487 in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
#5 0x00000031a322a0ef in g_signal_emit () from /lib64/libgobject-2.0.so.0
#6 0x00000031b4101ed1 in gtk_window_release_application () from /lib64/libgtk-3.so.0
#7 0x00000031b410db22 in gtk_window_destroy () from /lib64/libgtk-3.so.0
#8 0x00000031a320ffd8 in g_closure_invoke () from /lib64/libgobject-2.0.so.0
#9 0x00000031a3222454 in signal_emit_unlocked_R () from /lib64/libgobject-2.0.so.0
#10 0x00000031a3229e32 in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
#11 0x00000031a322a0ef in g_signal_emit () from /lib64/libgobject-2.0.so.0
#12 0x00000031b40f8728 in gtk_widget_dispose () from /lib64/libgtk-3.so.0
#13 0x00000031b4105bdb in gtk_window_dispose () from /lib64/libgtk-3.so.0
#14 0x00000031b3ec1b55 in gtk_application_window_dispose () from /lib64/libgtk-3.so.0
#15 0x00000031a3216b31 in g_object_run_dispose () from /lib64/libgobject-2.0.so.0
#16 0x000000000041bfe1 in pragha_application_dispose ()
#17 0x00000031a3216b31 in g_object_run_dispose () from /lib64/libgobject-2.0.so.0
#18 0x000000000041cd32 in main ()
This can be fixed by changing the return of window_state_event in src/init.c from TRUE to FALSE. I don't know if that has any unintended consequences, but I don't think that it would.
Why not use glyr lang autodetection?
This was removed in commit 61aae5e without description why.
I guess it confuses translators and it's better in case we have no translation.
reported by valgrind
==12693== Invalid read of size 4 ==12693== at 0x8056170: delete_queue_track_refs (current-playlist.c:220) ==12693== by 0x8057DE0: dequeue_current_playlist (current-playlist.c:1157) ==12693== by 0x4CC235E: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x4CC05F5: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x4CD2154: ??? (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x4CDA345: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x4CDA4C6: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x40DA5D4: gtk_action_activate (in /usr/lib/libgtk-3.so.0.400.0) ==12693== by 0x421FBC5: ??? (in /usr/lib/libgtk-3.so.0.400.0) ==12693== by 0x4CC235E: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x4CBF47C: ??? (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x4CC05F5: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x4CD1B0A: ??? (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x4CDA345: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x4CDA4C6: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x422420D: gtk_menu_shell_activate_item (in /usr/lib/libgtk-3.so.0.400.0) ==12693== by 0x4222F53: ??? (in /usr/lib/libgtk-3.so.0.400.0) ==12693== by 0x4215B83: ??? (in /usr/lib/libgtk-3.so.0.400.0) ==12693== by 0x4204F82: ??? (in /usr/lib/libgtk-3.so.0.400.0) ==12693== by 0x4CBEF56: ??? (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x4CC08A0: ??? (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x4CD9A68: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x4CDA4C6: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x438A1D0: gtk_widget_event (in /usr/lib/libgtk-3.so.0.400.0) ==12693== by 0x420498E: ??? (in /usr/lib/libgtk-3.so.0.400.0) ==12693== Address 0xebbe53c is 4 bytes inside a block of size 8 free'd ==12693== at 0x402A21C: free (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==12693== by 0x4EAC89A: ??? (in /usr/lib/libglib-2.0.so.0.3200.0) ==12693== by 0x4EACA0F: g_free (in /usr/lib/libglib-2.0.so.0.3200.0) ==12693== by 0x4EC20EA: g_slice_free1 (in /usr/lib/libglib-2.0.so.0.3200.0) ==12693== by 0x4EC2902: g_slist_free_1 (in /usr/lib/libglib-2.0.so.0.3200.0) ==12693== by 0x4EC2AB6: g_slist_remove_all (in /usr/lib/libglib-2.0.so.0.3200.0) ==12693== by 0x80560CB: delete_queue_track_refs (current-playlist.c:213) ==12693== by 0x8057DE0: dequeue_current_playlist (current-playlist.c:1157) ==12693== by 0x4CC235E: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x4CC05F5: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x4CD2154: ??? (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x4CDA345: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x4CDA4C6: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x40DA5D4: gtk_action_activate (in /usr/lib/libgtk-3.so.0.400.0) ==12693== by 0x421FBC5: ??? (in /usr/lib/libgtk-3.so.0.400.0) ==12693== by 0x4CC235E: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x4CBF47C: ??? (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x4CC05F5: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x4CD1B0A: ??? (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x4CDA345: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x4CDA4C6: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.3200.0) ==12693== by 0x422420D: gtk_menu_shell_activate_item (in /usr/lib/libgtk-3.so.0.400.0) ==12693== by 0x4222F53: ??? (in /usr/lib/libgtk-3.so.0.400.0) ==12693== by 0x4215B83: ??? (in /usr/lib/libgtk-3.so.0.400.0) ==12693== by 0x4204F82: ??? (in /usr/lib/libgtk-3.so.0.400.0)
Every instance of "pragha_LDFLAGS" should be "pragha_LDADD" in src/Makefile.am
or otherwise libraries end up at the wrong place in the linker line,
Various issues may occur from this, usually unresolved symbols during build time, but also at runtime with the GNU gold linker, or using the old linker and flags like -Wl,--no-add-needed or -Wl,--as-needed.
To clarify:
All "-l" flags like -lglyr goes in _LDADD (or _LIBADD if using libtool and building library) in a project using automake (Makefile.am)
"Replace and play" broken in commit 378db7d
Compilation failed for i586:
Making all in src
make[2]: Entering directory `/home/abuild/rpmbuild/BUILD/pragha-1.1.0/src'
CC pragha-cdda.o
CC pragha-cmdline.o
CC pragha-current-playlist.o
CC pragha-db.o
CC pragha-dbus.o
CC pragha-filetree.o
CC pragha-gui.o
CC pragha-glyr-related.o
CC pragha-init.o
CC pragha-info-bar-import-music.o
init.c: In function 'init_config':
init.c:1002:12: error: cannot convert to a pointer type
make[2]: *** [pragha-init.o] Error 1
For x86_64 it's OK.
keybinder plugin for Pragha provides the libkeybinder.so.0 library.
This causes a conflict in names with the libkeybinder.so.0 provided by the libkeybinder0 package (at least in openSUSE).
% zypper se --provides libkeybinder.so.0
S | Name | Summary | Type
--+----------------+-------------------------------+--------
i | libkeybinder0 | Library Package for Keybinder | package
i | pragha-plugins | Plugins for Pragha | package
No matter if they are installed in different directories.
Hi Matias,
I´m translating Pragha music player to Portuguese in transifex but when using 1.3 release I notice some severe errors in translation file. I´ve already upload a correction in there. Can you please merge it with code?
Regards
It seems like that I found another bug(I'm a bug finder...):
I installed the latest git version of Pragha today, and In my Nautilus(version 3.2.1), when I right click a MP3 or wma file and choose "Open with pragha", nother happened.
Then I launched the terminal and run "pragha file_name.mp3" or "pragha file_name.wma", the output is "segmentation fault ".
The songs can be played very well when I add them to the playlist and double-click it.
First of all.. This idea comes in that buyed a Raspberry pi and gstreamer is impossible to use due a 100% of CPU usage. Then, I tried with dissonance (Pragha 0.8.11rc, based on the consonance audio engine) and only use an 8% of cpu!.
Well, I promised to continue maintaining Prague 0.8*, but the changes are giants.. Sorry.
The idea would be:
Finally, must be changed the configure script to select the engine.
Ahh.. Of course, the equalizer, cdda, and perhaps other things also have to move to engines.
Hi Matias - i see, you works on Pragha 1.1. I play a little with gimp and prepare a mockup of Pragha. What you see, that i use from Pragha 1.0.2, ony position is another different. I hope, that picture will you like. If you use any idea of my, i will very happy . Thanks for all!
Picture : http://i46.tinypic.com/28b8e4g.jpg
Idea about middle window's part: The both popup windows (BIO/Lyrics) are integrated and open do middle part.
P.S. The graphics and icons is ugly, because default setting from xfce 4.10.
Fabian Köster reported here http://bugs.gentoo.org/show_bug.cgi?id=408321 that Pragha's About Window is showing version
0.83 instead of 1.0.1.
0.83 is the version number of libcdio...
afaik most of them are already supported in gstreamer via the modplug plugin. would be greatly appreciated ;)
I can not compile actual git version of Pragha player with enabled GTK3.
Build Configuration for pragha version 1.1.2
Gtk version used...: 3.8.2
Prefix.............: /usr
Debug enabled......: true
Cubic volume support.....................(Need gstreamer-plugins-base).: yes
Use multimedia key without gnome-media-keys.......(Need keybinder-3.0).: yes
Better session management support..........(Need libxfce4ui >= 4.11.0).: no
Lastfm scroble, and add similar songs support (Need libclastfm >= 0.5).: no
Search lyrics, artists info and albums art.....(Need libglyr >= 1.0.1).: no
Use totem-pl-parser to open playlists....(Need totem-plparser >= 2.26).: no
make all-recursive
make[1]: Entering directory /tmp/makepkg/pragha/src/pragha-master' Making all in po make[2]: Entering directory
/tmp/makepkg/pragha/src/pragha-master/po'
make[2]: Nothing to be done for all'. make[2]: Leaving directory
/tmp/makepkg/pragha/src/pragha-master/po'
Making all in src
make[2]: Entering directory /tmp/makepkg/pragha/src/pragha-master/src' CC pragha-info-bar-import-music.o CC pragha-init.o CC pragha-gnome-media-keys.o CC pragha-pragha.o CC pragha-pragha-backend.o CC pragha-pragha-cdda.o CC pragha-pragha-cmdline.o CC pragha-pragha-dbus.o CC pragha-pragha-equalizer.o CC pragha-pragha-file-utils.o CC pragha-pragha-filter-dialog.o CC pragha-pragha-glyr.o CC pragha-pragha-library-pane.o CC pragha-pragha-menubar.o CC pragha-pragha-mpris.o CC pragha-pragha-musicobject.o CC pragha-pragha-musicobject-mgmt.o CC pragha-pragha-notify.o CC pragha-pragha-playback.o CC pragha-pragha-playlist.o CC pragha-pragha-playlists-mgmt.o CC pragha-pragha-preferences.o CC pragha-pragha-preferences-dialog.o CC pragha-pragha-scanner.o CC pragha-pragha-statusicon.o CC pragha-pragha-tags-dialog.o CC pragha-pragha-tags-mgmt.o CC pragha-pragha-toolbar.o pragha-tags-dialog.c: In function ‘pragha_tags_dialog_finalize’: pragha-tags-dialog.c:557:20: warning: unused variable ‘dialog’ [-Wunused-variable] PraghaTagsDialog *dialog = PRAGHA_TAGS_DIALOG (object); ^ CC pragha-pragha-utils.o CC pragha-pragha-window.o CC pragha-pragha-lastfm.o CC pragha-pragha-keybinder.o CCLD pragha pragha-gtkcellrendererbubble.o: In function
render':
/tmp/makepkg/pragha/src/pragha-master/src/gtkcellrendererbubble.c:163: undefined reference to gdk_drawable_get_type' collect2: error: ld returned 1 exit status make[2]: *** [pragha] Error 1 make[2]: Leaving directory
/tmp/makepkg/pragha/src/pragha-master/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/makepkg/pragha/src/pragha-master'
I have a playlist with a track
/mnt/media/MyMusic/MP3/D/Dalida/(1997)_40_succès_en_or/17-Le_temps_des_fleurs.ogg
Then the album directory was renamed to "(1997)_40_Succès_en_or" (capital S in succès). The album tag is also changed in all the tracks.
I did rescan my music library.
When I drug 'n' drop the playlist to Pragha's queue, it crashes.
Running in terminal:
% pragha
TagLib: Could not open file /mnt/media/MyMusic/MP3/D/Dalida/(1997)_40_succès_en_or/17-Le_temps_des_fleurs.ogg
[1] 25719 segmentation fault pragha
Probably a taglib issue. But want to have Pragha more intellectual.
I see some untranslated strings in Russian Pragha v1.3.2 interface.
I have translated almost all the strings to Russian (except the one I don't understand well and haven't tested).
Please, have a look at http://susepaste.org/view/simple/72583104
And "Settings — Plugins" tab isn't translated at all.
Thanks.
Setting docdir this way in Makefile.am breaks the autoconf ./configure --docdir option which is used by packagers to determine distribution specific documentation directory.
For example, in Gentoo we would do:
--docdir=/usr/share/doc/pragha-1.0.1-gentoo-revision-here
But now it only works as an make argument since it's hardcoded in the Makefile
emake DESTDIR="example" docdir="/usr/share/doc/example" install
Which isn't how it's supposed to work.
Thanks!
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
When searching the playlist for some string containing space, it doesn't find any match. I've tested this on both GTK2 and GTK3 versions.
My idea for searching in the following playlist:
yields:
if the search term is "abc"
, it matches only the first item
if the search term is "abc xyz"
, it matches only the first item
if the search term is "abc xyz"
(notice the double-space in between), it matches only the first item
if the search term is " abc xyz "
(notice the redundant spaces at the beginning and at the end), it matches only the first item
if the search term is " abc xyz "
(many spaces on many places :-)), it also matches te first item
if the search term is " Xyz "
, it matches the first and last item, but not the second one (but " xyz "
would match all 3 items)
Simply said, handle any number of consecutive white characters in between of words/tokens as regexp [:space:]+
and in case of consecutive white characters at the beginning or at the end of search term, use the regexp [:space:]*
for finding matches in the playlist. This is really usefull when the tag contains e.g. tabulator instead of space; or two spaces instead of one etc.
And be case insensitive when the search term doesn't contain any upper case characters and be case sensitive if the search term contains at least one upper case character.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
In the paranoia subdirectory. Same for paranoia.h. The move was intentional.
This patch has been adopted by Arch, Fedora, Gentoo, and so forth because the
default installation out of libcdio-paranoia-0.90 was already supposed to do it
but the tarball is missing this patch unfortunately:
rocky/libcdio-paranoia@b2807f3
So you have to change the path using AC_CHECK_HEADER and #ifdef.
Please read this bug and look at the patch and you know howto fix it:
https://bugzilla.gnome.org/show_bug.cgi?id=691841
Direct link to example patch:
It happens. Manually deleting the whole cache is not nice.
Maybe something like:
-Try other providers (how hard would be to implement?)
-Try again (after updating glyr)
-Delete from cache (so next play it gets re-downloaded)
Also, any ideas how to expose this in GUI?
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
@matiasdelellis,
I just noticed hig.c licensed under GPLv2 (with exception for transmission).
The issue is GPLv2 is incompatible with GPLv3. [1] And obviously pragha is not the transmission.
[1 ] http://www.gnu.org/licenses/gpl-faq.html#v2v3Compatibility
Try to run autoconf && ./configure
e.g. on a system without libnotify installed and you'll get error:
...
checking for optional package totem-plparser >= 2.26... not found
checking that generated files are newer than configure... done
configure: error: conditional "HAVE_LIBNOTIFY" was never defined.
Usually this means the macro was only invoked conditionally.
master 1$
I've investigated that the problem lies in a badly written configure.ac
where there the following snippet
dnl Check notify support
LIBNOTIFY_FOUND="no"
if test x"$LIBPEAS_FOUND" = x"yes"; then
XDT_CHECK_OPTIONAL_PACKAGE([LIBNOTIFY],
[libnotify], [0.4.4],
[libnotify],
[libnotify library], [yes])
fi
generates
LIBNOTIFY_FOUND="no"
if test x"$LIBPEAS_FOUND" = x"yes"; then
...
if test x"$LIBNOTIFY_FOUND" = x"yes"; then
HAVE_LIBNOTIFY_TRUE=
HAVE_LIBNOTIFY_FALSE='#'
else
HAVE_LIBNOTIFY_TRUE='#'
HAVE_LIBNOTIFY_FALSE=
fi
fi
whereas variables HAVE_LIBNOTIFY_TRUE
and HAVE_LIBNOTIFY_FALSE
are then always checked later in the ./configure
script and produce the above-mentioned error.
The solution would be to add the check for "$LIBNOTIFY_FOUND" value and setting appropriately HAVE_LIBNOTIFY_TRUE
and HAVE_LIBNOTIFY_FALSE
after the if test x"$LIBPEAS_FOUND" = x"yes"; then ...; fi
block in ./configure.ac
(maybe there is some macro provided by autoconf for it). But I'd rather solve it differently and in a more robust way. Any ideas?
This problem could of course occur with other modules as well.
i´m using release 1.3 on windows and notice a faulty behaviour
How to reproduce:
1 - Preferences -> Workspace -> Minimize on window close
2 - Close -> Right click on tray icon to show popup menu
Observed behaviour:
Menu is shown but if we don´t select any option and click anywhere outside popup, the popup remains visible.
Expected behaviour:
The popup menu should hide himself if we don´t select any option
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Pragha is a wonderful, fast player but it seems to have no support for media keys or any kind of hotkeys. This is a dealbreaker for me and I'd love to see support added.
Hi
Anyone with a simple step by step instruction on how to compile Pragha on Ubuntu 14.04 or is there an updated PPA. I tried this but getting "The required package sqlite3 was not found on your system" even after installing it:
sudo add-apt-repository ppa:gstreamer-developers/ppa
sudo apt-get update
sudo apt-get install gstreamer1.0
sudo apt-get install intltool sqlite3
wget https://github.com/matiasdelellis/pragha/releases/download/v1.3.1/pragha-1.3.1.tar.bz2
tar -xvf pragha-1.3.1.tar.bz2
cd pragha-1.3.1/
./configure
Thanks
As you said in issue #65 we could improve English strings. This issue is to translators report issues found in source file that could be improved.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Please hide the compiler optimizations behind a ./configure flag like --enable-optimizations or similar. Or drop them altogether. It's up to the user (or distribution packagers) to prepare the build environment and set these flags. Packages should not do this.
You wrote:
libkeybinder >= 0.2.2 (Or keybinder-3.0 with gtk+-3.0) Use multimedia keys to control pragha without gnome media keys. But configure not detect libkeybinder-0.3.0 (released Jun 2012 and compiled with gtk2 - this verson is yet in archlinux).
I found these is something wrong about pragha's mpris2 support under these two conditions below:
I use osd-lyrics(in arch's aur, a plugin add chinese lyrics support for the mpris-supported players) to show lyrics, but it seems that osd-lyrics can not get the right time point of current song when it's playing, so all I can see is always the end of the lyrics.
In my gnome 3.2, these a extensions named "Media player indicator(https://extensions.gnome.org/extension/55/media-player-indicator/)", it is a pretty mpris controller and works very well with clementine, audacious, amork, etc. But when I use pragha, the extension also can not get the right time progress information from pragha when a song is playing.
So I think, these is may something wrong with the time progress related part of Pragha's Mpris2 support.
Hope you can take a look at it.
Thanks!
I thought I have translated to Russian.
Really it was done before. I wonder if it isn't.
Again: now in transifex
--- po/ru.po.orig
+++ po/ru.po
@@ -105,11 +107,11 @@ msgstr "Эквалайзер"
#: ../src/gui.c:212
msgid "_Playback"
-msgstr "_Воспроизведение"
+msgstr "В_оспроизведение"
#: ../src/gui.c:213
msgid "Play_list"
-msgstr "Список_воспроизведения"
+msgstr "_Плейлист"
#: ../src/gui.c:214
msgid "_View"
Matias, do you think, I need to translate equalizer presets? I keep them untranslated to Russian locale now.
@matiasdelellis How long you want to support gtk2?
gtk3 introduced GtkApplication. It has following benefits:
After two previous points we can drop dbus-glib :-)
Build Configuration for pragha version 1.1.2
Gtk version used...: 2.24.20
Prefix.............: /usr
Debug enabled......: false
Cubic volume support.....................(Need gstreamer-plugins-base).: yes
Use multimedia key without gnome-media-keys..(Need keybinder >= 0.2.0).: yes
Better session management support...........(Need libxfce4ui >= 4.8.0).: yes
Lastfm scroble, and add similar songs support (Need libclastfm >= 0.5).: yes
Search lyrics, artists info and albums art.....(Need libglyr >= 1.0.1).: no
Use totem-pl-parser to open playlists....(Need totem-plparser >= 2.26).: yes
make all-recursive
make[1]: Entering directory `/home/diego/pragha-git/src/pragha'
Making all in po
make[2]: Entering directory `/home/diego/pragha-git/src/pragha/po'
MSGFMT cs.gmo
MSGFMT es.gmo
MSGFMT de.gmo
MSGFMT el.gmo
MSGFMT fr.gmo
MSGFMT hu.gmo
MSGFMT it.gmo
MSGFMT nl.gmo
MSGFMT ja.gmo
MSGFMT no.gmo
MSGFMT pl.gmo
MSGFMT pt.gmo
MSGFMT pt_BR.gmo
MSGFMT ru.gmo
MSGFMT sv.gmo
MSGFMT tr.gmo
MSGFMT uk.gmo
MSGFMT zh_CN.gmo
make[2]: Leaving directory `/home/diego/pragha-git/src/pragha/po'
Making all in src
make[2]: Entering directory `/home/diego/pragha-git/src/pragha/src'
CC pragha-init.o
CC pragha-info-bar-import-music.o
CC pragha-gnome-media-keys.o
In file included from pragha.h:23:0,
from gnome-media-keys.c:23:
pragha-cdda.h:27:26: fatal error: cdio/cdda.h: File o directory non esistente
#include <cdio/cdda.h>
^
compilation terminated.
make[2]: *** [pragha-gnome-media-keys.o] Errore 1
make[2]: *** Attesa dei processi non terminati....
make[2]: Leaving directory `/home/diego/pragha-git/src/pragha/src'
make[1]: *** [all-recursive] Errore 1
make[1]: Leaving directory `/home/diego/pragha-git/src/pragha'
make: *** [all] Errore 2
$ desktop-file-validate data/pragha.desktop
data/pragha.desktop: error: value "GTK;AudioVideo;Player" for string list key "Categories" in group "Desktop Entry" does not have a semicolon (';') as trailing character
data/pragha.desktop: error: file contains group "Play Shortcut Group", but groups extending the format should start with "X-"
data/pragha.desktop: error: file contains group "Pause Shortcut Group", but groups extending the format should start with "X-"
data/pragha.desktop: error: file contains group "Stop Shortcut Group", but groups extending the format should start with "X-"
data/pragha.desktop: error: file contains group "Previous Shortcut Group", but groups extending the format should start with "X-"
data/pragha.desktop: error: file contains group "Next Shortcut Group", but groups extending the format should start with "X-"
The first one is easy to solve:
Categories=GTK;AudioVideo;Player
Should be with ending ; char so:
Categories=GTK;AudioVideo;Player;
Not sure about the others, I guess just prepend the X- to them
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.