GtkAspectFrame スゲェ

renamedlg プラグインを更新しました、たった一日かよ!
いや、リネーム時に拡張子を選択から省く処理がなんか上手くいったんで。
UNICODE で計算しなきゃいけないのね、てか今まで試していた手段が悪かった。

つーことで。

そろそろ Y901x にアスペクト比変更機能を追加せねばなるまい。
そう思って色々調べてみたので覚書しておきます。

変更させるには2通り手段がある。
この比率で表示してね!と GStreamer に伝えてやってもらう、方法があるかは今は解らない。
もう一つは自分で縦横位置とサイズを計算して配置する、Y901 や Cinema はこの方法。
古い Windows は絶対位置配置なので簡単だったけど Gtk+ のパッキング方法ではどうやるの?

とりあえずデフォルトのソースサイズを無視するだけなら on_sync_message で

imagesink.set_property("force-aspect-ratio", False)

とこの部分を False にすればよいだけだ。

とにかく自力で計算しても配置方法が思いつかないので GStreamer から行う方法を探す。
上の例もあるし XvImageSink から設定できないかな?

xvimagesink

mediactrl.cpp – wxWidgets/src/unix – Code Search

wxWidget には便利そうなラッパークラスがあるんだね。
んー GstPad からサイズ取得はやったし… pixel-aspect-ratio なんてのも抜けるのか。
試しにやってみたら「そんなのネェ」と例外、うーよく解らん。
こんな感じで他も探すも見当たらず,何か関係ありそうな pixel-aspect-ratio で探す。

viewer.py – pitivi-0.10.0/pitivi/ui – Code Search

あ、、、、、、、、、、こんな方法が。

てか GtkAspectFrame なんつークソ便利なものがあったんだ。
早速 force-aspect-ratio を False にして実験じゃ!

aspect

あっさりアスペクト比維持は完成、GtkAspectFrame スゲェ。
しかし背景がボタン色でダサイ、こうしたら背景を黒くする方法はどうするの?
modify_bg は GtkAspectFrame や GtkVBox には効かないみたいだし。
Eye of GNOME みたい、Totem のコードでも漁るか。

てか変更するラジオメニューも作らなきゃ、こりゃ今日中に終わりそうもない。
つーことでプラグインのみ更新、さて続きをやります。