
Source (link to git-repo or to original if based on someone elses unmodified work): Add the source-code for this project on opencode.net
-- NOTICE -----
Updated version and future develoment here:
https://sourceforge.net/p/be-mpc/code/
------------------------
A Qt4 client for http://mpd.wikia.com/ MPD with some UI experiments
Features:
- Playback controls ;-)
- Treestyle playlist display
- Online database filtering
- (Optionally) Wikipedia metainfo (heuristic lookup through google, therefore opt-in)
[If connected to a local MPD server]
- Cover display
- Local file playback (usually MPD only plays out of its database)
- DnD support for local file urls (ie. playlist -> k3b / dolphin)
- (basic) MPD server configuration UI
=========== INSTALLATION ==============
Requirements:
-----------
- tar with lzma support (.xzf)
- Qt 4.x | x >= 5/6, not really sure ;-)
- libmpdclient (your distro likely has it)
http://mpd.wikia.com/wiki/ClientLib:libmpdclient
Process:
-----------
- Download sources and ave them "somewhere"
- Open a terminal (Konsole, XTerm)
- navigate to the dowloaded source (ie. "cd ~/Desktop")
tar -xJf be.mpc.xzf
cd BE.MPC
qmake
make && sudo make install
7 years ago
0.11
-----
- Fix an i18n bug that broke database rescanning
- Improve google result scanning
- By all means: avoid spamming google (for undertagged tunes)
- Fake a useragent ID for network requests ...
- Merge Artist & Album Artist (ie. if one tag is not present, the other one is used as replacement) - They are *still* individual tags and can be different.
0.10
----
- bugfixes (most notably a crash caused by stream support...)
- better stream support :-)
- settings do no longer constrain the minimum size
- German & Czech i18n - Czech strings kindly provided by Pavel Fric
0.8
---
- Some touchscreen UI support (mostly the volume slider slides out on first tap)
- broadcast managing support (internet radio, just add a link. supports m3u & pls)
0.7
---
- fixes a UTF-8 conversion when dnd from the playlist
- allows to pan the wikipedia text (drag with the mouse)
- has a nice database watermark to separate it from the playlist
0.6a
---
- minor patch: correctly constrains slider position to value calculation (could lead to connection failures & reconnects for at least the volume slider)
0.6
---
- fixes placeholder text indention
- fixes playlist sorting
- brings playmodes (repeat one/all, random - yes Rob: it will lie to you ;-)
- has some minor dynamic UI fixes
0.5
---
- Fixes a potential infinite repaint in the hint animations (actually occured here some times...)
- Brings buttons to remove or "enqueue" tracks (MPD doesn't know "enqueue", the track(s) is(are) just copied after the current one - so it's more "enstack" :-)
- Replaces the playlist filterline
- Has several minor visual/behavioural adjustments/fixes
0.4
---
- Does not shredder your ~/.mpdconf if it contains complex settings (things with curly braces)
0.3
---
- Connect to server in off-GUI thread (but the actual communication is still syncronous)
- calm pedantic compile warnings :P
- to bring _anything_ new: added bash implementation of a (configurable) DYNAMIC PLAYLIST daemon for mpd =)
0.2a
----
COMPILE ISSUES ONLY - NO FUNCTIONAL CHANGES
- Implements a "setPlaceHolderText" solution for Qt < 4.7
- Depends sleep'ing on the system
- Moves everything into a namespace
- Adds missing header definition
- Directly includes awidget.h in awidget.cpp
0.2
---
- Has adjusted page autoswitching
- Caches Wikipedia infos (for faster re-startups)
- Provides (opt-out) keyboard shortcut hints
- Brings an icon and a .desktp file for startup menus
7 years ago
0.11
-----
- Fix an i18n bug that broke database rescanning
- Improve google result scanning
- By all means: avoid spamming google (for undertagged tunes)
- Fake a useragent ID for network requests ...
- Merge Artist & Album Artist (ie. if one tag is not present, the other one is used as replacement) - They are *still* individual tags and can be different.
0.10
----
- bugfixes (most notably a crash caused by stream support...)
- better stream support :-)
- settings do no longer constrain the minimum size
- German & Czech i18n - Czech strings kindly provided by Pavel Fric
0.8
---
- Some touchscreen UI support (mostly the volume slider slides out on first tap)
- broadcast managing support (internet radio, just add a link. supports m3u & pls)
0.7
---
- fixes a UTF-8 conversion when dnd from the playlist
- allows to pan the wikipedia text (drag with the mouse)
- has a nice database watermark to separate it from the playlist
0.6a
---
- minor patch: correctly constrains slider position to value calculation (could lead to connection failures & reconnects for at least the volume slider)
0.6
---
- fixes placeholder text indention
- fixes playlist sorting
- brings playmodes (repeat one/all, random - yes Rob: it will lie to you ;-)
- has some minor dynamic UI fixes
0.5
---
- Fixes a potential infinite repaint in the hint animations (actually occured here some times...)
- Brings buttons to remove or "enqueue" tracks (MPD doesn't know "enqueue", the track(s) is(are) just copied after the current one - so it's more "enstack" :-)
- Replaces the playlist filterline
- Has several minor visual/behavioural adjustments/fixes
0.4
---
- Does not shredder your ~/.mpdconf if it contains complex settings (things with curly braces)
0.3
---
- Connect to server in off-GUI thread (but the actual communication is still syncronous)
- calm pedantic compile warnings :P
- to bring _anything_ new: added bash implementation of a (configurable) DYNAMIC PLAYLIST daemon for mpd =)
0.2a
----
COMPILE ISSUES ONLY - NO FUNCTIONAL CHANGES
- Implements a "setPlaceHolderText" solution for Qt < 4.7
- Depends sleep'ing on the system
- Moves everything into a namespace
- Adds missing header definition
- Directly includes awidget.h in awidget.cpp
0.2
---
- Has adjusted page autoswitching
- Caches Wikipedia infos (for faster re-startups)
- Provides (opt-out) keyboard shortcut hints
- Brings an icon and a .desktp file for startup menus
juanuni
6 years ago
Quote:
qmake
make
then I make
Quote:
sudo make install
make: nothing is done to «first».
install -m 755 -p "be.mpc" "/usr/bin/be.mpc"
strip "/usr/bin/be.mpc"
install -m 755 -p /home/juanuni/Public/be-mpc-code/be.mpc.desktop /usr/share/applications/
strip /usr/share/applications/be.mpc.desktop
strip:/usr/share/applications/be.mpc.desktop: The file format is not recognized
make: [install_srvc] Error 1 (no effect)
install -m 644 -p /home/juanuni/Public/be-mpc-code/be.mpc.png /usr/share/icons/hicolor/128x128/apps/
install -m 644 -p /home/juanuni/Public/be-mpc-code/be.mpc_cs.qm /usr/share/BE::MPC/
install -m 644 -p /home/juanuni/Public/be-mpc-code/be.mpc_de.qm /usr/share/BE::MPC/
update-desktop-database
make: update-desktop-database: No program was found
make: *** [install_postinstall] Error 127
Report
thomas12777
6 years ago
It's provided by http://www.freedesktop.org/wiki/Software/desktop-file-utils and should be dependency of many desktop linux packages (including Qt)
Report
lionhater
8 years ago
I've tried all the music players in Linux and though some of them have zillions of (mostly unnecessary) features, none of them has all the basics. I can list the shortcomings of all of them if needed.
Your application is perfect as a minimalist player, but especially in large collections visiual clue is very useful and sometimes necessary, more sore with classical albums. So if it's easy to implement, an option to have a cover grid view would make it perfect as a general purpose player.
Report
lionhater
8 years ago
Report
thomas12777
8 years ago
Global shortcuts are provided through the Desktop Environment, i cannot "just" add them (but by linking KDE and supporting KDE/kded only)
It would be possible to add random dbus hooks to be called by the systems hotkey -> action functions (what would require the application to become single instance though)
However, to control mpd by shortcuts, i just use mpc (the default CLI client) - has the advance that even BE::MPC doesn't have to be running.
Report
lionhater
8 years ago
Report
lionhater
8 years ago
The ability to sort by album artist and if it's not present by artist would make it perfect as a minimalist music player.
Report
thomas12777
8 years ago
I implemented and now test merging artist & albumArtist locally and will in doubt include it with the next update.
Report
lionhater
8 years ago
Report
lionhater
8 years ago
[email protected] ~/Desktop/bempc-0.10 $ qmake
[email protected] ~/Desktop/bempc-0.10 $ make && sudo make install
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DDATADIR=/usr/share -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/include/libmpd-1.0 -I. -o main.o main.cpp
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DDATADIR=/usr/share -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/include/libmpd-1.0 -I. -o awidget.o awidget.cpp
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DDATADIR=/usr/share -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/include/libmpd-1.0 -I. -o mpc.o mpc.cpp
In file included from mpc.cpp:22:0:
infowidget.h:26:24: fatal error: mpd/client.h: No such file or directory
compilation terminated.
make: *** [mpc.o] Error 1
[email protected] ~/Desktop/bempc-0.10 $
Report
thomas12777
8 years ago
Report
Rasi
8 years ago
Report
thomas12777
8 years ago
And as the description actually says: you need (only) libmpdclient (i just did "pacman -Q | grep mpd", libmpd is used by some e17 plugin)
So I was basically wrong in my advice in the forum, nothing to worry about :-)
Report
lionhater
8 years ago
Report
Nikoli
9 years ago
2) Move text in search form a bit http://img696.imageshack.us/img696/396/bempcsearch.png
Report
TheRob
9 years ago
to re-produce those problems :)
Report
Nikoli
9 years ago
Report
thomas12777
9 years ago
I'll release a fix later on.
No idea about why you can see the playlist buttons (well, because they're actually part of the window widget, but they should be hidden with the playlist)
I couldn't reproduce this here at all (with no style) - any hint on how to do that?
Report
Nikoli
9 years ago
1) Try using Qt 4.6.3 + KDE 4.4.5 with default theme. For me the problem arrives immediately after starting bempc. I use 'su' for testing.
Report
thomas12777
9 years ago
1) errr... don't have access to that old KDE/Qt.
-> Does it happen with any other style (or all oxygen animations turned off)?
Report
Nikoli
10 years ago
$ strace -r /usr/bin/be.mpc 2>&1 |grep -v '^ 0.0' -B4
0.000117 munmap(0x7f6bb12f0000, 4096) = 0
0.000141 socket(PF_INET, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_TCP) = 9
0.000149 connect(9, {sa_family=AF_INET, sin_port=htons(6600), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)
0.000255 select(10, NULL, [9], [9], {10, 0}) = 0 (Timeout)
10.010285 close(9) = 0
--
0.000088 munmap(0x7f6bb12f0000, 4096) = 0
0.000115 socket(PF_INET, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_TCP) = 9
0.000101 connect(9, {sa_family=AF_INET, sin_port=htons(6600), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)
0.000157 select(10, NULL, [9], [9], {10, 0}) = 0 (Timeout)
10.010389 close(9) = 0
Report
thomas12777
10 years ago
can you please elaborate on this?
i'm able to run it w/o any locally present server as well as with a configured "junk" connection (like 123.45.67.89:1234) and across a present "real" network connection (but my "lowest" upstream is 2MBit...)
> else gui will appear after 10 seconds, reaction to click or any other action will take 10 seconds too
10 seconds are the configured timeout, yes. but mpd_connection_* returns immediately here on connection failure (ie. it doesn't take 10 seconds to figure there's no open server)
Did you try this on a slow connection (the current database representation doesn't fit such connection anyway - i plan to add a model/view designed for slow connections/touch devices) or just with no local server available (but configured to connect one)?
And in the latter case, on what kind of network/stack?
In general you're right about network blocking, but unless you've connected a server, you cannot do anything anyway (still i shall defer the connection to _after_ the map request and also have to move the net connect/access to another thread if even unidirectional commands -play doesn't require a blocked UI sync, manipulating the playlist does- can cause enourmous lags)
Report
Nikoli
10 years ago
Because you do not block icmp with iptables. When I stop firewall, bempc is fast for me too.
Using threads is the best solution imho.
P.S. Do you have public git repo?
Report
thomas12777
10 years ago
Report
Nikoli
10 years ago
Gentoo package: http://pub.nikoli.msk.ru/portage-overlay/media-sound/bempc/bempc-0.4.ebuild
Later can be moved to multimedia overlay.
Another problem (does not exist with kdesu):
$ su prk
$ rm -r /tmp/ksocket-prk/ /var/tmp/kdecache-prk/
$ LANG=C be.mpc
(17210) KIconCache::loadCustomIndexHeader: Empty themes list
("port", ""6600"")
-> ("port", "6600")
(17210) KSycocaPrivate::checkDatabase: We have no database.... launching kdeinit
(17210) KToolInvocation::klauncher: klauncher not running... launching kdeinit
kdeinit4: preparing to launch /usr/lib64/libkdeinit4_klauncher.so
klauncher(17217) kdemain: No DBUS session-bus found. Check if you have started the DBUS server.
kdeinit4: Communication error with launcher. Exiting!
startkdeinitlock(17210)/kdecore (KSycoca) KSycocaPrivate::openDatabase: Trying to open ksycoca from "/var/tmp/kdecache-prk/ksycoca4"
startkdeinitlock(17210)/kdecore (KSycoca) KSycocaPrivate::openDatabase: Could not open ksycoca
startkdeinitlock(17210)/kdecore (KSycoca) KSycocaPrivate::checkDatabase: Still no database...
Ошибка сегментирования
Report