BE::MPC

Audioplayers

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

3
Score 72.2%
Description:

-- 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
Last changelog:

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

9

TheRob

9 years ago

Glad to hear we are getting this to gentoo :)

So this is the overlay it will exist in
right?
* multimedia [Git ] (git://gitorious.org/gentoo-multimedia/gentoo-multimedia.git

//Robert

Report

Nikoli

9 years ago

Yes :)

Now ebuild for 0.4 works fine for 0.5 after renaming.

Report

C

thomas12777

9 years ago

That's common and applies to all KDE applications.

While be.mpc is NOT a KDE application, Qt will invoke it through the platform plugins (if it figures: you're on some KDE session).
KDE tries to hook it's dbus stuff (be.mpc does not link qdbus) and then cannot acces or launch it's server -> fail.
It's just like this.

Long story short:
if you want to run KDE or dekstop aware Qt applications, you'll have to use a more sophisicated user switching.

Report

Nikoli

9 years ago

It does not build with qt-gui-4.6.3 + libdmpclient-2.1:
make -j1
x86_64-pc-linux-gnu-g++ -c -pipe -march=core2 -O2 -pipe -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -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
x86_64-pc-linux-gnu-g++ -c -pipe -march=core2 -O2 -pipe -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -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
x86_64-pc-linux-gnu-g++ -c -pipe -march=core2 -O2 -pipe -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -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
mpc.cpp: In member function ‘virtual bool MPC::eventFilter(QObject*, QEvent*)’:
mpc.cpp:898: error: ‘class QLineEdit’ has no member named ‘placeholderText’
mpc.cpp: In member function ‘void MPC::showDatabase()’:
mpc.cpp:1277: error: ‘class QLineEdit’ has no member named ‘setPlaceholderText’
mpc.cpp: In member function ‘void MPC::showPlaylist()’:
mpc.cpp:1306: error: ‘class QLineEdit’ has no member named ‘setPlaceholderText’
make: *** [mpc.o] Error 1

P.S. Please use bempc-0.3.tar.xz archive name and bempc-0.3 dir name.

Report

C

thomas12777

9 years ago

> P.S. Please use bempc-0.3.tar.xz archive name and bempc-0.3 dir name.

Is there any rational behind this beyond eg. the requirements of a particular package system?

Report

Nikoli

9 years ago

Yes, 'name-version.tar' is tradition in nix world, 'be.mpc', 'be::mpc', 'be$!@\'.#"&?mpc' are not supported package names in most distros.

I am packaging for Gentoo your mpd client. If you will use 'bempc-0.3.tar.xz', my ebuilds will be much smaller and cleaner.

P.S. '.txz' is short form of tar.xz, not tar.bz2:
$ file 137091-be.mpc-0.2a.txz
137091-be.mpc-0.2a.txz: bzip2 compressed data, block size = 900k

https://secure.wikimedia.org/wikipedia/en/wiki/Tar.xz

Report

C

thomas12777

9 years ago

> Yes, 'name-version.tar' is tradition in nix world, 'be.mpc', 'be::mpc', 'be$!@\'.#"&?mpc' are not supported package names in most distros.

Sounds like a superflous restriction (ie: bad scripting ;-)

Guess it won't hurt (and i've no package experience, so am not in position for an informed discussion...)

> P.S. '.txz' is short form of tar.xz, not tar.bz2:

Yes, i'm aware of this ;-)
(0.1 & 0.2 actually were lzma, was apparently a typo on 0.2a - after all, it's just the shift key...)

Report

Nikoli

9 years ago

>Sounds like a superflous restriction (ie: bad scripting ;-)
"Why should I use pedestrian crossings on the highway with 5 lanes? You talk like a man with brittle bones."
ie: Will you ask why you should brush your teeth every day?
Exactly the same "superfluous" restrictions. :P

>Guess it won't hurt
mkdir /tmp/123 && cd /tmp/123
tar xvf ~/bempc-0.1.tar
tar xvf ~/bempc-0.2.tar

>and i've no package experience
But I have a lot ;)

Report

acidrums4

9 years ago

I get this when I run make:

mpc.cpp: In member function ‘virtual bool MPC::eventFilter(QObject*, QEvent*)’:
mpc.cpp:898: error: ‘class QLineEdit’ no tiene un miembro llamado ‘placeholderText’
mpc.cpp: In member function ‘void MPC::showDatabase()’:
mpc.cpp:1277: error: ‘class QLineEdit’ no tiene un miembro llamado ‘setPlaceholderText’
mpc.cpp: In member function ‘void MPC::showPlaylist()’:
mpc.cpp:1306: error: ‘class QLineEdit’ no tiene un miembro llamado ‘setPlaceholderText’
make: *** [mpc.o] Error 1

Portage says that I have qt 4-6, and libmpdclient 2.3 I believe:

x11-libs/qt-core-4.6.3
media-libs/libmpdclient-2.3

Report

C

thomas12777

9 years ago

Sorry, forgot the placeholder was not supported on 4.6, should be fixed now.

Report

Nikoli

9 years ago

Now it builds with gcc and clang, but works _very_ slow, also clang shows some warnings:
/usr/bin/clang++ -c -pipe -march=core2 -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -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 playlist.o playlist.cpp
In file included from mpc.cpp:54:
In file included from ./mpd_items.h:25:
./mpc.h:22:1: warning: class 'mpd_connection' was previously declared as a struct [-Wmismatched-tags]
class mpd_connection;
^~~~~
struct
In file included from mpc.cpp:49:
In file included from /usr/include/mpd/client.h:70:
/usr/include/mpd/sticker.h:45:8: note: previous use is here
struct mpd_connection;
^
In file included from mpc.cpp:54:
In file included from ./mpd_items.h:25:
./mpc.h:23:1: warning: class 'mpd_song' was previously declared as a struct [-Wmismatched-tags]
class mpd_song;
^~~~~
struct
In file included from mpc.cpp:49:
In file included from /usr/include/mpd/client.h:60:
/usr/include/mpd/player.h:45:8: note: previous use is here
struct mpd_song;
^
In file included from playlist.cpp:30:
./mpc.h:22:1: warning: class 'mpd_connection' was previously declared as a struct [-Wmismatched-tags]
class mpd_connection;
^~~~~
struct
In file included from playlist.cpp:27:
In file included from /usr/include/mpd/client.h:70:
/usr/include/mpd/sticker.h:45:8: note: previous use is here
struct mpd_connection;
^
In file included from playlist.cpp:30:
./mpc.h:23:1: warning: class 'mpd_song' was previously declared as a struct [-Wmismatched-tags]
class mpd_song;
^~~~~
struct
In file included from playlist.cpp:27:
In file included from /usr/include/mpd/client.h:60:
/usr/include/mpd/player.h:45:8: note: previous use is here
struct mpd_song;
^
playlist.cpp:129:49: warning: unused parameter 'option' [-Wunused-parameter]
QSize sizeHint( const QStyleOptionViewItem &option, const QModelIndex & index ) const
^
3 warnings generated.
/usr/bin/clang++ -c -pipe -march=core2 -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -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 slider.o slider.cpp
2 warnings generated.
/usr/bin/clang++ -c -pipe -march=core2 -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -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 button.o button.cpp
/usr/bin/clang++ -c -pipe -march=core2 -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -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 player.o player.cpp
slider.cpp:83:34: warning: unused parameter 'pe' [-Wunused-parameter]
Slider::paintEvent( QPaintEvent *pe )
^
/usr/bin/clang++ -c -pipe -march=core2 -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -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 label.o label.cpp
1 warning generated.
/usr/bin/clang++ -c -pipe -march=core2 -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -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 database.o database.cpp
In file included from player.cpp:28:
./mpc.h:22:1: warning: class 'mpd_connection' was previously declared as a struct [-Wmismatched-tags]
class mpd_connection;
^~~~~
struct
In file included from player.cpp:24:
In file included from /usr/include/mpd/client.h:70:
/usr/include/mpd/sticker.h:45:8: note: previous use is here
struct mpd_connection;
^
In file included from player.cpp:28:
./mpc.h:23:1: warning: class 'mpd_song' was previously declared as a struct [-Wmismatched-tags]
class mpd_song;
^~~~~
struct
In file included from player.cpp:24:
In file included from /usr/include/mpd/client.h:60:
/usr/include/mpd/player.h:45:8: note: previous use is here
struct mpd_song;
^
player.cpp:38:26: warning: unused parameter 'parent' [-Wunused-parameter]
Player::Player( QWidget *parent )
^
3 warnings generated.
/usr/bin/clang++ -c -pipe -march=core2 -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -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 playlistmodel.o playlistmodel.cpp
label.cpp:76:33: warning: unused parameter 'pe' [-Wunused-parameter]
Label::paintEvent( QPaintEvent *pe )
^
1 warning generated.
/usr/bin/clang++ -c -pipe -march=core2 -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -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 sorter.o sorter.cpp
/usr/bin/clang++ -c -pipe -march=core2 -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -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 mpd_settings.o mpd_settings.cpp
/usr/bin/clang++ -c -pipe -march=core2 -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -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 navigator.o navigator.cpp
sorter.cpp:194:6: warning: unused function 'showAction' [-Wunused-function]
void showAction( int id, const QWidget *widget )
^
1 warning generated.

Report

Nikoli

9 years ago

Sorry, did not see your comment, same problem here.

Report

bigbrovar

9 years ago

Thanks Works like a charm

Report

bigbrovar

9 years ago

I tried figuring out how to install this but I just could not. It would be cool if you add a readme somewhere which guide users on how this can be installed.

Report

C

thomas12777

9 years ago

See the just added install instructions :)

Report

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

12345678910
5
product-maker lionhater Feb 15 2012 9 excellent
product-maker deabru Jan 18 2011 9 excellent
product-maker plushcube Jan 10 2011 9 excellent
product-maker cochisepoeta Jan 09 2011 9 excellent
product-maker TheRob Jan 09 2011 9 excellent
product-maker Base: 4 x 5.0 Ratings
kbo
Nov 05 2011
TheRob
Jan 26 2011
plushcube
Jan 10 2011
File (click to download) Version Description PackagetypeArchitectureRelease Channel Downloads Date Filesize DL OCS-Install MD5SUM
*Needs pling-store or ocs-url to install things
Pling
0 Affiliates
Details
license
version
0.11
updated Feb 05 2013
added Jan 06 2011
downloads 24h
0
mediaviews 24h 0
pageviews 24h 0