<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content="ympd - fast and lightweight MPD webclient"> <meta name="author" content="andy@ndyk.de"> <title>ympd</title> <!-- Bootstrap core CSS --> <link href="css/bootstrap.css" rel="stylesheet"> <!-- Custom styles for this template --> <link href="css/mpd.css" rel="stylesheet"> <link href="assets/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon"> <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script> <![endif]--> </head> <body> <div class="navbar navbar-inverse navbar-fixed-top" role="navigation"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="/"><span class="glyphicon glyphicon-play-circle"></span> ympd</a> </div> <div class="collapse navbar-collapse"> <ul id="nav_links" class="nav navbar-nav"> <li id="playlist"><a href="#/">Playlist</a></li> <li id="browse"><a href="#/browse/">Browse database</a></li> <li><a href="#" data-toggle="modal" data-target="#about">About</a></li> <li><a href="#" data-toggle="modal" data-target="#settings" onclick="getHost();">Settings</a></li> </ul> <div class="btn-toolbar navbar-btn navbar-right" role="toolbar"> <div class="btn-group"> <button type="button" class="btn btn-default" onclick="socket.send('MPD_API_SET_NEXT');"> <span class="glyphicon glyphicon-backward"></span> </button> <button type="button" class="btn btn-default" onclick="socket.send('MPD_API_SET_STOP');"> <span id="stop-icon" class="glyphicon glyphicon-stop"></span> </button> <button type="button" class="btn btn-default" onclick="clickPlay();"> <span id="play-icon" class="glyphicon glyphicon-pause"></span> </button> <button type="button" class="btn btn-default" onclick="socket.send('MPD_API_SET_PREV');"> <span class="glyphicon glyphicon-forward"></span> </button> </div> <div class="btn-group"> <div class="btn btn-toolbar btn-default"> <span id="volume-icon" class="glyphicon glyphicon-volume-up"></span> <div id="volumeslider"></div> </div> </div> </div> </div><!--/.nav-collapse --> </div> </div> <div class="container starter-template"> <div class="row"> <div class="col-md-10 col-xs-12"> <div class="notifications top-right"></div> <div class="panel panel-primary"> <!-- Default panel contents --> <div id="panel-heading" class="panel-heading">Playlist</div> <div class="panel-body"> <h1> <span id="track-icon" class="glyphicon glyphicon-play"></span> <span id="currenttrack"></span> </h1> <h4> <span id="album" class="text"></span> <span id="artist" class="text pull-right"></span> </h4> <p id="counter" class="text pull-right"> </p> <div id="progressbar"></div> </div><!-- /.panel-body --> <ol id="breadcrump" class="breadcrumb"> </ol> <!-- Table --> <table id="salamisandwich" class="table table-hover"> <thead> <tr> <th>#</th> <th>Title</th> <th>Duration</th> <th></th> </tr> </thead> <tbody> </tbody> </table> </div><!-- /.panel --> </div><!-- /.col-md-10 --> <div class="col-md-2 col-xs-12" > <div class="btn-toolbar"> <div class="btn-group-vertical btn-block btn-group-lg" data-toggle="buttons"> <button id="btnrandom" type="button" class="btn btn-default"> <span class="glyphicon glyphicon-random"></span> Random </button> <button id="btnconsume" type="button" class="btn btn-default"> <span class="glyphicon glyphicon-fire"></span> Consume </button> <button id="btnsingle" type="button" class="btn btn-default"> <span class="glyphicon glyphicon-star"></span> Single </button> <button id="btnrepeat" type="button" class="btn btn-default"> <span class="glyphicon glyphicon-repeat"></span> Repeat </button> </div> <div id="btn-responsive-block" class="btn-group-vertical btn-block btn-group-lg"> <button type="button" class="btn btn-default" onclick="updateDB();"> <span class="glyphicon glyphicon-refresh"></span> Update DB </button> <button type="button" class="btn btn-default" onclick="socket.send('MPD_API_RM_ALL');"> <span class="glyphicon glyphicon-trash"></span> Clear queue </button> </div> <div id="btn-responsive-block" class="btn-group-vertical btn-block btn-group-lg" data-toggle="buttons"> <button type="button" class="btn btn-default" id="btnnotify"> <span class="glyphicon glyphicon-comment"></span> Notifications </button> </div> </div> </div><!-- /.col-md-2 --> </div><!-- /.row --> </div><!-- /.container --> <!-- Modal --> <div class="modal fade" id="about" tabindex="-1" role="dialog" aria-labelledby="aboutLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h2 class="modal-title" id="aboutLabel">About</h2> </div> <div class="modal-body"> <h4><a href="http://www.ympd.org"><span class="glyphicon glyphicon-play-circle"></span> ympd</a> <small>MPD Web GUI - written in C, utilizing Websockets and Bootstrap/JS</small></h4> <p> ympd is a lightweight MPD (Music Player Daemon) web client that runs without a dedicated werbserver or interpreters like PHP, NodeJS or Ruby. It's tuned for minimal resource usage and requires only very litte dependencies.</p> <p class="text-muted"> ympd <span id="ympd_version"></span><br/> libmpdclient <span id="mpd_version"></span><br/> </p> <h5>ympd uses following excellent software:</h5> <h6><a href="http://libwebsockets.org">libWebSockets</a> <small>LGPL2.1 + static link exception</small></h6> <h6><a href="http://www.musicpd.org/libs/libmpdclient/">libMPDClient</a> <small>BSD License</small></h6> <br/> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> </div> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div><!-- /.modal --> <!-- Modal --> <div class="modal fade" id="settings" tabindex="-1" role="dialog" aria-labelledby="settingsLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h2 class="modal-title" id="settingsLabel"><span class="glyphicon glyphicon-wrench"></span> Settings</h2> </div> <div class="modal-body"> <form role="form"> <div class="row"> <div class="form-group col-md-9"> <label class="control-label" for="mpdhost">MPD Host/IP</label> <input type="text" class="form-control" id="mpdhost" /> </div> <div class="form-group col-md-3"> <label class="control-label" for="mpdport">MPD Port</label> <input type="text" class="form-control" id="mpdport" /> </div> </div> <div class="row"> <div class="form-group col-md-6"> <label class="control-label" for="mpd_pw">MPD Password</label> <input type="password" class="form-control" id="mpd_pw" placeholder="Password"/> </div> <div class="form-group col-md-6"> <label class="control-label" for="mpd_pw_con">MPD Password (Confirmation)</label> <input type="password" class="form-control" id="mpd_pw_con" placeholder="Password confirmation" data-placement="right" data-toggle="popover" data-content="Password does not match!" data-trigger="manual" /> </div> </div> </form> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> <button type="button" class="btn btn-default" onclick="confirmSettings();">Save</button> </div> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div><!-- /.modal --> <!-- Bootstrap core JavaScript ================================================== --> <!-- Placed at the end of the document so the pages load faster --> <script src="js/jquery-1.10.2.min.js"></script> <script src="js/jquery.cookie.js"></script> <script src="js/bootstrap.min.js"></script> <script src="js/bootstrap-notify.js"></script> <script src="js/bootstrap-slider.js"></script> <script src="js/sammy.js"></script> <script src="js/mpd.js"></script> </body> </html>