o sh 系シェル で 環境変数 progname.名前 というフォーマットは、設定できない みたいなので、progname_名前というフォーマットに変更。 o mgterm/vt.c 色を設定できるようにした。 名前 (環境変数 mgterm.名前 や 名前 で 指定) FGCOLOR BGCOLOR FGCOLOR[0-7] (ESC [ 3[0-7]m で指定する色) BGCOLOR[0-7] (ESC [ 4[0-7]m で指定する色) 色のフォーマット #rrggbb での指定 (rr,gg,bb は 16進数 2桁で、red,green,blue に対応) または、次の 色名 Black Silver Gray White Maroon Red Purple Fuchsia Green Lime Olive Yellow Navy Blue Teal Aqua o cygwin 対応 --- やないさん なんと! Windows 上で MGL2 が 動くそうです。(cygwin が必要ですが) mgterm も cygwin で動くそうです。 ただし、一部 MGL2 の make の環境の 整合性の問題があって、たぶん そのままでは make できません。( ここはやないさんと調整中) o mgterm/mgterm.c , lib/emsvr.c -- cmdline が指定された時、system を使わないように変更。 -- USE_SPAWN,HAS_SPAWN 実験的に swapnv() を使ってみるコードを いれた。 o emsvr.c recv で 10 個のパケットを受け取るようにしていたが、 パケットの倍数で recv できないと動かないので、修正。 o keymap.c で CAPS_LOCK の動作が変というレポートが来たので、修正。 CAPS_LOCK については、'a' - 'z' を 'A' - 'Z' に、'A' - 'Z' を 'a' - 'z' にする状態 という定義にした。 o md_vga.h パレットがようやくつかえるようになった。 4 レベルグレースケール + 2 レベルカラー 6 色 = 16 色。 + FreeBSD-2.2.X を中途半端に入れてある環境では マウス使うと変になるので、ちょっとごまかしの コードを入れた。 (たぶんヘッダファイルがあっていないのが問題なので、普通は困らないはず) o em_comm.h emcli.c emsvr.c Makefile -- socket への read/write を recv/send に変更 (for cygwin) -- mmap による共有メモリより send/recv の方が速いマシンのために テスト的に 画面イメージを 送り付ける方法を追加。 (MGL がこれから network 対応するという意味ではないです。) これを使うには、config.mk に USE_SENDIMAGE=y を追加する。 o emcons.c console switch での デバッグメッセージが、text-mode のとき 出力され、hpcmips でおかしな動きになるので 修正 (佐藤さん) o mgterm /dev/pts 対応 -- /dev/ptmx を使うコードを rxvt を参考にして入れてみた。 (動作確認は Linux のみでしか行っていない) このコードを使うには、 config.mk で USE_PTMX=y を設定する。 o mgl_getenv() の新設と getenv -> mgl_getenv への変更。 環境変数に設定するかわりに MGLDIR/registry か $HOME/.mgl/registry というファイルに設定することができる。 フォーマットは、 progname.変数=値 変数=値 progname は、プログラムの実行ファイル名 (__progname) progname.変数=値 があるときは、従来のものをデフォルトとして優先させる。 値が空のときは、unset する指定とみなす。 環境変数も progname.従来の変数 をサポート。 対応した環境変数はとりあえず MGLIM MGLGP MGL_MAXCOLOR (emx11) MGL_WHITE, MGL_LIGHTGRAY, MGL_DARKGRAY, MGL_BLACK (emx11) MGL_KEYMAP (obsoluted) 例: mglsvrx.MGLGP=gpnine.so mglsvrx のときだけ、MGLGP を設定する。 MGLIM=imcanna.so mgterm.MGLIM= MGLIM は、mgterm のときだけ設定*しない* o md_linuxfb.h linux-VR で バックライトON/OFF ブライトネス調整のサポート FBIOPUT/GET_BACKLIGHT での値が、ブライトネス調整も兼ねている ので修正。機能追加 ブライトネス調整は、FBIOGET_BACKLIGHT で取って来た値を +- して FBIOPUT_BACKLIGHT する。( 0 になるときは なにもしない) linux-VR では 20010117版以前では、最大値を越えて BRIGHTNESS_UP する とちょっと変な動きをする。 ( Linux 7k(PSION) はだいじょうぶかな? ちょっと心配) o md_vga.h (新規) -- FreeBSD で console および keymap をテストするために ダイレクトに VGA を アクセスする md を作った。 どの VGA でも使える範囲ということで、640x480x16 色 固定。 このなかで FAKE_COLOR16 という define があるが、16 色で 適当に色を出すオプションのつもり。そうでなければ、16 level グレー スケールにする予定なのだが、パレットの設定がちゃんと動かない。 Linux ではこのようなものは必要ないが、NetBSD/i386 では ちょっと手直しすれば使えるかも知れない。 o nine をソース tree に追加 - 手書き入力というか、unvisual keyboard というか とにかくキーボードに 変わる入力方式です。 まだ開発途中ですが、CVS に登録しないと 履歴がよくわからなくなって きたのもあって、見切り発車的に CVS tree にマージさせていだだきました。 作者は、有野さん。(kazuma@sola.c.u-tokyo.ac.jp) o md_hpcmips.h NetBSD 1.5 では、WSDISPLAYIO_PARAM_BACKLIGHT 等が入っていないために コンパイルエラーになることが判明。#ifdef を追加して 入っていない とき 機能を入れないように修正。 ( どうしてもこの機能を入れたい場合は、/usr/include/dev/wscons を update して make し、current カーネルを使用してください。) o emcons.c - NetBSD/hpcmips でのバグ修正。 TEXT_MODE にしないケースのための条件が間違っていたので修正。 - NetBSD/hpcmips での不具合回避 画面切替えで、TEXT_MODE のままになるケースが多い。 原因はたぶん、TEXT_MODE にするための表示と emcons_refresh が同時進行 的に動作するため。 mgl で delayed refresh をかけるようにして、問題回避。 o NetBSD/keymap.c Console 切替えのキーマップを読むように修正。( 通常 ALT+F1 ... F10 ) o emcons.c md_hpcmips.h vt_get_active() の追加。( MD の中で使っても良い ) VT_GETACTIVE がある場合はそれを使い、 そうでなければ、VT_GETSTATE を使って実装した。 ( よくは知らないが、VT_GETACTIVE の方がもともとの機能らしい) いまのところ、hpcmips での SUSPEND で TEXT_MODE にしない コードの ためだけに使われている。( SUSPEND のケースだけが、自分から自分への 画面切替えがおきるようである。マチガイ : NULL Screen (0) からの切替えでした) また、画面切替え時に マウスを離さないと 他の画面でマウスが利用できない。 このため、MD_MOUSE_RELEASE/MD_MOUSE_CATCH を追加し、md_hpcmis.h で対応。 ↓ の問題についても対応。 o mgl2.c event_man.h mgl_add_atfork_func() の追加 (内部関数 not API) 画面切替えのとき、マウスを close しないといけない場合があるが、 fork したときに 子プロセスが、マウスを open したままなので 問題があることが分かった。 mgl_add_atfork_func で close 関数を登録しておけば、 fork 時に呼ぶことになっている mgl_ignore_auto_close() の中で close() される。 ------- alpha-020-pre3 --------------------------------------- o md_hpcmips.h - backlight on/off , contrast up/down, brightness up/down 対応 - virtual console 切替え対応。 注1) 現在は MENU + 英字のオペレーションまでしかできない。 注2) R300 系(shared_fb accel)で、virtual console 対応するには、 コードをかなり書かないといけないために、デフォルトでは ON に していない。 #define NO_VIRTUAL_CONSOLE #define USE_SHARE_FB とすれば、強制的に shared fb モードになる。ただしこの場合は、 virtual console は使えない。(suspend の問題 は OK) 以上 佐藤さん。 o emcons.c - hpcmips でのサスペンド(= 自分から自分への画面切替え) で MD_TEXT_MODE() を呼ばないように変更。 ( shared_fb accel (R300系)での resume 時の画面崩れ対応) - 画面切替え時に 最後に入力した文字の autorepeat が かかるバグの修正。(hpcmips のみ) - screen 復帰時に modifer status を 強制的に 0 にするよう修正。 --- 以上 佐藤さん。 o NetBSD/keymap.c wscons=YES としているときは、keymap を /dev/wskbd0 から取得 しないといけないことが判明したので修正 --- 佐藤さん。 o keymap.c MENU + 英字 で action を起こしたときも 文字が入力されてしまう バグの修正。 o keymap.c NetBSD/hpcmips 等で CONTRANST 調整等の 操作を keymap にいれるのは 困難だということがわかったので、MENU + 英字でオペレーションを 定義。( MENU + XXX は、MGL ローカルな定義 として 機種依存性をなくす かわりに、再定義できないことに する。) MENU + [q-o] : console 切替え (1-9 に対応) MENU + 'c' : contrast_up MENU + 'v' : contrast_down MENU + 'b' : brightness_up MENU + 'n' : brightness_down MENU + 'm' : backlight_toggle ( ちなみに、刻印どおりのオペレーションをいれること とは競合しないはずなんで、これを使わなくてはいけないという ことではない。) ------- alpha-020-pre2 --------------------------------------- o md_linuxvr.h -- キャリブレーションできないバグの修正 (中西さん) ようやく linux VR でも mglcalibrate 使って キャリブレーションができるようになりました。 o emsvr.c emcli.c -- config.mk に VIRTUAL_FRAME_ADDR の導入 linux VR で mglsvr を使うと画面が 乱れるという問題があり share する frame buffer の adreess を 一致させると解決する ことが分かった。 o recpoint.c -- 斜めの draw_line が表示されないバグの修正 o keymap.c -- 右 ctrl キーが効かないバグの修正 -- linux VR で 右矢印 キー(RAW CODE 0) が効かないバグの修正。 ------- alpha-020-pre --------------------------------------- o キャリブレーション 用インターフェイスを新設 o linux vr で、MG2 R300,R700,R510,R520 および全カシオペアで 画面が崩れるバグの修正 ( 佐野さんのレポートより ) o linux vr での動作確認 および md_linuxvr.h の fix (中西さん) - mouse down とみなす 筆圧を /etc/pointercal の 第8 パラメータに追加。 ( なければ、デフォルト値 750 を使用) o 終了処理の問題は、dec3k.c の get_pixstream の バグと判明。 emcons.c でマウスパターンを作るときに マスク付き get_pixstream を 使っているが、ここで メモリ(termios のバックアップ)を壊していた。 o 終了処理 に問題アリ --- いろいろやっていますが 直っていません。 ダメだと分かっているのは、linux-VR(R430) , hpcmips(シグマリオン) hpcmips ドコモバII/hpcmips カシオペア/i386 Linux fb/ などは OKみたい。 o emcons.c マウスが押されている間は、イベントを見る間隔を 100ms(程度) から 10ms(mouse_tick) にする改良。-- ただし MGL 自体が遅いのでせいぜい 20ms 程度のスピードにしかならない模様。 o dec4rr(モバギ R300系,カシオペア) の dither がおかしいので修正。 - 濃淡が逆になっていました。申し訳ないです。 o mgl_set_keymode() で バッファのフラッシュをするようにした。 o MENU のオペレーション追加 - MENU + マウスdown のときは、down イベントを発生しない - MENU + マウス up のときは、up イベントを発生しない o keymap 対応の仕上げ --- 神木さん --- 共通部 keymap.c を lib/{Linux,FreeBSD,NetBSD} に分離 mglkey.h の分離 mgl_signal() の実装。(外部からの リクエストを受けるための仕組み) --- Linux 固有 Console switch 対応 (全 Linux) LCD contranst, backlight に対応(Linux/7k,linux/VR 等) #ifdef の シンボルを __linux__ に統一 --- PSION 固有 keymap の仕組みの完成 --- これでやっと キーボードを統一的に あつかえるようになった。 o forcus -> focus の スペルミスを全修正 ( はずかしいことに気がつきません でした) o MENU + 4 でマウスカーソルを ON/OFF できるようにした (emcons) o MENU + [123] で mgl_mouse_shift が 012 に設定される機能を追加。 ( emcli でも 対応 ) o emcons みなおし と キーマップ取得コードの一応の完成 (linux は未確認) o config,mk-xx に SUPPORT_X_KEYMOUSE を追加。 SUPPORT_X_KEYMOUSE=y で MENU [+SHIFT] Cursor で、マウスカーソル移動をサポート(emx11) o keymap の 方式を変更(ベースのコードは完成 )。 MGLAPI.doc/ memo/keymap.doc を参照 o hpcmips で タッチパネルの計測誤差がかなりあり、 一点を押えるときに手ぶれのような現象になることが分かった。 そのため、タッチバネルでのドラッグをスムースにするコードをいれた。 o config.mk-hpcmips+x config.mk-linuxfb+x このコンフィグでは、X クライアントと単独アプリの両方をサポートした ライブラリを作ります。 また、mglsvrcons と mglsvrx の両方を作ります。 o emcons.c , mgl2.h ... mgl_keyboard_reopen の追加 ( Xmgl 対策 ) mgl_keyboard_reopen = 1 として open_graph() を呼ぶと stdin の入力を使わずに、自分で open するようになる。 o mgterm/vt.c 1) screen を使ったとき core-dump する問題の対処 --- いまいさん (imai@nisoc.or.jp) 2) カラーシーケンス 39 49 に対応 (jed で問題になるらしい) --- 高木さん 3) w3m マウス対応の バグ修正。 w3m でマウス対応するためには、w3m のソースを修正する 必要があります。kterm と strncmp しているところに mgterm, mgterm-color を追加。 o mgterm.cap 1) Linux tic 用に tc を使わないように 修正 2) color 用エントリが、mgterm に含まれていたのを削除 o sqMgl.c -- 藤田さん 1) sqMgl のイベント処理の問題を解決! 2) sqMgl でスタイラスを使ったときの問題(ぶれ) の対処 o hpcmips --- 佐藤さん 1) HPCFBIO_GCONF で情報がとれる場合はそれを利用 2) mglcons.sh で、最後に reset するようにした 3) kernel との不整合を起こしたときに swap/memory の値が とれないが、問題を起こさないように修正 4) シグマリオン対応 o mgterm.cap の cb エントリの 対応( mgterm が正しく動いていなかった) mgterm カラー対応 --- 高木さん o draw_font で不正なコードがきたとき のエラー処理 --- やないさん。 o emx11 画面を rotate しているときのマウス座標が間違っているバグ修正 mgl_set_key_mode(MGL_SK_EXMOUSE_EVENT) で、最初にマウスボタンを一回押さ ないといけないバグの修正。--- 神木さん。 o mgl_set_key_mode(MGL_SK_EXMOUSE_EVENT) のとき、get_key で 0x80ffffff が帰る場合があるバグの修正。 o mgterm.cap に mgterm-color の追加 o mgterm マウス対応 (termcap は未対応 .. というかやりかたがわからない)