terba / slimmer Goto Github PK
View Code? Open in Web Editor NEWUser interface controller for Logitech Media Server (aka SlimServer, Squeezebox Server, SqueezeCenter)
License: GNU General Public License v3.0
User interface controller for Logitech Media Server (aka SlimServer, Squeezebox Server, SqueezeCenter)
License: GNU General Public License v3.0
"œ", "à", "ù" and "è" are shown as "→"
should be "oe", "a", "u", and "e" rather.
Now won't enter the menu if the queue is empty. But when you remove all the track from the Playing Queue one by one, you get an empty screen. Should be unified.
Adding shuffled playing option to the menu
have slimmer display date and time after a while of inactivity.
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,
Adding Genres to the Music Library menu
Slimmer should support LMS alarm clock features.
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
The wiki has to be updated with the changes from the smallscreen branch.
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 should read more input devices at once. This will allow building a player with physical buttons and encoder + IR remote control.
I have use your post "Building a player" and it works fine.
I have use a Zero W.
But looking at the Issues it looks like you have made updates to the software, and I don't see them in the version you refers to in your post (slimmer version 1.2.1).
Would it be possible to update the "cd /tmp && wget https://github.com/terba/slimmer/releases/download/v1.2.1/slimmer-bundle.tar.bz2" to current version?
The help listing should be replaced by a new one containing the new parameters
I think it ist better to show only artist and title instead of artist/title/album on a two line display, because the information and scrolling time is to long for one line.
Adding repeat playing option to the menu
A new page has to be made about connecting slimmer and lirc
This should be handled in catch blocks.
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
A feature request or patch has to be submitted to lcdproc for this.
pi@audiobox:/slimmer $ mkdir 20170708/slimmer $ cd 20170708/
pi@audiobox:
pi@audiobox:/slimmer/20170708 $ git clone/slimmer/20170708 $ mkdir slimmer-build
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:
pi@audiobox:/slimmer/20170708 $ cd slimmer-build/slimmer/20170708/slimmer-build $ cmake
pi@audiobox:
-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
When listening radio the playback time is running up and above. It makes no sense. I think it is better to showing the time instead of the playback time in the radio mode.
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.
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
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?
Replace the hardcoded menu with the one retrieved from the server.
Adding Years menu item to the Music Library menu
Currently Slimmer is optimized for 2004 displays, but it would be easy to handle all kind of display sizes.
Using the long back and long forward actions on the Now Playing screen should seek in the current track.
Adding a favorite to the playing queue
Implement the possibility to open the playlist folder in the main menu
Hi,
:-(
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.
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.
Browsing a lot of items in the menu should be optimized somehow, because redrawing the whole screen while scrolling in the menu is too slow on a HD44780 for smooth rotary encoder usage.
If the current track is started before some configurable seconds, the Previous action should restart this track, not the previous in the queue.
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.
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.
Adding a song info feature to the menu to show the details of the played track.
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.