--- /dev/null
+use utf8;
+
+'' => {
+ desc => "interactive control",
+
+ 'p' => ["pause", 'co'],
+ '.' => ["step forward", 'co'],
+ 'q' => ["stop and quit"],
+ '+' => ["audio delay +$sign{_}.1s"],
+ '-' => ["audio delay -$sign{_}.1s"],
+ '/' => ["volume decrease"],
+ '*' => ["volume increase"],
+ '9' => '/',
+ '0' => '*',
+ 'm' => ["mute sound"],
+ '#' => ["cycle audio tr$sign{_}ack$sign{_}s"],
+ 'f' => ["full$sign{_}screen"],
+ 'T' => ["stay on top"],
+ 'w' => ["pan/sc. decr$sign{_}eas$sign{_}e"],
+ 'e' => ["pan/scan increase"],
+ 'o' => ["osd state switch"],
+ 'd' => ["frame drop mode"],
+ 'v' => ["subtitle visibility"],
+ 'b' => ["next sub$sign{_}title"],
+ 'j' => ["prev$sign{_}ious sub$sign{_}title"],
+ 'y' => ["forward in subtitle list"], #TODO
+ 'g' => 'y', #TODO
+ 'F' => ["forced subtitles"],
+ 'a' => ["align subtitles"],
+ 'x' => ["subtitle delay +$sign{_}.1s"],
+ 'z' => ["subtitle delay -$sign{_}.1s"],
+ 'r' => ["subtitles up"],
+ 't' => ["subtitles down"],
+ 's' => ["screen$sign{_}shot", 'opt', "-vf screenshot"],
+ 'S' => ["record screen$sign{_}shot$sign{_}s", 'opt', "-vf screenshot"],
+ 'I' => ["filename"],
+ '!' => ["chapter back"],
+ '@' => ["chapter forward"],
+ '1' => ["contrast less", 'opt'],
+ '2' => ["contrast more", 'opt'],
+ '3' => ["brighter", 'opt'],
+ '4' => ["darker", 'opt'],
+ '5' => ["hue to red", 'opt'],
+ '6' => ["hue to blue", 'opt'],
+ '7' => ["saturate", 'opt'],
+ '8' => ["de$sign{_}saturate", 'opt'],
+},
+
--- /dev/null
+<:
+use utf8;
+use strict;
+use warnings;
+no warnings 'qw'; # you know what you doing
+no warnings 'uninitialized'; # save some useless checks for more legible code
+
+use Shiar_Sheet::KeySigns qw(%sign);
+
+our $VERSION = 'v1.0';
+
+$header{content_type} = "text/html; charset=$sign{charset}";
+
+:><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+
+<head>
+<title>mplayer cheat sheet</title>
+<meta http-equiv="content-type" content="<:= $header{content_type} :>">
+<link rel="stylesheet" type="text/css" media="all" href="base.css">
+<!--[if lte IE 6]><style> .help dl.legend dt {margin:0 0 1px} </style><![endif]-->
+<!--[if lte IE 7]><style> .help dl.legend dd {float:none} </style><![endif]--><:
+ my %styles = map {$_ => $_} qw(dark circus mono red terse);
+ our $style = exists $get{style} && $styles{$get{style}} || 'light';
+ printf(qq{\n<link rel="%s" type="text/css" media="all" href="%s" title="%s">},
+ $_ eq $style ? 'stylesheet' : 'alternate stylesheet', "$_.css", $_
+ ) for keys %styles;
+
+ our $showkeys = exists $get{keys} && $get{keys} ne '0';
+ print "\n".'<style type="text/css"> .no {visibility:hidden} </style>' unless $showkeys;
+ print "\n".'<style type="text/css"> .no, .alias {opacity:.5} </style>'
+ if $showkeys and $get{keys} eq 'ghost';
+:>
+<script type="text/javascript" src="/keys.js"></script>
+
+<body id="mplayer">
+
+<h1>MPlayer cheat sheet</h1>
+
+<h2>index (default)</h2>
+
+<ul id="rows">
+
+<li class="row">
+ <ul class="keys omni">
+ <li class="me chr27" onclick="setmode()"><b>Esc</b> +
+ <!-- not as static anymore, but never bothered; just see ^[ -->
+ </ul>
+</li>
+
+<:
+use Shiar_Sheet::Keyboard;
+my $keys = Shiar_Sheet::Keyboard->new({do 'mplayer.inc.pl'});
+$keys->map($get{map}) or undef $get{map};
+$keys->print_rows($get{rows});
+:>
+</ul>
+
+<hr>
+
+<div class="help">
+ <div class="left">
+ <dl class="legend legend-types">
+ <dt class="ci">aside
+ <dd>Temporarily display something without changing state.
+ <dt class="pm">select
+ <dd>Scroll list and/or select a different line.
+ <dt class="po">search
+ <dd>Go to a specific message entry.
+ <dt class="co">edit
+ <dd>Modify message flags or contents.
+ <dt class="mi">command
+ <dd>Any other action which does not alter an existing message.
+ <dt class="mo">send
+ <dd>Prepare and/or send a (new) message.
+ <dt class="mv">leave
+ <dd>Exit the opened folder.
+ <dt class="me">display
+ <dd>Permanently alter/toggle current view.
+ </dl>
+ </div>
+
+ <div class="right">
+ <dl class="legend legend-options">
+ <dt>key<:= $sign{arg} :>
+ <dd>Commands with a dot need an argument afterwards.
+ </dl>
+
+ <ul class="legend legend-set">
+ <li>keyboard <strong>map</strong> is
+ <:= $get{map} ? 'set to ' : '' :><em><:= $keys->{map} :></em>
+ <li><strong>ascii</strong> mode is
+ <:= defined $sign{-ascii} && 'forced ' :><em><:=
+ $sign{-ascii} ? 'on' : 'off' :></em>
+ <li><strong>keys</strong> are
+ <em><:= $showkeys ? 'always shown' : 'hidden if unassigned' :></em><:=
+ !exists $get{keys} && ' by default' :>
+ <li>default <strong>style</strong> is
+ <:= defined $get{style} && 'set to ' :><em><:= $style :></em>
+ </ul>
+ </div>
+</div>
+
+<p class="footer">
+ <a href="/" rel="home">sheet.shiar.nl</a>/mplayer
+ <a href="git://git.shiar.nl/sheet" rel="vcs-git" title="Git repository"><:= $VERSION :></a>
+ created by <a href="http://shiar.nl/" rel="author">Shiar</a> <:= $sign{sep} :>
+ <a title="Licensed under the GNU Affero General Public License, version 3" rel="copyright"
+ href="http://www.fsf.org/licensing/licenses/agpl-3.0.html">AGPLv3</a>
+</p>
+
+</html>