と思われるかもしれませんが、いや、そういう話ではなくて。

ターミナル上からファイルを指定して、それを赤外線送信するプログラム「irsender」をちょいと組み立ててみました。
といっても、へっぽこですけどね。
・本体
http://asarinomisosoup.web.fc2.com/zaurus/prog/test/samp/ir-1/irsender
・ソース
http://asarinomisosoup.web.fc2.com/zaurus/prog/test/samp/ir-1/main.cpp
Qt本を図書館で見つけたので、それを参考にしつつ、ウェブ上のリファレンスマニュアルをみてリトライ。
というのも、昔々、ケータイでメールの本文を打つのがめんどくさかったので、ザウルスで作成したものをケータイに赤外線でとばそうと考えていた時期があったのですが、どうやってファイルを飛ばしたらいいのかわからなくてですねー。
「main.cpp」
#include <qapplication.h>
#include <qpe/ir.h>
#include <qpe/applnk.h>
#include <stdio.h>
#include <qfileinfo.h>
#include <qfile.h>
class IrSender : public QWidget{
public:
IrSender(const QString &file);
};
IrSender::IrSender(const QString &file){
QFile f(file);
if(!(f.exists())){
printf("No such a file : %s\n", (const char *)file);
exit(0);
}
QFileInfo *fi = new QFileInfo(f);
printf("Send File : %s\n", (const char *)fi->absFilePath());
Ir *ir = new Ir();
const DocLnk doc(fi->absFilePath(), FALSE);
ir -> send(doc, file);
connect(ir,SIGNAL(done(Ir *)),qApp,SLOT(quit()));
}
int main(int argc, char **argv){
if(argc != 2){
printf("Usage : irsender filename\n");
return(0);
}
QApplication a(argc, argv);
IrSender is(argv[1]);
a.setMainWidget(&is);
return a.exec();
}
はい。
動作する保証はありません。
私のところでは一応動いていますが。
あと、バグなどがおこるかもしれません。使うとするならば自己責任で。
それと、なんだか知らないけど、通信終了後にソフトが終了してくれません。
なので、通信が終わったら「Fn」+「C」で中断してください。
赤外線送信時は、やったことがある方ならわかると思いますが、送信中画面が表示されます。
この画面の表示のために、QApplicationが必要なんだと。
それと、絶対パス指定じゃないと送信できないぽい。
ただ、このプログラムを実行するときは、相対パスで指定しても、中で絶対パスに置き換えているので、問題ないです。
・実行方法
./irsender 送信ファイル名
引数に送信したいファイルを指定します。前述の通り、相対パス指定でも絶対パス指定でも実行できます。
ただし、複数ファイルの送信はできません。やりたかったら自分でプログラムを改造してみてください。
存在しないファイルを指定した場合は「No such a file ,,,」と言って終了します。
実行ファイルは「irsender」です。インストール形式ではないので、好きなディレクトリにつっこんで使ってください。逆に言うと、アンインストールというか、不要になった時は「irsender」ファイルだけ消せばいいです。
パスの通った場所に置けば、「./」なしでも使えると思います。実行権限があればですが。
今後は、コイツを使って何かできればいいなと思っています。