1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>tvtime: Configuring lirc for tvtime</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<link href="tvtime.css" rel="stylesheet" type="text/css">
</head>
<body>
<table width="728px" class="centered" border="0" cellpadding="0" cellspacing="0">
<colgroup>
<col width="24px">
<col width="125px">
<col width="579px">
</colgroup>
<tr><td align="center" colspan="3"><a href="http://tvtime.sourceforge.net/"><img src="tvtime-logo-banner.png" alt="tvtime"/></a></td></tr>
<tr><td class="hangspace"></td>
<td class="navbar">
<table class="doclist" width="95%">
<tr><td class="docentry">
<a href="http://tvtime.sourceforge.net/why.html">why tvtime?</a></td></tr>
<tr><td class="docentry">
<a href="http://tvtime.sourceforge.net/downloads.php">download tvtime!</a></td></tr>
<tr><td class="docentry">
<a href="http://tvtime.sourceforge.net/screenshots.html">screenshots!</a></td></tr>
<tr><td class="docentry">
<a href="http://tvtime.sourceforge.net/links.html">related sites</a></td></tr>
<tr><td class="docentry">
<a href="http://tvtime.sourceforge.net/">home</a></td></tr>
</table>
<p></p>
<table class="doclist" width="95%">
<tr><th class="docbox">support</td></tr>
<tr><td class="docentry">
<a href="http://tvtime.sourceforge.net/cards.html">supported cards</a></td></tr>
<tr><td class="docentry">
<a href="help.html">help and faq</a></td></tr>
<tr><td class="docentry">
<a href="usage.html">using tvtime</a></td></tr>
<tr><td class="docentry">
<a href="problems.html">common problems</a></td></tr>
<tr><td class="docentry">
<a href="http://www.sourceforge.net/tracker/?group_id=64301&atid=506987">report bugs</a></td></tr>
</table>
<p></p>
<table cellpadding="4" width="100%">
<tr><td class="center">
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=64301"
width="88" height="31" alt="SourceForge Logo"></a></td></tr>
<!--
<tr><td class="center">
<a href="http://validator.w3.org/check/referer"><img src="http://www.w3.org/Icons/valid-html401"
alt="Valid HTML 4.01!" height="31" width="88"></a></td></tr>
<tr><td class="center">
<a href="http://jigsaw.w3.org/css-validator/check/referer"><img
src="http://jigsaw.w3.org/css-validator/images/vcss"
height="31px" width="88px" alt="Valid CSS!" /></a></td></tr>
-->
<tr><td class="center">
<a href="http://tvtime.net/"><img src="http://tvtime.sourceforge.net/tvtime3.png"
width="88px" height="31px" alt="tvtime Logo"></a></td></tr>
<tr><td class="center">
<a href="mailto:vektor@dumbterm.net">email the webmaster</a></td></tr>
</table>
</td>
<td valign="top">
<table width="90%" class="centered">
<tr><td>
<h2 class="center">Configuring lirc for tvtime</h2>
<h4 class="center"><a href="http://www.billybiggs.com/">Billy Biggs</a>,
21 Sep 2003</h4>
<p><a href="http://www.lirc.org/">lirc</a> is a driver, client library and set
of utilities for using infrared remote controls with Linux applications.
This document describes how to configure lirc to work with tvtime.
Everything accessible via the keyboard can be done through your
remote control.</p>
<img style="float: right" src="remote-small.jpg" alt="A remote control">
<h3>1. Set up lirc</h3>
<p>lirc consists of a kernel piece and a userland daemon called
<b>lircd</b> which must be run. Once this is setup, you can configure
lirc to signal tvtime when remote control buttons are pressed.</p>
<h3>2. All about irexec</h3>
<p>tvtime is signalled from lirc using a helper application called
<tt>irexec</tt>. <tt>irexec</tt> runs as a daemon listening for
remote control events and executing commands specified in the
lirc config file. In tvtime, we use <tt>irexec</tt> to run our own
helper application, <tt>tvtime-command</tt>, to send a command to a
running tvtime process.</p>
<p><tt>irexec</tt> should be run as the user under which tvtime will
run, and can be started with the <tt>--daemon</tt> option to have it
run in the background. I don't know where this should be added, but
you must somehow ensure that <tt>irexec</tt> has been started before
running tvtime. I would like to improve this somehow, but I'm not
sure what is best.</p>
<h3>3. Setting up your .lircrc</h3>
<p>The <tt>.lircrc</tt> entries for tvtime look like this:</p>
<pre>
begin
prog = irexec
button = the_one_you_want_on_your_remote
config = tvtime-command quit
end
</pre>
<p>Button names are assigned in your lircd config file, and often look
like <b>VOL_DOWN</b> or <b>CH+</b>. These should be assigned to
corresponding tvtime commands. A full list of commands can be
found on the <a href="usage.html#tvtimecommand">using tvtime webpage</a>
under the section <a href="usage.html#tvtimecommand">Controlling
tvtime via tvtime-command</a>.</p>
<h3>4. Suggested lirc setup</h3>
<p>We have put together an example <tt>.lircrc</tt> file that
demonstrates how we believe a user would set up their remote
control.</p>
<ul>
<li><a href="example.lircrc">An example .lircrc file</a>
</ul>
<p>This shows the commands that we feel are important and
gives a case study for how to configure lirc for tvtime.</p>
<h3>5. Configuring the power button as both tvtime start
and exit</h3>
<p>Many remotes have a power button, and a nifty trick is to have that
button map to both turning tvtime on and off. This can be configured
by adding this entry to your <tt>.lircrc</tt> file:</p>
<pre>
begin
prog = irexec
button = POWER
config = tvtime &
config = tvtime-command QUIT
end
</pre>
<p>This button has two commands defined, on the first press it will
start tvtime, and on the second press it will send a <b>QUIT</b>
message.</p>
<h3>6. Menu navigation on remotes without menu buttons</h3>
<img style="float: right" src="remote-nomenu-small.jpg" alt="A remote control without menu buttons">
<p>Many remote controls, like the one featured on the right,
do not have separate menu navigation buttons but instead double-up
the channel up/down and volume up/down buttons for menu navigation.
tvtime 0.9.11 includes the commands UP, DOWN, LEFT and RIGHT for
this dual-purpose. When not in the menu, the UP and DOWN commands
control channel navigation, while the LEFT and RIGHT commands
control volume.</p>
<h3>7. Problems when tvtime runs at realtime priority</h3>
<p>You may experience some missed events if you run tvtime as
root or have set tvtime setuid root and have one of
the following capture cards:</p>
<ul>
<li>Prolink PixelView Pro
<li>Avermedia and Avermedia 98 cards
<li>Leadtek Winfast TV 2000 and 2000 XP
<li>Flyvideo cards (98, 98FM)
<li>Typhoon TView
<li>BestBuy EasyTV
<li>KWorld
</ul>
<p>Running tvtime as a user prevents tvtime from aquiring
realtime priority, allowing the lirc driver for these cards to
poll more frequently for events. This problem may also be fixed
by using a low-latency patched kernel. We hope to provide a
better solution to this problem when we understand it better.</p>
<h3>8. Bugs and suggestions</h3>
<p>If you have any suggestions on how we can simplify or better
automate the setup process of using tvtime and lirc, please
send an email to
<a href="mailto:vektor@dumbterm.net">vektor@dumbterm.net</a>.</p>
<h3>9. ChangeLog</h3>
<ul>
<li>Nov 4, 2003: Added a section about realtime priority problems,
and updated the section on menu navigation keys.
<li>Oct 9, 2003: Added a section with an example lircrc file.
</ul>
</td></tr>
</table>
</td></tr>
</table>
</body>
</html>
|