From: John Pietrzak Date: Mon, 9 Jan 2012 21:37:18 +0000 (-0500) Subject: Modprobe scripts now working! Plus JVC keyset. X-Git-Url: http://vcs.maemo.org/git/?p=pierogi;a=commitdiff_plain;h=679cf51a24c954af07a4002c25c15ecb67c8466b Modprobe scripts now working! Plus JVC keyset. Finally got the scripts to load and unload lirc_rx51 kernel module working correctly. This means, the app is finally ready for normal human beings to play around with. (If only I could get Qt to actually construct a debian package for me now...) Plus, a JVC keyset has been constructed, and a new application icon created. --- diff --git a/PierogiResources.qrc b/PierogiResources.qrc index af8072e..fbbcb26 100644 --- a/PierogiResources.qrc +++ b/PierogiResources.qrc @@ -13,7 +13,6 @@ icons/playback_pause_icon&48.png icons/playback_play_icon&48.png icons/playback_prev_icon&48.png - icons/playback_rec_icon&48.png icons/playback_rew_icon&48.png icons/playback_stop_icon&48.png icons/redo_icon&48.png @@ -30,8 +29,8 @@ icons/yellow_square.png icons/red_record_icon.png icons/dash.png - icons/PierogiIcon.png doc/about.html doc/documentation.html + icons/PierogiIcon.png diff --git a/doc/about.html b/doc/about.html index 961bc64..7e557f9 100644 --- a/doc/about.html +++ b/doc/about.html @@ -5,9 +5,11 @@

Pierogi

A Universal Infrared Remote Control

-

Copyright 2012 by John Pietrzak. Released under the GPL version 2.0.

+

Copyright (C) 2012 by John Pietrzak. +Released under the GPL version 2.0 or later.

-

Icons provided by Gentleface.

+

Icons provided under a Creative Commons license by +Gentleface.

Please send any questions or comments to: jpietrzak8@gmail.com

diff --git a/doc/documentation.html b/doc/documentation.html index 7d5a637..a1d2d34 100644 --- a/doc/documentation.html +++ b/doc/documentation.html @@ -7,16 +7,33 @@

The Pierogi universal infrared remote controller is a single self-contained -app capable of sending IR commands to pretty much any IR-controlled device. +app capable of sending IR commands to a wide variety of devices. At the moment, it is oriented towards television, VCR, DVD, and Blu-ray devices, but a few other types of device have had their command sets entered.

-Commands are collected into "keysets". As each manufacturer tends to reuse -a given set of command encodings rather than re-invent the wheel each -time they come out with a new product, a large number of devices can be -controlled by a single keyset. +In this app, each family of related infrared commands is collected into a +"keyset". As manufacturers commonly reuse a given set of commands rather +than re-invent the wheel each time they come out with a new product, many +devices can share the same keyset. +

+ +

+Pierogi also follows the classic concept of a universal remote, by having +a common set of buttons that are reused for each device. So, for example, +the "power" button has the same name and is located in the same position, +no matter what keyset is currently in use -- even if that keyset has a +different name for "power", or has no "power" command at all. (Check out +the Universal +Remote wiki for a description of universal remote controls, which +includes a special mention of the N900!) +

+ +

+So in short, to use Pierogi, you first select an appropriate keyset, then +press the appropriate buttons to control the target device. More detail on +the features of Pierogi is provided below.

Using Pierogi

@@ -109,8 +126,9 @@ return arrow at the top right of the screen).

Hasn't this been done before?

-

Yes, remote control software has already been written. In particular, -the Irreco / QtIrreco project +

Yes, remote control software has already been written for the N900. In +particular, the +Irreco / QtIrreco project creates beautiful virtual remote controls. I've also used the Raemote widget to control my Apple computers. But these programs have their shortcomings; in particular, they @@ -120,18 +138,18 @@ use on all sorts of different hardware.

What's up with LIRC?

-

Just as Irreco and Raemote do, I want to leverage the work of the +

Just as QtIrreco and Raemote do, I want to leverage the work of the Linux Infrared Remote Control project. -The LIRC project is, at the moment, by far the most influential open-source -effort working with consumer IR. And the N900 comes with a device driver -built specifically for use with LIRC! But, you see, I have a problem. I +The LIRC project is by far the most influential open-source effort working +with consumer IR. And the N900 comes with a device driver made +specifically for their server! But, you see, I have a problem. I don't want to do things the way LIRC wants to do things.

The N900 is different from other Linux systems using IR -- rather than being the machine at which you point a remote control, this machine is -the remote control. Which is not what LIRC was made for; the heart of the +the remote control. This is not what LIRC was designed for; the heart of the LIRC project is a server that will sit and wait for messages to arrive from -the IR hardware. Although it can also broadcast IR data back out (when using +the IR system. Although it can also broadcast IR data back out (when using hardware that supports 2-way IR communication), that is not its primary purpose.

@@ -151,9 +169,9 @@ multitudes.

The third problem is more subtle, but really tough to crack. You see, the whole point of LIRC is to take the commands it receives from the IR port and translate them into something recognizable. As such, each config file provides -a mapping from numeric commands to human-readable strings. (These strings -are normally based on the labels used on the remote control itself.) This is a -serious problem for a universal controller! Take, for example, the "power" +a mapping from numeric commands to human-readable strings. This is a +serious problem, if your interest is in finding similar commands in +different config files! Take, for example, the "power" button found on most remote controls. In some config files, the string for this is "power". Others have "Power", or "POWER". You can also find "pwr", "PWR", "ON/OFF", "ON-OFF", "ONOFF", "POWER_ON_OFF", "KEY_POWER", "Operate", @@ -165,14 +183,18 @@ know which key to map all these strings to?

Pierogi attempts to answer these problems. First, it talks directly to the -/dev/lirc0 device, no server middleman needed. Yes, you can halt (or even -uninstall!) the lircd daemon, and still use Pierogi. Second, the entire -set of LIRC config files are being processed and combined into a small(er) -set of related families of commands. The third problem mentioned above is a -bit harder to solve; I'm currently mapping each LIRC config file string by -hand to a corresponding Pierogi key. Naturally, this process will be fraught -with errors; I intend to keep updating Pierogi as these errors are found and -fixed. +/dev/lirc0 device, no server middleman needed. Yes, you can use Pierogi +without the LIRC daemon running; in fact, there's no need to ever install it. +Second, Pierogi is built +around the concept of the "keyset"; all IR codes that can share the same +protocol without interfering with one another are combined into a single +family of related commands. In short, this reduces the quantity of data +available from LIRC config files to something much more manageable.

+ +

The third problem mentioned above is a bit harder to solve; I'm currently +mapping each LIRC string to a corresponding Pierogi key by hand. Naturally, +this process will be fraught with errors; I intend to keep updating Pierogi +as these errors are found and fixed.

Internal Design Notes

@@ -249,7 +271,14 @@ sorting through a massive pile of flags, conditional statements, and some really funky delayed-action buffering to make everything work. The simple act of splitting the code into one routine for the RC5 (biphase) protocol and another for the NEC (space-encoded) protocol makes it much easier to read, at -least to my eyes. (I haven't yet implemented the RC6 protocol.) +least to my eyes. (I haven't yet implemented the RC6 or other protocols.) +

+ +

+In any case, I owe the LIRC authors a deep debt of gratitude for their +efforts. If you are one such author, thank you. As Pierogi is more-or-less +derived directly from their work, it is also licensed under the same terms, +the GNU General Public License (GPL) version 2 or later.

Attribution

@@ -263,7 +292,10 @@ Find their work at www.gentleface.com.

A set of links to some resources I've used while writing the code.