GithubHelp home page GithubHelp logo

terba / slimmer Goto Github PK

View Code? Open in Web Editor NEW
33.0 33.0 7.0 229 KB

User interface controller for Logitech Media Server (aka SlimServer, Squeezebox Server, SqueezeCenter)

License: GNU General Public License v3.0

C++ 74.25% CMake 0.18% C 25.40% Shell 0.16%

slimmer's People

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

slimmer's Issues

Alarm clock

Slimmer should support LMS alarm clock features.

Wiki: IR remote

A new page has to be made about connecting slimmer and lirc

Backlight support

Managing the backlight of the LCD using LCDd's backlight commands. Turn off if not playing for a while and turn on if activity detected or playing started.

Switch player on/off with button

Enhance slimmer such that e.g. a long forward press switches off the player (only player, not the raspberry).
When off a press of the forward button starts the player.

Song info feature

Adding a song info feature to the menu to show the details of the played track.

Server Load

Slimmer keeps the LMS server which is hosted on a different rpi1 fairly busy. So much so that the core temperature of the server is 4 deg higher when slimmer is running on the client.
Can slimmer be more efficient with the server?

Different screen sizes

Currently Slimmer is optimized for 2004 displays, but it would be easy to handle all kind of display sizes.

Cannot install: cannot find libftdi.tcz on any of the repos

Hi there @terba !

I'm currently trying to install slimmer on my raspberry pi4 running pcp7.0.0.

Following the wiki I can't get past step 6: I cannot seem to download libftdi.tcz

Any suggestions? Slimmer looks great and I'd love to get it running on my pi.

If you need any more info from me, do let me know.

Thanks!
Paul

Multiple input devices

Slimmer should read more input devices at once. This will allow building a player with physical buttons and encoder + IR remote control.

show volume bar when volume changes

Currently the volume bar is displayed when the volume is changed by the rotary encoder.
Enhance slimmer such that the volume bar shows up when volume is changed via the server.

Slimmer don't compile on Debian 9 with pixel raspbian dessktop

Hey Balázs.

I have another little "make" problem on an Raspi 2 with the new Raspbian Pixel Desktop with Debian 9 Scretch:

$ make -- Configuring done -- Generating done -- Build files have been written to: /usr/local/src/slimmer/slimmer-build Scanning dependencies of target slimmer [ 4%] Building CXX object CMakeFiles/slimmer.dir/Button.cpp.o [ 8%] Building CXX object CMakeFiles/slimmer.dir/Config.cpp.o [ 12%] Building CXX object CMakeFiles/slimmer.dir/Controller.cpp.o [ 16%] Building CXX object CMakeFiles/slimmer.dir/MenuItem.cpp.o [ 20%] Building CXX object CMakeFiles/slimmer.dir/Player.cpp.o [ 24%] Building CXX object CMakeFiles/slimmer.dir/Screen.cpp.o [ 28%] Building CXX object CMakeFiles/slimmer.dir/ScreenError.cpp.o [ 32%] Building CXX object CMakeFiles/slimmer.dir/ScreenMenu.cpp.o [ 36%] Building CXX object CMakeFiles/slimmer.dir/ScreenNowPlaying.cpp.o [ 40%] Building CXX object CMakeFiles/slimmer.dir/ScreenVolume.cpp.o [ 44%] Building CXX object CMakeFiles/slimmer.dir/Server.cpp.o [ 48%] Building CXX object CMakeFiles/slimmer.dir/json/jsoncpp.cpp.o [ 52%] Building CXX object CMakeFiles/slimmer.dir/jsonrpccpp/client/batchcall.cpp.o [ 56%] Building CXX object CMakeFiles/slimmer.dir/jsonrpccpp/client/batchresponse.cpp.o [ 60%] Building CXX object CMakeFiles/slimmer.dir/jsonrpccpp/client/client.cpp.o [ 64%] Building CXX object CMakeFiles/slimmer.dir/jsonrpccpp/client/connectors/httpclient.cpp.o [ 68%] Building CXX object CMakeFiles/slimmer.dir/jsonrpccpp/client/rpcprotocolclient.cpp.o [ 72%] Building CXX object CMakeFiles/slimmer.dir/jsonrpccpp/common/errors.cpp.o [ 76%] Building CXX object CMakeFiles/slimmer.dir/jsonrpccpp/common/exception.cpp.o [ 80%] Building CXX object CMakeFiles/slimmer.dir/jsonrpccpp/common/procedure.cpp.o [ 84%] Building CXX object CMakeFiles/slimmer.dir/jsonrpccpp/common/specificationparser.cpp.o [ 88%] Building CXX object CMakeFiles/slimmer.dir/jsonrpccpp/common/specificationwriter.cpp.o [ 92%] Building CXX object CMakeFiles/slimmer.dir/main.cpp.o In file included from /usr/local/src/slimmer/main.cpp:28:0: /usr/local/src/slimmer/libev/ev.c:1825:31: warning: ‘ev_default_loop_ptr’ initialized and declared ‘extern’ EV_API_DECL struct ev_loop *ev_default_loop_ptr = 0; /* needs to be initialised to make it a definition despite extern */ ^~~~~~~~~~~~~~~~~~~ [ 96%] Building CXX object CMakeFiles/slimmer.dir/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp.o [100%] Linking CXX executable slimmer CMakeFiles/slimmer.dir/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp.o (symbol from plugin): In function info_arch':
(.text+0x0): multiple definition of main' CMakeFiles/slimmer.dir/main.cpp.o (symbol from plugin):(.text+0x0): first defined here collect2: error: ld returned 1 exit status CMakeFiles/slimmer.dir/build.make:692: recipe for target 'slimmer' failed make[2]: *** [slimmer] Error 1 CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/slimmer.dir/all' failed make[1]: *** [CMakeFiles/slimmer.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2
Can you help?

Regards Markus

doesn't compile on Debian

pi@audiobox:/slimmer $ mkdir 20170708
pi@audiobox:
/slimmer $ cd 20170708/
pi@audiobox:/slimmer/20170708 $ git clone
https://github.com/terba/slimmer.git
Klone nach 'slimmer'...
remote: Counting objects: 225, done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 225 (delta 9), reused 3 (delta 0), pack-reused 195
Empfange Objekte: 100% (225/225), 252.01 KiB | 0 bytes/s, Fertig.
Löse Unterschiede auf: 100% (89/89), Fertig.
Prüfe Konnektivität... Fertig.
pi@audiobox:
/slimmer/20170708 $ mkdir slimmer-build
pi@audiobox:/slimmer/20170708 $ cd slimmer-build
pi@audiobox:
/slimmer/20170708/slimmer-build $ cmake
-DCMAKE_BUILD_TYPE=Release ../slimmer
-- The CXX compiler identification is GNU 4.9.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
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to:
/home/pi/slimmer/20170708/slimmer-build
pi@audiobox:~/slimmer/20170708/slimmer-build $ make
Scanning dependencies of target slimmer
[ 4%] Building CXX object CMakeFiles/slimmer.dir/Button.cpp.o
[ 8%] Building CXX object CMakeFiles/slimmer.dir/Config.cpp.o
/home/pi/slimmer/20170708/slimmer/Config.cpp: In static member function
‘static void Config::discoverLMS()’:
/home/pi/slimmer/20170708/slimmer/Config.cpp:163:73: error:
‘runtime_error’ was not declared in this scope
throw runtime_error("Can not create discovery socket. Errno: " +
errno);
^
/home/pi/slimmer/20170708/slimmer/Config.cpp:167:78: error:
‘runtime_error’ was not declared in this scope
throw runtime_error("Can not set discovery socket options. Errno: " +
errno);
^
/home/pi/slimmer/20170708/slimmer/Config.cpp:173:85: error:
‘runtime_error’ was not declared in this scope
throw runtime_error("Can not set discovery socket timeout option.
Errno: " + errno);
^
/home/pi/slimmer/20170708/slimmer/Config.cpp:181:71: error:
‘runtime_error’ was not declared in this scope
throw runtime_error("Can not send discovery packet. Errno: " + errno);
^
CMakeFiles/slimmer.dir/build.make:86: recipe for target
'CMakeFiles/slimmer.dir/Config.cpp.o' failed
make[2]: *** [CMakeFiles/slimmer.dir/Config.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/slimmer.dir/all'
failed
make[1]: *** [CMakeFiles/slimmer.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

make input consistent

in the volume input a right turn of the encoder means (volume) "up"
in the menu section it means "down".
please make slimmer react consistently.

this inconsistency becomes particularly noticeable when using a remote or buttons instead of a rotary encoder,

Fast forward/backward

Using the long back and long forward actions on the Now Playing screen should seek in the current track.

[ERROR] LCDd communication problem: LCD Error : Network type not supported on picorePlayer 6.1.0

Network type not supported on piCorePlayer 6.1.0 / Slimmer on Rpi4 with i2C LCD display hd44780.
Welcome/goodby message is well visible and working on startup.
Server is running and listening:

tc@piCorePlayer:~$ ps -ef | grep -i lcd
8272 nobody 0:00 /usr/local/sbin/LCDd -c /usr/local/etc/LCDd.conf
8409 tc 0:00 grep -i lcd

and

tc@piCorePlayer:~$ sudo netstat -tulpn | grep LISTEN
netstat: /proc/net/tcp6: No such file or directory
netstat: /proc/net/udp6: No such file or directory
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 7903/httpd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 7836/sshd
tcp 0 0 127.0.0.1:13666 0.0.0.0:* LISTEN 8272/LCDd

but Slimmer not running correctly. Tried with config. file and arg parameters:
tc@piCorePlayer:~$ slimmer -v -s 192.168.1.202 -p 9000 -l 127.0.0.1 -P 13666 -i /dev/pikeyd
Configuration:
LMS: 192.168.1.202:9000
LCDd: 127.0.0.1:13666
PlayerId (MAC): dc:a6:32:7f:65:49
Input device: /dev/pikeyd
[ERROR] LCDd communication problem: LCD Error : Network type not supported
[ERROR] LCDd communication problem: LCD Error : Network type not supported
[ERROR] LCDd communication problem: LCD Error : Network type not supported

Thank you!
Emanuele

Additional scroll styles

Can you please implement also additional different ways of displaying Artist, Title or Album information longer than the screen width? Scrolling letter by letter doesn't look too nice on slow displays.
Another way would be to simply wrap the text in chunks smaller than the screen width and flip through the lines.

Slimmer crashes when starting to play next track in an album

When playing an album using the Tidal (streaming service) Plugin on LMS server, as soon as a new song starts, the display goes blank.
When I manually select a new song in the album, this does not happen, and everything keeps running.
Tried re-installing everything, but the behavior stays the same.
Tried to exclude as many influences as possible, so also removed the DAC, and changed the slimmer.conf options to have no input from pikeyd.
Unfortunately to no avail.
Ran the 'top' command, to see if slimmer was still running: It was not.
I can manually restart slimmer (command line), and then it works again. Until the start of a new track: slimmer crashes.
Note: this happens using the Tidal Plugin, playing albums from a a music directory under LMS works fine.

Accept more commands from IR

Have slimmer watch more keys so more commands can be sent by an IR remote control.
Ideally slimmer can deal with the full set of keys on the Squeezebox remote control.

accents

"œ", "à", "ù" and "è" are shown as "→"
should be "oe", "a", "u", and "e" rather.

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.