SO I am running LMS on arch linux and it was updated to perl 5.16.0 and I hade rebuild all packages that come with LMS and it starts and works fine except for previous and next buttons not working and I can press play and start playing but I can play pause it never pauses it goes back to play.
What perl library works with those button any ideas on how to fix it
Results 1 to 7 of 7
Thread: perl 7.16
-
2012-06-04, 21:52 #1
- Join Date
- Jun 2012
- Posts
- 2
perl 7.16
-
2012-06-05, 12:24 #2
- Join Date
- Feb 2010
- Posts
- 6
JSON related issues?
I'm running into the same problem. It might be the way I rebuilt the modules, rather than a problem with the LMS, but since this thread is here, I'll post what I've found:
- I'm using the PKGBUILD for Arch Linux 32-bit (I can't post links yet, but it's user submitted in the AUR).
- Controlling via Squeezeplay, pause/play works, but next/previous DO NOT. (This does not seem to use JSON for control.)
- JSON ["button","jump_rew"] and ["button","jump_fwd"] (used by the web interface) DO NOT work.
- JSON ["playlist", "index", "+1"] and ["playlist", "index", "-1"] DO work.
- JSON toggle ["pause"] (used by web interface) will start audio playing but NOT pause it.
- JSON pause ["pause","1"] and play ["play"] DO work.
- back/forward buttons on the Touch screen AND remote DO NOT work.
- pause/play buttons on the Touch screen AND remote DO work.
I get no errors in the logs no matter what I do. I don't know nearly enough to know what I should be looking at, but I'm willing to try things if anybody has any ideas. Thanks for reading.
--EDIT: JSON is NOT the culprit; I was wrong about from Squeezeplay. Sorry!Last edited by Renophaston; 2012-06-05 at 12:40. Reason: I was wrong!
-
2012-06-05, 19:49 #3
- Join Date
- Jun 2012
- Posts
- 2
Web page source shows this
</script>
<script type="text/javascript" src="/html/js-main.html?r=33893"></script>
<script type="text/javascript">/*
* Globally used Logitech Media Server strings.
* This file should be PROCESSed if SqueezeJS.UI is used.
*/
SqueezeJS.Strings['power'] = "Power";
SqueezeJS.Strings['play'] = "Play";
SqueezeJS.Strings['pause'] = "Pause";
SqueezeJS.Strings['next'] = "Next";
SqueezeJS.Strings['previous'] = "Previous";
SqueezeJS.Strings['connecting_for'] = "Connecting...";
SqueezeJS.Strings['shuffle'] = "Shuffle";
SqueezeJS.Strings['shuffle0'] = "Don't Shuffle Playlist";
SqueezeJS.Strings['shuffle1'] = "Shuffle by Song";
SqueezeJS.Strings['shuffle2'] = "Shuffle by Album";
SqueezeJS.Strings['repeat'] = "Repeat";
SqueezeJS.Strings['repeat0'] = "Repeat off";
SqueezeJS.Strings['repeat1'] = "Repeat current song";
SqueezeJS.Strings['repeat2'] = "Repeat playlist";
SqueezeJS.Strings['volume'] = "Volume";
SqueezeJS.Strings['volume'] += ':';
SqueezeJS.Strings['volumeup'] = "Louder";
SqueezeJS.Strings['volumedown'] = "Softer";
SqueezeJS.Strings['by'] = "by";
SqueezeJS.Strings['from'] = "from";
SqueezeJS.Strings['colon'] = ":";
SqueezeJS.Strings['on'] = "on";
SqueezeJS.Strings['off'] = "off";
SqueezeJS.Strings['yes'] = "Yes";
SqueezeJS.Strings['no'] = "No";
SqueezeJS.Strings['album'] = "Album";
SqueezeJS.Strings['artist'] = "Artist";
SqueezeJS.Strings['year'] = "Year";
SqueezeJS.Strings['close'] = "Close";
SqueezeJS.Strings['cancel'] = "Cancel";
SqueezeJS.Strings['choose_player'] = "Choose Player";
SqueezeJS.Strings['synchronize'] = "Synchronize";
SqueezeJS.Strings['setup_synchronize_desc'] = "The player can be synchronized with other players, enabling them to play the same music simultaneously. Choose the players you would like to synchronize with from the list of available synchronization groups. Choose No Synchronization to stop synchronization.";
SqueezeJS.Strings['setup_no_synchronization'] = "No Synchronization";
SqueezeJS.Strings['no_player'] = "Your player was not found.";
SqueezeJS.Strings['no_player_details'] = "<b>If you own a Squeezebox or Transporter:</b><ul><li>Make sure that your player is plugged in and its networking settings are correct. Click the Refresh button once your player is connected.</ul><p><b>If you do not own a Squeezebox or Transporter:</b><ul><li>You can listen to your music library using <a target=\"_top\" href=\"/html/softsqueeze/index.html\">SoftSqueeze</a>, a software version of Squeezebox.<li>You can use MP3 player software (such as Winamp or iTunes) to listen to your music library with Logitech Media Server by connecting to this URL: <a target=\"stream\" href=\"http://localhost:9000/stream.mp3\">http://localhost:9000/stream.mp3</a></ul>";
SqueezeJS.Strings['squeezenetwork'] = "mysqueezebox.com";
SqueezeJS.Strings['squeezebox_server'] = "Logitech Media Server";
SqueezeJS.Strings['sc_want_switch'] = "This player is currently connected to %s. Do you want it to switch to this Logitech Media Server?";
SqueezeJS.Strings['browse'] = "Browse";
SqueezeJS.Strings['choose_folder'] = "Please select a folder";
SqueezeJS.Strings['choose_file'] = "Please select a file";
if (Ext.MessageBox) {
Ext.MessageBox.buttonText.yes = 'Yes';
Ext.MessageBox.buttonText.no = 'No';
Ext.MessageBox.buttonText.cancel = 'Cancel';
}</script>
-
2012-06-05, 22:02 #4
- Join Date
- Feb 2010
- Posts
- 6
Yeah, but that's all just stuff for the UI on the web page; none of it gets sent to the server. (Right?
)
If I look at what's getting sent, it's this JSON (for instance, for the "Next" button):
{"id":1, "method":"slim.request","params":["$PLAYERID",["button","jump_fwd"]]}
$PLAYERID button jump_fwd
- sending a command from the web UI (using JSON) or the remote control (not JSON) (DOES NOT WORK), and
- sending a command from the CLI (DOES WORK)
Looking at the logs, the former looks like this:
Code:[12-06-05 21:15:46.9474] Slim::Control::Request::dump (2374) Request: Command [$PLAYERID->button] from /024d0a29/slim/request|138||024d0a29 (Dispatchable) [12-06-05 21:15:46.9493] Slim::Control::Request::dump (2376) Param: [_orFunction] = [] [12-06-05 21:15:46.9511] Slim::Control::Request::dump (2376) Param: [_buttoncode] = [jump_fwd] [12-06-05 21:15:46.9529] Slim::Control::Request::dump (2376) Param: [_time] = [] [12-06-05 21:15:46.9550] Slim::Control::Request::dump (2374) Request: Command [$PLAYERID->button] from /024d0a29 slim/request|138||024d0a29 (Done) [12-06-05 21:15:46.9568] Slim::Control::Request::dump (2376) Param: [_orFunction] = [] [12-06-05 21:15:46.9585] Slim::Control::Request::dump (2376) Param: [_buttoncode] = [jump_fwd] [12-06-05 21:15:46.9603] Slim::Control::Request::dump (2376) Param: [_time] = [] [12-06-05 21:15:46.9621] Slim::Control::Request::executeDone (1927) 0
Code:[12-06-05 21:16:21.4634] Slim::Control::Request::dump (2374) Request: Command [$PLAYERID->button] from CLI (Dispatchable) [12-06-05 21:16:21.4652] Slim::Control::Request::dump (2376) Param: [_buttoncode] = [jump_fwd] [12-06-05 21:16:21.4670] Slim::Control::Request::dump (2376) Param: [_time] = undef [12-06-05 21:16:21.4689] Slim::Control::Request::dump (2376) Param: [_orFunction] = undef [12-06-05 21:16:21.4713] Slim::Control::Request::dump (2374) Request: Command [$PLAYERID->playlist jump] (Dispatchable) [12-06-05 21:16:21.4731] Slim::Control::Request::dump (2376) Param: [_index] = [+1] [12-06-05 21:16:21.4748] Slim::Control::Request::dump (2376) Param: [_seekdata] = undef [12-06-05 21:16:21.4766] Slim::Control::Request::dump (2376) Param: [_fadein] = undef [12-06-05 21:16:21.4784] Slim::Control::Request::dump (2376) Param: [_noplay] = undef [12-06-05 21:16:21.4815] Slim::Control::Request::notifyFromArray (843) (playlist stop) [12-06-05 21:16:21.4960] Slim::Control::Request::notify (2037) Notifying displaynotify [12-06-05 21:16:21.4979] Slim::Control::Request::__autoexecute (2504) __autoexecute() [12-06-05 21:16:21.4998] Slim::Control::Request::dump (2374) Request: Query [$PLAYERID->displaystatus] from /024d0a29/slim/displaystatus/$PLAYERID|7||024d0a29 (Dispatchable) [12-06-05 21:16:21.5016] Slim::Control::Request::dump (2376) Param: [subscribe] = [showbriefly] [12-06-05 21:16:21.5034] Slim::Control::Queries::displaystatusQuery (1090) displaystatusQuery() [12-06-05 21:16:21.5054] Slim::Control::Request::dump (2374) Request: Query [$PLAYERID->displaystatus] from /024d0a29/slim/displaystatus/$PLAYERID|7||024d0a29 (Done) [12-06-05 21:16:21.5072] Slim::Control::Request::dump (2376) Param: [subscribe] = [showbriefly] [12-06-05 21:16:21.5090] Slim::Control::Request::dump (2410) Result: [type] = [showbriefly] [12-06-05 21:16:21.5129] Slim::Control::Request::dump (2410) Result: [display] = [{ duration => 30_000, "icon-id" => "music/227500/cover.png", text => ["Now Playing", "I Have Not Been to Oxford Town"], type => "song", }] [12-06-05 21:16:21.5147] Slim::Control::Request::executeDone (1927) 0
(I feel stupid trying to figure this out in public, because I don't know Perl and I'm a novice programmer at best. I apologize to anybody who reads this and cringes!)
-
2012-06-09, 17:35 #5
- Join Date
- Feb 2010
- Posts
- 6
Working, but not understood.
I made a small change in Request.pm that fixes all the problems I had, but I don't understand what changed between Perl 5.14 and 5.16 that would require this change, so YMMV and proceed at your own risk and all that.
What I did was change getParam in Slim/Control/Request.pm from:
Code:# get a parameter by name sub getParam { return $_[0]->{'_params'}->{ $_[1] }; }
Code:# get a parameter by name sub getParam { return ($_[0]->{'_params'}->{ $_[1] } ne '') ? $_[0]->{'_params'}->{ $_[1] } : undef; }
PS - If you can correct the subject line, please do! 7.16 is probably still a ways out
-
2012-06-10, 11:22 #6
- Join Date
- Jun 2007
- Posts
- 687
Just stating that I got the same issue. Haven't tried your fix yet and will actually wait a little before applying it, maybe I can sit this one out.
-
2012-06-26, 15:26 #7
- Join Date
- Feb 2010
- Posts
- 6
Bug report
I've added a bug report at http://bugs.slimdevices.com/show_bug.cgi?id=17984. Feel free to vote and add your comments if you think I've missed anything.
signor_rossi: Not a bad idea