2009-01-01から1年間の記事一覧

wave.cfg

今日もwaveをいじってました。 waveをそのまま起動すると、インクルードディレクトリや事前定義マクロが設定されていないので、 コマンドライン引数で指定する必要があります。 ただ毎回設定すると面倒なので、設定ファイルを使った方がよいです。 既定では…

floatのストリーム

C++

「floatのストリームってありなの?」というCryoliteさんからの宿題が残っていたので調べてみました。 コードを確信したところ、Hamigaki.Audioでは紆余曲折あって、Sink/Sourceレベルでしか使用できないようになっていました。 なので、Boost.Iostreamsとは…

Twitterアカウント作りました

とりあえずアカウントだけ。 http://twitter.com/yhamigaki 「y_hamigaki」は偽者なのでご注意を。

Boost.Waveシェル

颯爽と去っていくだけではアレなので、デバッガ上でwaveを動かしてみようと思ったのですが、 何気にwaveにインタラクティブモードがあったので、これで十分な気がしてきました。 C:\Boost>wave.exe -t - Wave: A Standard conformant C++ preprocessor based…

numpunctの補足

C++

numpunctは規格の英文読み違えてました。 debug_numpunct::do_grouping()で64ビット整数用に20グループ分一桁の指定をしていましたが、 最後のグループより後ろは最後の指定に従うため、 std::string do_grouping() const // virtual { return "\1\1\1\1\1\1…

lexical_castと大域ロケール

lexical_castが流行っているみたいなので、飛行機の中でコードを読んでました。 素朴な実装だとstringstreamに挿入(<<)して抽出(>>)するだけですが、 既定でstringstreamに大域ロケールが吹き込まれるため大域ロケールの影響を受けて出力が変わってしまいま…

続・Boost.Coroutineについての補足

http://d.hatena.ne.jp/melpon/20091212/1260584012 発表者が既に書いてたので、未回答の箇所を補足。 pthreadでマルチスレッドな環境で使えるの? pthreadが特定の実装を指す言葉でもないので、すべての実装で動くかは保障できないです。 Hamigaki.Coroutin…

Boost.Coroutineについての補足

昨日のBoost.勉強会でBoost.Coroutineについていくつか質問があったので、補足しておきます。 Hamigaki.Coroutineのコードはすっかり忘れていたので、すぐに答えられなかったのでした。 self.exit()は必要なの? これはコルーチンの最後の結果を返せるときは…

Boost.勉強会/Boost.懇親会 雑記

いまさらですが、忘れないうちに。 お二人にサインもらった Cryoliteさん、uskzさん、道化師さん、ir9さんと話せた shinhさんが隣に居たけど声かけられなかった、残念 参加者の年齢層低め、自分が上のほうでした lexical_castは数値型以外にも使えます! Boo…

会場から

ノートPCが鞄にはいらなかったので、D4を持ってきました。 一番後ろ中央にいます。柱でスピーカーが見えなかったり。

文字型三種

C++

「charでなく、signed char/unsigned charをストリームに出力した場合何がでるんだっけ?」 Boost.懇親会でCryoliteさんと話していて、宿題にしていた疑問です。 何か罠があっていつもキャストしてから出力していたのですが、思い出せず。 帰ってすぐ確認し…

続・ナゾ042

例のナゾですが、いつの間にか分かりにくい場所にお詫びが載っていました。 http://www.layton.jp/majin/nazo042.html この修正に合わせるには、前のコードの360.0fを足している箇所を消せばよいです。 ただ、修正後のナゾだとヒントと数が合わなくなるので…

明日はUSTREAM

なんか休めることになりました。 こんなことなら補欠でも登録しておけばよかったです。 というわけで明日は17:30頃まで、おうちでUSTREAMです。 懇親会で会いましょう!

ナゾ042

「レイトン教授と魔神の笛」のナゾ042が徹夜明けの頭には辛かったのでプログラムで解いてみました。 でも、なんか答えが違う、、、。 以下、激しくネタバレ。

ASIO4ALL on x64

Windows 7 (x64) にASIO4ALL (x64)をインストールしたのですが、IASIO::setSampleRate()が必ず失敗します。 IASIO::setSampleRate()しなければ動くようで、どうもdouble引数の受け渡しがうまくいっていない模様。 Winampのout_asio(x64).dllも動かないので自…

cdecl_thunk on x64

__cdecl呼び出し規約用メソッドサンクcdecl_thunkをx64に対応させました。 <hamigaki/detail/x64/cdecl_thunk.hpp> x64呼び出し規約に関してはMSDNに記載されています。 http://msdn.microsoft.com/ja-jp/library/7kcdt6fy(VS.80).aspx 概要だけ書くと、 引数は可能な限りレジスタ渡し、乗らない場</hamigaki/detail/x64/cdecl_thunk.hpp>…

Hamigaki.Coroutine on x64

手始めにHamigaki.Coroutineをx64に移植しました。 差分 Win32ではファイバーデータのポインタがfs:[0x10]に入っていましたが、Win64ではgs:[0x20]になるようです。 また、ファイバーでないスレッド用のダミーポインタ値は0x00001E00のままで動いているので…

make_project

trunkのBBv2でHamigakiライブラリをビルドできなくなっていたので、jamファイルを修正しました。 差分 project.initializeが__binding__変数を要求するようになったようです。

BBv2 on x64

とりあえずBoostのビルドが出来る環境だけ整えました。 Boostの退行テストを見る限り、 VC++は「address-model=64」でx64用ビルドができるようです。 ちなみにbjam自体の64ビット版は64ビットコンパイラにパスを通した状態でbjamをビルドすれば出来ます。

VAIO買いました

急に一週間ほど休みが入って暇だったので新しいマシンを買ってみました。 条件は 休み中に使いたい→持ち帰り可能なノート 64ビット Windows 7 (プリインストール or 選択可能) オンボードでないグラフィックボード Blu-rayドライブ Intel VT対応 SSD あたり…

1.39.0対応

Boost 1.39.0が出てたのでSVN trunkで再テストしました。 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi/hamigaki/trunk/status/cs-win32.html?revision=1748&root=hamigaki 修正なしで全てpassしました。

stop()後のノイズ削除

direct_sound_sinkでstop()した後ノイズが再生されるとのバグ報告を受け、close()を修正しました。 差分 ↓バグはこういう状況でした。 // 現在のバッファが書き込み中だったら if (offset_ % buffer_size_ != 0) { // 残りを0で埋める std::streamsize amt =…