USBチャンネル切換器: ソフトウェア編
ソフトウェア側での対応
本切換器からの信号は USB ジョイスティック汎用ドライバを使って入力値を受け取ることができる。 各チャンネルに切り換えた時に、対応するボタンの押下信号を受け取るので、 この信号に反応するようにプログラムを書くことになる。 このとき、前のチャンネルに対応するボタンを離した信号も同時に受け取ることになるが、 これは無視すれば良い。
なお、この方式だとチャンネルが切り換わった時にのみ信号が発信されるので、 プログラムを起ち上げた時にどのチャンネルに合わせられているかを知る方法は無い。
アプリケーション例
USB チャンネル切換器を使ったアプリケーションをいくつか作ったので紹介する。 いずれも Linux 用。
TV(ソフト)チャンネル切換
Linux 上で動く TV 視聴用プログラムのうち、"xawtv" と "tvtime" のチャンネルを、USB チャンネル切換器を使って変えられるようにした。 どちらのソフトウェアも、外部コマンドを使ってチャンネルを切り換えられるようになっているので、それを system() で呼ぶだけである。スクリプトを使って書けば楽勝なのだろうけど、 あえて C で書いている(バイナリ処理のやり方が良くわからなくて…)。
![[tvtime画面]](gacha-tv.jpg)
tvtime でチャンネルを切り換えているところ
xawtv-gacha.c (1320 byte)
tvtime-gacha.c (1220 byte)
いずれも、そのままコンパイルすれば動く。先に TV ソフトを起ち上げておいてから、 USB チャンネル切換器を接続し、最後に本ソフトウェアを起動すること。 xawtv-gacha.c の方は、コンパイルしてできたバイナリに v4lctl-gacha というエイリアスを張っておくと、xawtv-remote の変わりに v4lctl を使ってチャンネルを切り換えるようになる。
仮想デスクトップの切り換え
沢山の仮想デスクトップを使っているときに、デスクトップの切り換えが面倒だと感じたことはないだろうか。 USB チャンネル切換器を使えば、テレビのチャンネルを切り換えるように、 デスクトップを切り換えることができる。
下のコードは、FVWM の仮想デスクトップ(FvwmPager)に対応している。 まず FvwmCommand "DeskTopSize 12x1" などとして、横に12面分の仮想デスクトップを並べておく。 あとは fvwmswitch を起動しておくと、切換器のツマミを回して仮想デスクトップを切り換えることができるようになる。 さらに、fvwmswitch2 を使えば、2台の切換器でXY軸を独立に入力することができるので、 12×12=144面分の仮想デスクトップを扱える。
![[デスクトップ1]](fvwmswitch-shot1.jpg)
ボスが来た!!
➜
![[デスクトップ2]](fvwmswitch-shot2.jpg)
仕事してましたよ。
fvwmswtich.c (895 byte)
fvwmswitch2.c (1627 byte)
音楽演奏
いよいよ実用性皆無な感じになってきたが、切換器で音を演奏できるようにしてみた。 Pure Dataのパッチを以下のように組むと、 ツマミを回して周波数を変えながら正弦波を鳴らせる。 Pd用のジョイスティックモジュールはJoseph Sarloのページからダウンロードできる。
手抜きなので、ボタンを押したのと離したのとを区別しておらず、 ツマミを回す向きによって発音タイミングが異なるのが問題点である。
![[パッチ図]](gacha-osc.png)
まとめ
既成のものを適当に組み合わせて作った USB チャンネル切換器と、 それを使ったやはりありあわせのアプリケーションを紹介した。 つまみをガチャガチャ回してコンピューター上のアプリケーションを操作するという感覚は、 意外な身体性があり、回しているだけでも結構楽しめる。 ぜひ皆さんも試しに作ってみてください。
しかし、「昔テレビのチャンネルはガチャガチャ回して切り換えていた」ということを知らない人が増えてきているので、 そろそろウケなくなってきているということは覚悟しておいた方がいいでしょう。