The computer I use to watch DVDs (and other stuff) with has three sound outputs: via HDMI to the TV, via the built-in analogue sound port to my wireless headphones, and via a USB sound card to external stereo speakers. Which one I use depends on what I’m watching and what time of day it is.
So it would be nice to be able to change where the sound goes to on the fly. mplayer doesn’t have built-in support for it, but you could do this externally via a PulseAudio or the like, but since mplayer is occupying the screen and getting the commands, it seemed easier to just hack mplayer.
And, besides, each audio sink needs a different video/audio delay. The TV, for instance, delays the picture a bit, so if I’m listening over the headphones, I need to subtract a tenth of a second for the audio delay. Or something. I just experimented until I got something where Jon Stewart looked marginally less unhinged.
It turned out that adding commands to mplayer is really easy, but digging into the code this big can be pretty bewildering. So if you ever want to add commands and keystrokes to mplayer, I’ve put the patch on the interwebs. It probably won’t apply cleanly to your specific mplayer version (and you wouldn’t want to, since it hard-codes my specific commands), but it should give you a rough idea of where to poke around.
I was whinging a lot about the terrible Tellstick range in my last post on the issue. Deservedly so. It’s terrible! However, the Telldus people have released a new version of the device:
The revolutionary new invention is the antenna! Who would ever have thought that an antenna would give greater range? Kids these days.
Anyway, it really does work. I had four separate antenna-less Tellsticks that gave me 90% coverage of my apartment earlier. With the new Tellstick, a single one gives me 100% coverage.
I was somewhat interested in seeing what people were saying about the new Boris albums on last.fm, but reloading that page is so 1993. I wanted to read it through Gwene, but there’s no RSS feeds on last.fm. So I whipped one up (in Perl! *sob*) and put the service on Quimby.
Feel free to use it or rewrite the Perl script to be less doubleplusungood.
We all grow so very weary of having to switch lights on and off. Every day. On again and then off again. Will the madness never end?
Technology comes to the rescue! There are companies that sell receivers (like the one pictured to the left, plugged into a wall outlet that I now see I should have dusted before snapping the picture. Too late now!) that you can control wirelessly.
So the question then is: How do you control them without (yuck!) using remote controls and stuff? You use Emacs.
Telldus sells small blue USB devices that are called Tellsticks. These expose a USB serial interface, and uses a pretty … primitive encoding method for sending commands to the units.
The Emacs Lisp code needed to send commands via Tellstick is on github, since that where all the cool kids hang out these days.
|Tellstick and one of the lamps it controls
I’ve had this thing running for about half a year, and it’s really nice to be able to switch off all the lights in the entire apartment with just on the hallway computer. The main problem is that the range of the Tellstick senders is about five meters. If there moon is in the right phase and it isn’t too windy. And you feel lucky.
Fortunately I have at least one computer in each room, so I’ve just bought a truckload of Tellsticks and have each computer control each room, and then I have the remote remote control work by using emacs-server/emacsclient. But you can probably work that stuff out yourself.
Enjoy the gift of light! No longer sitting in the dark, typing away, just because you’re too lazy to get up and switch the lamps on!