2007-03-01から1ヶ月間の記事一覧

sound_playerのリライト完了

サンプルsound_playerをWin32 GUI Genericsを使わずに書き直しました。 libs/audio/example/win32/sound_player/ Win32 APIを直接読んでいること以外は、元のコードとほぼ同じです。 ついでにWAVファイルにも対応しています。 Jamfile.v2はこうなっています…

GWLP_USERDATA

昨日せっかくstdcall_thunkを作ったのですが、今回は使わないことにしました。 というのも、ウィンドウクラスは「クラス」であるはずなのに、サンクでインスタンスと結び付けてしまうと、「クラス」でなく「インスタンス」になってしまう気がしたからです。 …

stdcall_thunk

昨日のクラス名が長すぎる問題ですが、早速 direct_sound_buffer → direct_sound_sink direct_sound_capture_buffer → direct_sound_source に変更しました。 これで、vc8ideディレクトリ配下以外は、inspectに引っかからなくなりました。 vc8ideディレクト…

のんびり調整中

Boostのinspect(ソースコードやドキュメントがBoostのガイドラインに従っているかチェックするツール)が1.34でかなり手を加えられているので、久々にチェックしてみました。 結果、一部のドキュメントでbroken linksが検出されたので修正しておきました。 相…

wchar_t対応版libstdc++

昨日の続きです。 libstdc++のconfigureスクリプトを確認したところ、iconvとlanginfoが動かないと、wchar_t対応にならないようでした。 iconvはGNUのものを使ってもいいのですが、configureの要求するシンボル名と違うことと、実行ファイルを配布する際に別…

MinGWのビルド on Vista

今更ながらワイド文字対応のMinGWを作ろうと思って、gccのビルドを試していたのですが、なぜか「Out of memory」で失敗します。 エラーになるファイル(insn-modes.c)を確認したところ、ファイルサイズが3GBもありました。 gccはこのファイルを丸ごとメモリに…

Boost1.34 移行準備完了

一通りBBv2でのチェックが完了したので、Boost1.34対応用に作ったブランチをマージしました。 BBv1にほとんど影響がなかったのでブランチを作った意味はあまりありませんでした。 むしろ、変更の履歴が辿りにくくなった感じです。 一応、 Boost1.33.1 + BBv1…

Shutdown Day 終了

今日はShutdown Dayということで、一日中パソコンの電源を落としていました。 なので、作業の進展はなしです。 実は友人の結婚披露宴に出席していたので、どちらにしろパソコンをほとんど使えない状況だったわけですが、、、。 1日過ごした感想としては、な…

まもなくShutdown Day

http://www.shutdownday.org/ ↑既にサーバーはシャットダウンされている模様

library-path feature

昨日の<search>に関する問題は、BBv1同様<library-path>を使うことで解決できました。 <library-path>はマニュアルに記述がありませんが、BBv1のものと同じと考えてよさそうです。 これを使うと、昨日の例も素直に実装できます。 # site-config.jam # 前半部は略 # 汎用 alias dxsdk : : : : <include>$(DX</include></library-path></library-path></search>…

search feature

昨日の<search>が動かない問題は、<search>の使い方を間違えていただけでした。 BBv1の<library-path>に相当するものだと思って使っていたのですが、どうも<search>は<name>と一緒に使わなくてはいけないようです。 ドキュメントでも、 The name property specifies the name that should be passed to th</name></search></library-path></search></search>…

続々 BBv2に移行中

昨日はHamigaki.Iostreamsと間違えてHamigaki.ArchiversのJamfileをコミットしていたので、改めてHamigaki.IostreamsのJamfileとHamigaki.Archiversの修正版Jamfileをコミットいました。 archivers/test/Jamfile.v2 iostreams/build/Jamfile.v2 iostreams/te…

続 BBv2に移行中

BBv2でライブラリのビルドができました。 Hamigaki.FilesystemのJamfile.v2 昨日動かなかったのは、プロジェクトのルートにあるJamfile.v2がバグっていたせいでした。 Jamfile.v2の差分 projectのrequirementsに書いた「$(BOOST_LIBPATH)」が邪魔だったよう…

BBv2に移行中

ビルド不要のライブラリのユニットテストのみBBv2用のJamfileを用意しました。 Hamigaki.BinaryのJamfile.v2 boost-1_34というブランチを作ってみたんですが、ViewCVSだと探しにくいですね。 trunkのリビジョンのまま、branches配下を覗くと空っぽだったので…

Boost1.34 移行準備開始

ちょうど切りがいいので、そろそろBoost1.34へ移行準備を始めようと思います。 1.34からはビルドシステムがBoost.Build V2になりますが、HamigakiライブラリのJamfileをV2に移行するのは面倒なので、ひとまずヘッダとライブラリだけ1.34、Boost.Buildは1.33.…

ISO 9660:1999

今日はISO 9660:1990の拡張ボリューム記述子に対応しました。 iso_directory_writer.hppの差分 拡張ボリューム記述子はISO 9660:1988の副ボリューム記述子の一種で、 ファイル名は207文字まで ファイル名(ベース名)、拡張子、バージョン番号の区切りなし デ…

ISO 9660 Level 3

今度こそISO 9660 Level 3に対応しました。 iso_file_sink_impl.hpp iso_file_source_impl.hpp ISO Level2とLevel3の違いは、Level3が複数エクステントに対応していることです。 ISO 9660では構造上、エクステント(ファイルの内容)のサイズが4GBまでに制限さ…

ISO 9660 Level 2

ISO 9660 Level 3に対応といきたいところですが、Level 2の出力が未実装だったので先に対応しました。 iso_directory_writer.hppの差分 Level 1/2の選択は、ボリューム記述子で行うことにしました。 #include <hamigaki/archivers/iso_file.hpp> namespace ar = hamigaki::archivers; void hog</hamigaki/archivers/iso_file.hpp>…

久々にRegression Test

ISOイメージのテストも含めて、久々にRegression Testをしました。(Cygwin以外) http://hamigaki.sourceforge.jp/status/ 多少修正が必要でしたが、CodeWarrior以外は動いています。 CodeWarriorでエラーになっているのは多分コンパイラのバグです。 少し弄…

iso_date_time_test

今日もISOイメージのテスト追加とドキュメント加筆です。 Rock Ridgeのテストで、mkisofsが使用しているRRIP 1991Aとドラフト規格IEEE P1282の両方に対応させ、シンボリックリンクのテストも追加しました。 rock_ridge_test.cppの差分 エントリヘッダで使用…

iso_file.hppのドキュメント

iso_file_source/iso_file_sinkのドキュメントを追加しました。 http://hamigaki.sourceforge.jp/doc/html/archivers/format.html#archivers.format.iso 未実装の機能も結構あったので、明示しておきました。 ISO 9660:1988 Level 3 は実装しておきたいとこ…

Vista用アップデートもろもろ

VS2005 SP1 Update for Vistaが正式版になって、ようやくvsjitdebuggerが動くようになりました。 これが使えないとbjamからのデバッグが面倒なので助かりました。 あと、Windows Vista 用 WinHlp32.exeのおかげでDanteWinのヘルプも見れるようになりました。…

iso_file.hppのテスト

ISO 9660/Joliet/Rock Ridgeのテストを追加しました。 iso9660_test.cpp joliet_test.cpp rock_ridge_test.cpp テストでいくつか大きなバグも見つかったので修正しました。 空のディレクトリの出力がおかしかったバグの修正 再配置した箇所以外のディレクト…

iso_file_sink完成

残りのSystem Use Entryの出力を実装しました。 "TF" System Use Entry "PN" System Use Entry "SL" System Use Entry まだ未実装のSystem Use Entryも残っていますが、iso_file_sourceが対応しているものは全て実装できました。 明日からテストとドキュメン…

続 rr_movedとリンクカウント

ディレクトリの再配置後のリンクカウントの修正を実装しました。 rock_ridge_directory_writer.hppの差分 再配置後は、 /rr_moved/..が増えるため、ルートとルートへのハードリンク(/dir/..など)のリンクカウントが1増える 再配置されたディレクトリの数だけ…

rr_movedとリンクカウント

iso_file_sinkにリンクカウントの自動計測機能を追加しました。 iso_file_sink_impl.hppの差分 joliet_directory_writerのコードを弄りたくなかったので、basic_iso_file_sink_impl側であらかじめカウントするようにして、ディレクトリの再配置が発生したら…

"PX" System Use Entryの出力

かなりいい加減ですが、"PX" System Use Entry(ファイル属性)の出力を実装しました。 iso_file_sink_impl.hppの差分 現在判明している問題点は、 ルートディレクトリとrr_movedのファイル属性が出力されない ディレクトリのリンクカウントが正しくない です…

System Use Fieldの組み立て

"NM" System Use Entry(ファイル名)の出力を実装しました。 rock_ridge_directory_writer.hppの差分 "."や".."のSystem Use Fieldはリンク先のディレクトリのSystem Use Fieldからコピーするわけですが、"NM" System Use Entryで設定される名前はリンク先の…

続々 Rock Ridgeの再配置

ようやくRock Ridgeの再配置処理が実装できました。 rock_ridge_directory_writer.hppの差分 "CL"/"PL" System Use Entryのリンク先ブロック番号は、リンク先のレコードのポインタを記録しておいて、(ブロック番号が確定している)出力時に参照するようにしま…

GFFサミット行ってきました

行ってきました。 受付開始時間直後に行ったら、既に半分以上席が埋まってました。 以下、メモした内容。変なことしかメモってません。 堀井雄二氏 いたずらが好きなんで、(ゲーム作りも)いたずらの延長 DQ9のパーティーを組むのはルイーダの酒場 (DQで毎回)…