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
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.
Slimmer should support LMS alarm clock features.
A feature request or patch has to be submitted to lcdproc for this.
A new page has to be made about connecting slimmer and lirc
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.
Replace the hardcoded menu with the one retrieved from the server.
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.
Adding a favorite to the playing queue
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.
Adding a song info feature to the menu to show the details of the played track.
Adding Years menu item to the Music Library menu
Hi,
:-(
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?
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.
Currently Slimmer is optimized for 2004 displays, but it would be easy to handle all kind of display sizes.
Adding repeat playing option to the menu
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
Slimmer should read more input devices at once. This will allow building a player with physical buttons and encoder + IR remote control.
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.
have slimmer display date and time after a while of inactivity.
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
The wiki has to be updated with the changes from the smallscreen branch.
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
Adding Genres to the Music Library menu
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,
Implement the possibility to open the playlist folder in the main menu
Adding shuffled playing option to the menu
Using the long back and long forward actions on the Now Playing screen should seek in the current track.
This should be handled in catch blocks.
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?
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
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.
The help listing should be replaced by a new one containing the new parameters
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.
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.
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.
"œ", "à", "ù" and "è" are shown as "→"
should be "oe", "a", "u", and "e" rather.
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.