Giter VIP home page Giter VIP logo

ympd's People

Contributors

ajs124 avatar azrdev avatar benjaminhae avatar embhd avatar felixjogris avatar ffontaine avatar florianheinemann avatar govertbuijs avatar iwanders avatar jpleau avatar kamikazow avatar kernald avatar kingcody avatar kurt-vd avatar lesderid avatar mgax avatar nighoo avatar nofre avatar notandy avatar othmar52 avatar phmongeau avatar superbfg7 avatar thereverend403 avatar unknownloner avatar warhog avatar znetstar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ympd's Issues

Cumulative time for Queue

This a enhancement request.
In the queue, on the right is the length of each song. It would be very helpful (in many situations I imagine) to have a total time for all songs.
If you have 3 songs for 3 minutes each, it would show 9 minutes (possibly updating after every song?)

opus format support

When attempting to add opus files, it does not detect them.
Is there a way to support opus files?

Trying to set up nginx reverse proxy

Hi

I am trying to set up a nginx reverse proxy for ympd to use https and allow basic authentication of the service. I did the following:

# https only
server {
    listen       443 ssl;
    server_name  127.0.0.1;
    root /srv/http;
    index index.html index.php index.htm;

    ssl_certificate      cert.crt;
    ssl_certificate_key  cert.key;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m; 

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on; 

    # Without the ^~ the static files like css and js would not load.
    location ^~ /ympd {
         # Basic HTTP auth
         auth_basic "Welcome to ympd on mikupi!";
         auth_basic_user_file /etc/nginx/.htpasswd;
         # Reverse proxy
         proxy_pass http://127.0.0.1:8080;
         # Websocket
         proxy_http_version 1.1;
         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection "upgrade"; 
         # Without this I would get "Not found"
         rewrite /ympd/(.*) /$1 break;
         proxy_redirect off;
    }
}

Trying to debug using Firefox, it seems that the Websocket requests are being denied by the webserver. This is the kind of error that get logged in my /var/log/nginx/error.log:

2015/06/08 23:45:46 [error] 10080#0: *270 directory index of "/srv/http/" is forbidden, client: 192.168.1.11, server: 127.0.0.1, request: "GET / HTTP/1.1", host: "192.168.1.15"
2015/06/08 23:46:46 [error] 10080#0: *316 directory index of "/srv/http/" is forbidden, client: 192.168.1.11, server: 127.0.0.1, request: "GET / HTTP/1.1", host: "192.168.1.15"
2015/06/08 23:47:46 [error] 10080#0: *360 directory index of "/srv/http/" is forbidden, client: 192.168.1.11, server: 127.0.0.1, request: "GET / HTTP/1.1", host: "192.168.1.15"
2015/06/08 23:48:46 [error] 10080#0: *405 directory index of "/srv/http/" is forbidden, client: 192.168.1.11, server: 127.0.0.1, request: "GET / HTTP/1.1", host: "192.168.1.15"
2015/06/08 23:49:47 [error] 10080#0: *452 directory index of "/srv/http/" is forbidden, client: 192.168.1.11, server: 127.0.0.1, request: "GET / HTTP/1.1", host: "192.168.1.15"

Or my /var/log/nginx/access.log:

192.168.1.11 - - [08/Jun/2015:23:57:47 -0300] "GET / HTTP/1.1" 403 141 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0"

Seeing issue #24 it seems reverse proxy with nginx should work, but what am I doing wrong?

How to specify libmpdclient location?

I'm using OSX with Macports, where my installed libs are in /opt/local/lib and /opt/local/include. I tryied:

$ cmake .. -DCMAKE_INSTALL_PREFIX:PATH=/opt/local -DCMAKE_INCLUDE_PATH:PATH=/opt/local/include -DCMAKE_PREFIX_PATH:PATH=/opt/local

Also tried prepending this to cmake_install.cmake:

INCLUDE_DIRECTORIES(/opt/local/include)
LINK_DIRECTORIES(/opt/local/lib)

But still getting error on make

$ make
[ 12%] Built target mkdata
[ 25%] Building C object CMakeFiles/ympd.dir/src/mpd_client.c.o
/Users/rafi/code/c/ympd/src/mpd_client.c:24:10: fatal error: 'mpd/client.h' file not found
#include <mpd/client.h>
         ^
1 error generated.
make[2]: *** [CMakeFiles/ympd.dir/src/mpd_client.c.o] Error 1
make[1]: *** [CMakeFiles/ympd.dir/all] Error 2
make: *** [all] Error 2

HTTP Streaming?

I am wondering if I could use ympd to stream through mpd's built-in http streaming?

Clear queue and add (folder / track / playlist)

It would be useful if the add symbol (+) also gave additional options so that the user could choose between
a) clear queue and add

or

b) append to the end of the queue

Currently - it just appends to the queue

Can't build with make -j

I tried compiling the mongoose release and it fails if I use make -j8.

[ 12%] Generating assets.c
[ 25%] /bin/sh: /home/phmongeau/packages/ympd-git/src/ympd/build/mkdata: No such file or directory
CMakeFiles/ympd.dir/build.make:72: recipe for target 'assets.c' failed
make[2]: *** [assets.c] Error 127
CMakeFiles/Makefile2:98: recipe for tnarget 'CMakeFiles/ympd.dir/all' failed
make[1]: *** [CMakeFiles/ympd.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Building C object CMakeFiles/mkdata.dir/htdocs/mkdata.c.o
Linking C executable mkdata
[ 25%] Built target mkdata
Makefile:116: recipe for target 'all' failed
make: *** [all] Error 2

ympd doesn't take long to build, so I could just specify -j1 in my build script, but I feel like there must be a better way to fix this. Unfortunatly, I'm not familiar with cmake, so I have no idea how to do it myself.

enable notifications in non-webkit browsers

Hey, you currently use "window.webkitNotifications", which obviously don't work in browsers that don't use webkit. I think there is a official html5 notification specification now, but I don't know which browser implements it how, so yeah…
or in short.
current behaviour: notifications don't work in firefox
expected behaviour: notifications work in firefox

Make in debian 7

Debian 7 use libmpdclient2 and not libmpdclient.

htpc@htpc:~/ympd/src/build$ sudo cmake .. -DCMAKE_INSTALL_PREFIX_PATH=/usr
-- The CXX compiler identification is GNU 4.7.2
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:97 (MESSAGE):
  Could NOT find LibMPDClient (missing: LIBMPDCLIENT_LIBRARY
  LIBMPDCLIENT_INCLUDE_DIR)
Call Stack (most recent call first):
  /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:288 (_FPHSA_FAILURE_MESSAGE)
  cmake/FindLibMPDClient.cmake:27 (find_package_handle_standard_args)
  CMakeLists.txt:11 (find_package)

htauth

Hello!

I think it would be great to have an option to protect this with an htauthentication (browser authentication).
Can this be implemented easily?

Use cmake crosscompile option to make it cross-compile friendly

When the host, where the build-process is run, isn't the same as the target running ympd, it is most likely not possible to run mkdata during the build-process.

So, when cross compiling, it would be nice to create a version of mkdata which is a native executable for the host.

Files with commas in the name cannot be played

If a file name contains a comma, the file is listed when browsing the database. However, when I try to add it to the queue, an error popup “Not Found” appears. When I remove the comma from the file name, it works.

songs not listed

I detected, that some songs are not listet in the database-view of ympd, but the database of mpd contains them, because ncmpc lists them. Unfortunately I did't see something special on this songs...

Cannot get ympd to run under unprivileged user

Hi. First off, let me say your web gui is killer, beautiful design and great layout!

I've got it running on Raspbian, but cannot seem to get it to run under an unprivileged user. Under root it works great

$ sudo ./ympd --webport 80
MPD Connecting to 127.0.0.1:6600
MPD connected.

but sudo ./ympd --user pi --webport 80 produces no output on the command line. I can see the process is created

$ ps aux | grep ympd
pi 5697 79.8  0.1   2940   796 ?        R    00:45   1:01 /usr/bin/ympd --user pi --webport 80

but the web interface is not reachable. Am I doing something dumb? Any help is greatly appreciated!

always display artist, album, track number

Hello,

when you have a huge music collection and search for one song, it is very hard to tell, from which band it is (cover songs or original?), or if it is a live/acoustic/instrumental version etc.

So could you please add the artist, album and track number to both the playlist view and the search results?

In case you fear that this will take up too much space, you could group albums in a cool way like (among lots of other players) cantata does:

2014-09-02-214957_1366x768_scrot

Thanks for creating this lightweight webinterface!

volume slider doesn't work

well, ympd works fine, but the volume slider seems to only have 2 possible values: max volume and a really low volume setting.
other mpd client seems to be fine to me.
can this be fixed/investigated?

Passwords with whitespaces

I can't use passwords with spaces in web-gui: it is rejected as incorrect password.
It is possible to run mpd as ympd -h "<password with spaces>@localhost" but as a result my password appears in settings as a part of MPD Host/IP.

If I use only digits, letters(in both upper and lower cases) and punctuation symbols(dot,comma,exclamation mark) web-gui works well.

mopidy

I couldn't see any questions regarding mopidy support so here it is.
Would it be possible? And be it only by using the mpd extension nopidy provides.

Add support for file upload

Can there be a function added that allows for uploading of files to the music folder?
I'm checking the possibilitys for this but it seems LAU is not being supported by the http server you created, is this correct?

disappearing fav icon after login

I noticed the fav icon disappears after logging in.
I added the stuff from #46, and added stunnel.
All works perfectly but I noticed that after the browser is asked to log in the icon disappears.
A minor thing really, but if possible I'd like to iron it out.

Allow Queue reordering

It would be totally great if ympd could support reordering the Queue via drag and drop.

HTTP: Access Authentication

Could you please add either "basic" or "digest" http authentication feature (rfc2617)
As for me it's very necessary feature.

LIBWEBSOCKETS_LIBRARY_STATIC not found

Just installed libwebsockets from aur and I get this error when running cmake

-- The C compiler identification is GNU 4.8.2
-- The CXX compiler identification is GNU 4.8.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.28") 
-- Found LibMPDClient: /usr/lib/libmpdclient.so  
-- Found LibWebSockets: /usr/lib/libwebsockets.so  
-- Found OpenSSL: /usr/lib/libssl.so;/usr/lib/libcrypto.so (found version "1.0.1f") 
-- Found ZLIB: /usr/lib/libz.so (found version "1.2.8") 
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
LIBWEBSOCKETS_LIBRARY_STATIC
    linked by target "ympd" in directory /home/demil133/ympd

-- Configuring incomplete, errors occurred!
See also "/home/demil133/ympd/build/CMakeFiles/CMakeOutput.log".

I thought it could be LIBWEBSOCKETS_LIBRARY_STATIC, that seems like it should be called LIBWEBSOCKETS_LIBRARY_DIR, so I changed it with no luck.

/etc/init.d/ympd - default DAEMON value is wrong

DAEMON is hardcoded to /usr/bin/$NAME, while the default installation path is /usr/local/bin/ympd. The init script should be generated based on the installation path. Also it would be more polite to provide the init file as an example, and not install it in the system's init.d directory, I think.

Configuration file

I am running ympd as a service.

It would be good if there was a configuration file, so I could specify the webport (i.e. change it to 80 from 8080).

I expect this to be a documentation issue :)

Cheers,
Mahesh

Better tablet/touchscreen support

First off, this app is fantastic, great work! Only issue I've come across is that the UI isn't as touch friendly, I can't add a whole album to the queue from my phone/tablet. Running Firefox 29 client-side. Maybe it'd be possible to show the add to queue links on smaller devices rather than having them only show up on hover?

ability to select the output

Hi,
Could you add the ability to select the output?

Thanks for your work. It's the best web gui for mpd.

\Ilgiz.

REST API support?

Is there a way to communicate with the ympd server using regular HTTP requests (not websockets)? e.g. I want to send MPD_API_SET_PAUSE without needing to load the ympd frontend - so I can quickly play/pause.
e.g. http://raspberrypi.local:2938/?command=MPD_API_SET_PAUSE

CLI options issue

I'm noticing a strange behaviour with CLI options:

$ ympd  
MPD Connecting to 127.0.0.1:6600
MPD connected.

But then if I use an explicit port number I got:

$ ympd  -p6600
Mongoose error: Cannot bind to port

What did I get wrong?

Usage behind Apache Proxy

Hey,

i want to use ympd behind an apache2 proxy to have a shorter and more comfortable domain.
This is the vhost i have defined:

<VirtualHost *:80>

    ServerName music

    ProxyRequests Off
    <Proxy *>
            Order deny,allow
            Allow from all
    </Proxy>
    ProxyPass               /       http://mediacenter:9080/
    ProxyPassReverse        /       http://mediacenter:9080/

When i navigate there by browser, it error is "Connection to ympd lost, retrying in 3 seconds". Firefox goes a little bit more into details and complains about "Firefox kann keine Verbindung zu dem Server unter ws://music/ aufbauen. mpd.js:121
"disconnected"

Is there someting i can do?

Thanks!

Playlist Storage?

First of all: Thanks a lot for your work, i love this software.
Second: A feature request: it would be amazing if it was possible to store playlists!

cheers,
t.

Add a poweroff button

Hi,

First of all: great project! Now a feature request by me:

It would be nice if you could implement a shutdown button to gracefully poweroff the Raspi.
Of course the system user has to be privileged but that's only a configuration issue.
Perhaps just call /sbin/poweroff or let the user configure the shutdown command himself (e.g. sudo /sbin/poweroff) with an appropriate sudoers entry.

That would enormously increase the lifetime of the filesystem.

What do you think?

Build fails on OpenBSD

OpenBSD 5.6 i386
gcc 4.2.1 20070719
cmake 2.8.12.2
libmpdclient 2.9

# pwd
/root/ympd/build
# cmake .. -DCMAKE_INSTALL_PREFIX:PATH=/usr
-- The C compiler identification is GNU 4.2.1
-- The CXX compiler identification is GNU 4.2.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.27.1") 
-- Found LibMPDClient: /usr/local/lib/libmpdclient.so.2.0  
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Configuring done
-- Generating done
-- Build files have been written to: /root/ympd/build
# make
Scanning dependencies of target mkdata
[ 12%] Building C object CMakeFiles/mkdata.dir/tools/mkdata.c.o
Linking C executable mkdata
[ 12%] Built target mkdata
[ 25%] Generating assets.c
Scanning dependencies of target ympd
[ 37%] Building C object CMakeFiles/ympd.dir/src/ympd.c.o
[ 50%] Building C object CMakeFiles/ympd.dir/src/mpd_client.c.o
/root/ympd/src/mpd_client.c:24:24: error: mpd/client.h: No such file or directory
/root/ympd/src/mpd_client.c: In function 'callback_mpd':
/root/ympd/src/mpd_client.c:61: warning: implicit declaration of function 'mpd_run_update'
/root/ympd/src/mpd_client.c:64: warning: implicit declaration of function 'mpd_run_toggle_pause'
/root/ympd/src/mpd_client.c:67: warning: implicit declaration of function 'mpd_run_previous'
/root/ympd/src/mpd_client.c:70: warning: implicit declaration of function 'mpd_run_next'
/root/ympd/src/mpd_client.c:73: warning: implicit declaration of function 'mpd_run_play'
/root/ympd/src/mpd_client.c:76: warning: implicit declaration of function 'mpd_run_stop'
/root/ympd/src/mpd_client.c:79: warning: implicit declaration of function 'mpd_run_clear'
/root/ympd/src/mpd_client.c:83: warning: implicit declaration of function 'mpd_run_delete_id'
/root/ympd/src/mpd_client.c:87: warning: implicit declaration of function 'mpd_run_play_id'
/root/ympd/src/mpd_client.c:91: warning: implicit declaration of function 'mpd_run_random'
/root/ympd/src/mpd_client.c:95: warning: implicit declaration of function 'mpd_run_repeat'
/root/ympd/src/mpd_client.c:99: warning: implicit declaration of function 'mpd_run_consume'
/root/ympd/src/mpd_client.c:103: warning: implicit declaration of function 'mpd_run_single'
/root/ympd/src/mpd_client.c:107: warning: implicit declaration of function 'mpd_run_crossfade'
/root/ympd/src/mpd_client.c:111: warning: implicit declaration of function 'mpd_run_set_volume'
/root/ympd/src/mpd_client.c:115: warning: implicit declaration of function 'mpd_run_seek_id'
/root/ympd/src/mpd_client.c:122: warning: unknown conversion type character 'm' in format
/root/ympd/src/mpd_client.c:122: warning: too many arguments for format
/root/ympd/src/mpd_client.c:129: warning: unknown conversion type character 'm' in format
/root/ympd/src/mpd_client.c:129: warning: too many arguments for format
/root/ympd/src/mpd_client.c:131: warning: implicit declaration of function 'mpd_run_add'
/root/ympd/src/mpd_client.c:136: warning: unknown conversion type character 'm' in format
/root/ympd/src/mpd_client.c:136: warning: too many arguments for format
/root/ympd/src/mpd_client.c:138: warning: implicit declaration of function 'mpd_run_add_id'
/root/ympd/src/mpd_client.c:145: warning: unknown conversion type character 'm' in format
/root/ympd/src/mpd_client.c:145: warning: too many arguments for format
/root/ympd/src/mpd_client.c:147: warning: implicit declaration of function 'mpd_run_load'
/root/ympd/src/mpd_client.c:152: warning: unknown conversion type character 'm' in format
/root/ympd/src/mpd_client.c:152: warning: too many arguments for format
/root/ympd/src/mpd_client.c:162: warning: unknown conversion type character 'm' in format
/root/ympd/src/mpd_client.c:162: warning: too many arguments for format
/root/ympd/src/mpd_client.c:178: warning: unknown conversion type character 'm' in format
/root/ympd/src/mpd_client.c:178: warning: too many arguments for format
/root/ympd/src/mpd_client.c:191: warning: implicit declaration of function 'mpd_connection_get_error'
/root/ympd/src/mpd_client.c:191: error: 'MPD_ERROR_SUCCESS' undeclared (first use in this function)
/root/ympd/src/mpd_client.c:191: error: (Each undeclared identifier is reported only once
/root/ympd/src/mpd_client.c:191: error: for each function it appears in.)
/root/ympd/src/mpd_client.c:194: warning: implicit declaration of function 'mpd_connection_get_error_message'
/root/ympd/src/mpd_client.c:194: warning: format '%s' expects type 'char *', but argument 4 has type 'int'
/root/ympd/src/mpd_client.c:197: warning: implicit declaration of function 'mpd_connection_clear_error'
/root/ympd/src/mpd_client.c: In function 'mpd_poll':
/root/ympd/src/mpd_client.c:268: warning: implicit declaration of function 'mpd_connection_new'
/root/ympd/src/mpd_client.c:268: warning: assignment makes pointer from integer without a cast
/root/ympd/src/mpd_client.c:275: error: 'MPD_ERROR_SUCCESS' undeclared (first use in this function)
/root/ympd/src/mpd_client.c:276: warning: format '%s' expects type 'char *', but argument 3 has type 'int'
/root/ympd/src/mpd_client.c:283: warning: implicit declaration of function 'mpd_run_password'
/root/ympd/src/mpd_client.c:285: warning: format '%s' expects type 'char *', but argument 3 has type 'int'
/root/ympd/src/mpd_client.c:293: warning: implicit declaration of function 'mpd_connection_set_timeout'
/root/ympd/src/mpd_client.c:303: warning: implicit declaration of function 'mpd_connection_free'
/root/ympd/src/mpd_client.c: At top level:
/root/ympd/src/mpd_client.c:315: warning: 'struct mpd_song' declared inside parameter list
/root/ympd/src/mpd_client.c:315: warning: its scope is only this definition or declaration, which is probably not what you want
/root/ympd/src/mpd_client.c: In function 'mpd_get_title':
/root/ympd/src/mpd_client.c:319: warning: implicit declaration of function 'mpd_song_get_tag'
/root/ympd/src/mpd_client.c:319: error: 'MPD_TAG_TITLE' undeclared (first use in this function)
/root/ympd/src/mpd_client.c:321: warning: implicit declaration of function 'mpd_song_get_uri'
/root/ympd/src/mpd_client.c: In function 'mpd_put_state':
/root/ympd/src/mpd_client.c:332: warning: implicit declaration of function 'mpd_run_status'
/root/ympd/src/mpd_client.c:332: warning: assignment makes pointer from integer without a cast
/root/ympd/src/mpd_client.c:334: warning: format '%s' expects type 'char *', but argument 3 has type 'int'
/root/ympd/src/mpd_client.c:346: warning: implicit declaration of function 'mpd_status_get_state'
/root/ympd/src/mpd_client.c:347: warning: implicit declaration of function 'mpd_status_get_volume'
/root/ympd/src/mpd_client.c:348: warning: implicit declaration of function 'mpd_status_get_repeat'
/root/ympd/src/mpd_client.c:349: warning: implicit declaration of function 'mpd_status_get_single'
/root/ympd/src/mpd_client.c:350: warning: implicit declaration of function 'mpd_status_get_crossfade'
/root/ympd/src/mpd_client.c:351: warning: implicit declaration of function 'mpd_status_get_consume'
/root/ympd/src/mpd_client.c:352: warning: implicit declaration of function 'mpd_status_get_random'
/root/ympd/src/mpd_client.c:353: warning: implicit declaration of function 'mpd_status_get_song_pos'
/root/ympd/src/mpd_client.c:354: warning: implicit declaration of function 'mpd_status_get_elapsed_time'
/root/ympd/src/mpd_client.c:355: warning: implicit declaration of function 'mpd_status_get_total_time'
/root/ympd/src/mpd_client.c:356: warning: implicit declaration of function 'mpd_status_get_song_id'
/root/ympd/src/mpd_client.c:359: warning: implicit declaration of function 'mpd_status_get_queue_version'
/root/ympd/src/mpd_client.c:360: warning: implicit declaration of function 'mpd_status_free'
/root/ympd/src/mpd_client.c: In function 'mpd_put_current_song':
/root/ympd/src/mpd_client.c:370: warning: implicit declaration of function 'mpd_run_current_song'
/root/ympd/src/mpd_client.c:370: warning: assignment makes pointer from integer without a cast
/root/ympd/src/mpd_client.c:375: warning: implicit declaration of function 'mpd_song_get_pos'
/root/ympd/src/mpd_client.c:377: warning: passing argument 1 of 'mpd_get_title' from incompatible pointer type
/root/ympd/src/mpd_client.c:379: error: 'MPD_TAG_ARTIST' undeclared (first use in this function)
/root/ympd/src/mpd_client.c:379: warning: comparison between pointer and integer
/root/ympd/src/mpd_client.c:382: warning: passing argument 3 of 'json_emit_quoted_str' makes pointer from integer without a cast
/root/ympd/src/mpd_client.c:385: error: 'MPD_TAG_ALBUM' undeclared (first use in this function)
/root/ympd/src/mpd_client.c:385: warning: comparison between pointer and integer
/root/ympd/src/mpd_client.c:388: warning: passing argument 3 of 'json_emit_quoted_str' makes pointer from integer without a cast
/root/ympd/src/mpd_client.c:392: warning: implicit declaration of function 'mpd_song_free'
/root/ympd/src/mpd_client.c:393: warning: implicit declaration of function 'mpd_response_finish'
/root/ympd/src/mpd_client.c: In function 'mpd_put_queue':
/root/ympd/src/mpd_client.c:404: warning: implicit declaration of function 'mpd_send_list_queue_range_meta'
/root/ympd/src/mpd_client.c:405: warning: format '%s' expects type 'char *', but argument 3 has type 'int'
/root/ympd/src/mpd_client.c:405: warning: format '%s' expects type 'char *', but argument 4 has type 'int'
/root/ympd/src/mpd_client.c:409: warning: implicit declaration of function 'mpd_recv_entity'
/root/ympd/src/mpd_client.c:409: warning: assignment makes pointer from integer without a cast
/root/ympd/src/mpd_client.c:412: warning: implicit declaration of function 'mpd_entity_get_type'
/root/ympd/src/mpd_client.c:412: error: 'MPD_ENTITY_TYPE_SONG' undeclared (first use in this function)
/root/ympd/src/mpd_client.c:413: warning: implicit declaration of function 'mpd_entity_get_song'
/root/ympd/src/mpd_client.c:413: warning: assignment makes pointer from integer without a cast
/root/ympd/src/mpd_client.c:416: warning: implicit declaration of function 'mpd_song_get_id'
/root/ympd/src/mpd_client.c:420: warning: implicit declaration of function 'mpd_song_get_duration'
/root/ympd/src/mpd_client.c:422: warning: passing argument 1 of 'mpd_get_title' from incompatible pointer type
/root/ympd/src/mpd_client.c:425: warning: implicit declaration of function 'mpd_entity_free'
/root/ympd/src/mpd_client.c: In function 'mpd_put_browse':
/root/ympd/src/mpd_client.c:442: warning: implicit declaration of function 'mpd_send_list_meta'
/root/ympd/src/mpd_client.c:443: warning: format '%s' expects type 'char *', but argument 3 has type 'int'
/root/ympd/src/mpd_client.c:443: warning: format '%s' expects type 'char *', but argument 4 has type 'int'
/root/ympd/src/mpd_client.c:447: warning: assignment makes pointer from integer without a cast
/root/ympd/src/mpd_client.c:468: error: 'MPD_ENTITY_TYPE_UNKNOWN' undeclared (first use in this function)
/root/ympd/src/mpd_client.c:471: error: 'MPD_ENTITY_TYPE_SONG' undeclared (first use in this function)
/root/ympd/src/mpd_client.c:472: warning: assignment makes pointer from integer without a cast
/root/ympd/src/mpd_client.c:474: warning: passing argument 3 of 'json_emit_quoted_str' makes pointer from integer without a cast
/root/ympd/src/mpd_client.c:478: warning: passing argument 1 of 'mpd_get_title' from incompatible pointer type
/root/ympd/src/mpd_client.c:482: error: 'MPD_ENTITY_TYPE_DIRECTORY' undeclared (first use in this function)
/root/ympd/src/mpd_client.c:483: warning: implicit declaration of function 'mpd_entity_get_directory'
/root/ympd/src/mpd_client.c:483: warning: assignment makes pointer from integer without a cast
/root/ympd/src/mpd_client.c:486: warning: implicit declaration of function 'mpd_directory_get_path'
/root/ympd/src/mpd_client.c:486: warning: passing argument 3 of 'json_emit_quoted_str' makes pointer from integer without a cast
/root/ympd/src/mpd_client.c:490: error: 'MPD_ENTITY_TYPE_PLAYLIST' undeclared (first use in this function)
/root/ympd/src/mpd_client.c:491: warning: implicit declaration of function 'mpd_entity_get_playlist'
/root/ympd/src/mpd_client.c:491: warning: assignment makes pointer from integer without a cast
/root/ympd/src/mpd_client.c:493: warning: implicit declaration of function 'mpd_playlist_get_path'
/root/ympd/src/mpd_client.c:493: warning: passing argument 3 of 'json_emit_quoted_str' makes pointer from integer without a cast
/root/ympd/src/mpd_client.c:501: error: 'MPD_ERROR_SUCCESS' undeclared (first use in this function)
/root/ympd/src/mpd_client.c:502: warning: format '%s' expects type 'char *', but argument 3 has type 'int'
/root/ympd/src/mpd_client.c: In function 'mpd_search':
/root/ympd/src/mpd_client.c:521: warning: implicit declaration of function 'mpd_search_db_songs'
/root/ympd/src/mpd_client.c:521: error: 'false' undeclared (first use in this function)
/root/ympd/src/mpd_client.c:522: warning: format '%s' expects type 'char *', but argument 3 has type 'int'
/root/ympd/src/mpd_client.c:522: warning: format '%s' expects type 'char *', but argument 4 has type 'int'
/root/ympd/src/mpd_client.c:523: warning: implicit declaration of function 'mpd_search_add_any_tag_constraint'
/root/ympd/src/mpd_client.c:523: error: 'MPD_OPERATOR_DEFAULT' undeclared (first use in this function)
/root/ympd/src/mpd_client.c:524: warning: format '%s' expects type 'char *', but argument 3 has type 'int'
/root/ympd/src/mpd_client.c:524: warning: format '%s' expects type 'char *', but argument 4 has type 'int'
/root/ympd/src/mpd_client.c:525: warning: implicit declaration of function 'mpd_search_commit'
/root/ympd/src/mpd_client.c:526: warning: format '%s' expects type 'char *', but argument 3 has type 'int'
/root/ympd/src/mpd_client.c:526: warning: format '%s' expects type 'char *', but argument 4 has type 'int'
/root/ympd/src/mpd_client.c:530: warning: implicit declaration of function 'mpd_recv_song'
/root/ympd/src/mpd_client.c:530: warning: assignment makes pointer from integer without a cast
/root/ympd/src/mpd_client.c:532: warning: passing argument 3 of 'json_emit_quoted_str' makes pointer from integer without a cast
/root/ympd/src/mpd_client.c:536: warning: passing argument 1 of 'mpd_get_title' from incompatible pointer type
*** Error 1 in . (CMakeFiles/ympd.dir/build.make:105 'CMakeFiles/ympd.dir/src/mpd_client.c.o': /usr/bin/cc  -DNS_ENABLE_IPV6 -std=gnu99 -Wal...)
*** Error 1 in . (CMakeFiles/Makefile2:99 'CMakeFiles/ympd.dir/all')
*** Error 1 in /root/ympd/build (Makefile:117 'all')

IPv6 Support

ympd doesn't seem to support IPv6:

 $ ympd -w 8080 &
 MPD Connecting to 127.0.0.1:6600
 MPD connected.
 $ netstat -an | grep 8080
 tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN

I would have expected to see an additional line like this:

tcp6       0      0 :::8080                 :::*                    LISTEN

mpd, by the way, supports IPv6 fine.

Compilation fails on FreeBSD - 'error.h' file not found

Hi,

The compliation fails at the make step on FreeBSD 10.0-RELEASE:

marduk# cd ympd
marduk# mkdir build && cd build
marduk# mkdir -p build; cd build
marduk# pwd
/root/ympd/build
marduk# cmake .. -DCMAKE_INSTALL_PREFIX_PATH=/usr
-- The C compiler identification is Clang 3.3.0
-- The CXX compiler identification is Clang 3.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/CC
-- Check for working CXX compiler: /usr/bin/CC -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found PkgConfig: /usr/local/bin/pkg-config (found version "0.28")
-- Found LibMPDClient: /usr/local/lib/libmpdclient.so
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
CMake Warning (dev) at CMakeLists.txt:32 (get_target_property):
  Policy CMP0026 is not set: Disallow use of the LOCATION target property.
  Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  The LOCATION property should not be read from target "mkdata".  Use the
  target name directly with add_custom_command, or use the generator
  expression $<TARGET_FILE>, as appropriate.

This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_INSTALL_PREFIX_PATH


-- Build files have been written to: /root/ympd/build
marduk# make
Scanning dependencies of target mkdata
[ 12%] Building C object CMakeFiles/mkdata.dir/htdocs/mkdata.c.o
/root/ympd/htdocs/mkdata.c:10:10: fatal error: 'error.h' file not found
#include <error.h>
         ^
1 error generated.
*** Error code 1

Stop.
make[2]: stopped in /root/ympd/build
*** Error code 1

Stop.
make[1]: stopped in /root/ympd/build
*** Error code 1

Stop.
make: stopped in /root/ympd/build

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.