Gandharva.dll version 0.30c
multi function LiteStep-Module for Winamp
Copyright (C) 2000,2001 HOSHINO Yoshifumi (Yoshi)
http://go.iclub.to/yoshi/
yoshi.fm@anet.ne.jp

$Id: README.HTML,v 1.4 2001/06/16 14:31:54 Yoshi Exp $

目次


始めに
最終更新
tips
step.rc
step.rc のサンプル
!bang
開発環境
ライセンス
謝辞

始めに

このモジュールは マルチメディアプレイヤー Winamp のタイトルを取得して、 表示するモジュールです。同様の機能を持つモジュールに amptitle、LSXCommandClock などが ありますが、それぞれ日本語環境では、少々常用には難がありました。

このモジュールは他のプレイヤー用への改変をなるべく容易に行えるように設計しています。 お気に入りのプレイヤーがあるなら、ご自由に hack してください。ただし再配布に関しては GNU 一般公有使用許諾書に従う必要があります。

また、このモジュールは習作です。作者はCおよびLITESTEPに関してまだ十分な知識を持っていません。 そのことを十分に承知の上でご使用ください。また、これらに詳しい諸兄の指摘 (ここはこう書くべき、この方がよりスマートになるなど)をお待ちしています。

最終更新

0.30c(2001-06-12)

tips

windows の設定によって、フォントの色と背景色でアンチエイリアスが起こります。 この現象はスキンを使用する場合も同様で、この場合、背景色で縁取りをしたように見えます。 背景色を調整するか、windows の設定を変更することによってこれを回避してください。 (コントロールパネル>画面のプロパティ>"効果"タブと進み、"スクリーンフォントの縁を 滑らかにする"のチェックを外す (win2k の場合))

時間表示を左クリックすると、起動後でも経過表示と残り表示を切り換えられます。
ウインドウを右クリックすると Winamp を右クリックしたときに現れるメニューを表示できます。
タイトル表示を左ダブルクリックすると、ボリュームコントロールのダイアログが表示されます。
#これらの動作は v0.30b 以降でカスタマイズできるようになりました。)

Winamp の Preferences>Options>Display の"Scroll song title in the windows taskbar" は Off にしてください。表示が大きく崩れます。

Winamp を起動するために Winamp.exe の PATH を指定する必要はありません。ファイルタイプの "Winamp media file" に関連づけられているEXEファイルを レジストリから探して起動します。

step.rc

導入は LoadModule してください。wharf には入りません。

設定名 説明
データタイプ/デフォルト
GandharvaHiddenAmp new モジュールから Winamp を起動するとき、表示するかしないかを指定します。
boolean / false
GandharvaX [C][+|-]### new
GandharvaY [C][+|-]### new
モジュールを表示する X 座標および Y 座標です。共に負の値を受け付けます。 負の場合はスクリーンの右(下)からの座標になります。 また、数値の前に C を付けると画面中央からの位置指定と解釈します。
GandharvaX 120 画面左から120pixel
GandharvaX -200 画面右から200pixel
GandharvaX C-80 画面中央から左に80pixel
integer / 0
GandharvaMouseRemap 定義されているマウスクリックによる規定の動作をリセットして、ユーザーによって再定義します。 動作は!bang コマンドもしくは実行ファイルを指定します。ドキュメントを関連づけられているアプリケーションで 開くことも出来ます。
boolean / false
GandharvaMouseXXYZ [string] GandharvaMouseRemap が true の場合、このコマンドでマウスクリックによる挙動を定義します。 XX Y Z をそれぞれ、
XX..[AL / TT / TM]
ウィンドウ全体/タイトル表示/時間表示 の領域を〜
Y...[L / R]
左ボタン/右ボタン で〜
Z...[C / D]
クリック/ダブルクリックしたとき。

に置き換えます。規定の動作を例に示します。
GandharvaMouseALRC ウインドウ全体(AL)を、右(R)クリック(C)したとき
GandharvaMouseTTLD タイトル表示(TT)を 左(L)ダブルクリック(D)したとき
GandharvaMouseTMLC 時間表示(TM)を 左(L)クリック(C)したとき

この機能にはいくつかの制限があります。
1.領域の優先順位は AL > TT > TM である。
例えば 左クリックを ウインドウ全体と時間表示に指定しても両方は動作しません。 ウインドウ全体への指定のみが優先して実行されます。 また、時間表示とタイトル表示は両方に指定可能です。ただし両方の領域が Padding の設定で 重複しているとき、その範囲ではタイトル表示領域への指定が優先されます。
2.基本的には同じ領域に対してクリックとダブルクリックの両方を指定できない。
ダブルクリックをするとクリックも反応してしまいます。
string / NULL
GandharvaForceTransp 現在使用している背景色を透過色にします。 背景透過時にアンチエイリアス機能を使いたいときに指定します。
ただしこの指定によっても スキン(BITMAP)の透過色は影響を受けません。
boolean / false
GandharvaBitmap [filename] モジュールの背景に使用する BITMAP(スキン)を指定します。 BITMAP 内で FF00FF の色を使用している部分が透過されます。 配布されている theme から BITMAP を流用する場合を考えて GandharvaForceTransp での透過色変更の影響を受けません。
string / NULL
GandharvaTime [elapsed | remain] Winamp の時間表示を行います。現在のトラックの経過時間、残り時間を表示する事ができます。
elapsed ... 経過時間
remain .... 残り時間(マイナス符号がつきます)
またこの指定が未定義の場合、時間表示はされません。
string / NULL
GandharvaTimeFont [string]
GandharvaTimeFontColor [RRGGBB]
GandharvaTimeFontSize ###
GandharvaTimeFontBold
GandharvaTimeFontItalic
時間表示のフォントに関する設定です。それぞれの内容はタイトル文字列への指定と 同内容ですのでそれぞれを参照してください。
~Bold,~Italic: boolean / false
その他: タイトル文字列への指定を適用します。
GandharvaTimePadding # # # #
GandharvaTimePadding #
それぞれの一辺から時間が表示される領域までの余白の幅を上、右、下、左の順に 指定します。指定が一つだけの場合、全て同じ値が指定されたと見なします。 すなわち以下の二つの指定
GandharvaTimePadding 3 3 3 3
GandharvaTimePadding 3
は同じ意味を持ちます。またタイトル文字列の領域と重複する場合、こちらを下にして重ね合わせます。
integer / 0 (0 0 0 0)
GandharvaBorderSize # # # #
GandharvaBorderSize #
上、右、下、左の順にそれぞれ4辺の枠線の幅を指定します。 指定が一つだけの場合、全て同じ値が指定されたと見なします。 すなわち以下の二つの指定
GandharvaBorderSize 3 3 3 3
GandharvaBorderSize 3
は同じ意味を持ちます。
integer / 0 (0 0 0 0)
GandharvaPadding # # # #
GandharvaPadding #
それぞれの一辺からタイトルが表示される領域までの余白の幅を 上、右、下、左の順に指定します。指定が一つだけの場合、 全て同じ値が指定されたと見なします。すなわち以下の二つの指定
GandharvaPadding 3 3 3 3
GandharvaPadding 3
は同じ意味を持ちます。また、時間表示の領域と重複する場合、 こちらを上にして重ね合わせます。
integer / 0 (0 0 0 0)
GandharvaTextAlignH [left|center|right] タイトルをスクロールさせない場合、もしくはその必要がない場合に 表示する位置を指定します。それぞれタイトルを左詰、中央、右詰して表示します。
string / "left"
GandharvaDefaultString [string] Winamp が起動していないときにウィンドウに表示される文字列を指定します。 128バイト以下は切り捨てます。
string/バージョン表示
GandharvaCommandMode [none | basic] Winamp コントロール の為の !bang コマンドモードを指定します。 どちらかを選択してください。詳しくは !bang コマンドの項を参照してください。
none
コントロールをいっさい行わないか、他のモジュールに任せます。 Gandharva は Winamp 操作のための !bang コマンドを登録しません。
basic
基本的な(Winamp の全面のボタンの)操作に加えて nullsoftで 公開されている全ての操作を 行えます。 詳細は !BANG の章を参照してください。
string / "basic"
GandharvaKeepPrefix
GandharvaKeepSuffix
それぞれWinamp のタイトル表示でPrefix、Suffixを削除しません
Winamp2.xx
Prefix=TrackNo, Suffix="- Winamp (STATUS)"
Winamp3.xx
Prefix=Nothing. Suffix="(STATUS) - Winamp" (Alpha 3.00ZX (02/01/01) or later)
boolean / false
GandharvaAlwaysOnTop モジュールのウインドウを前面に表示します。
boolean / faise
GandharvaHidden LiteStep起動時、および再起動時に非表示にします。
boolean/failse
GandharvaWidth ###
GandharvaHeight ###
モジュールの幅、高さを指定します。スキンを使うときはBMP のサイズが自動的に 指定されます。
integer / width:100 Height:20
GandharvaBGColor [RRGGBB] ウインドウの背景色を指定します。Windows の設定によってはこの色とフォントの色で アンチエイリアスが起こります。これはスキンを使用している場合も同様で、背景色で縁取りした 様に見えます。回避するにはこの色を調整してください。
また、FF00FFを指定したとき壁紙を透過して表示します。
GandharvaForceTransp を指定したときはこの色を透過色に使用します。
COLORREF / 000000(黒)
GandharvaBorderColor [RRGGBB] モジュールの枠線の色を指定します。透過色を指定したときは壁紙が透過します。
COLORREF / 888888(灰色)
GandharvaFont [fontname] タイトルを表示するフォント名を指定します。
string / "MS UI Gothic"
GandharvaFontSize ### タイトルを表示するフォントのサイズを指定します。
integer / 16
GandharvaFontColor [RRGGBB] タイトルを表示するフォントの色を指定します。Windows の設定によっては、この色と背景色とで アンチエイリアスが起こります。スキンを使用する場合は背景色を調整してください。
COLORREF / FFFFFF(白)
GandharvaFontBold
GandharvaFontItalic
フォントの自体をそれぞれ太字、イタリック体にします。
boolean / false
GandharvaAutoScroll タイトルの長さが枠内に収まらないとき、テキストが左へスクロールします。
booleann / false
GandharvaScrollInterval ### スクロール時の再描画の間隔を ms (ミリ秒)で指定します。この値が小さいほどスクロールの速さが上がります。
integer / 500
GandharvaScrollStep ### スクロールの粗さ(細かさ)をドット単位で指定します。この値が小さいほどスクロールは滑らかに なりますが、スクロールの速度は遅くなります。
integer / 4

step.rc のサンプル

作者の step.rc 設定です。サンプルとして。

GandharvaAlwaysOnTop
GandharvaX -500
GandharvaY 0
GandharvaWidth 180
GandharvaHeight 20
;GandharvaHidden
;GandharvaHiddenAmp

;GandharvaDefaultString "Gandharva ready!"
GandharvaFont "HGP創英角ポップ体"
GandharvaFontSize 14
GandharvaFontColor FFE0E0
;GandharvaFontBold
;GandharvaFontItalic
GandharvaPadding 4 3 2 40
GandharvaTextAlignH center

GandharvaForceTransp
GandharvaBitmap skin_ampdisp.bmp
GandharvaBGColor CD6E6E
GandharvaBorderColor FFE0E0
;GandharvaBorderSize 1 0 1 0

GandharvaAutoScroll
GandharvaScrollInterval 50
GandharvaScrollStep 1
;GandharvaKeepPrefix
;GandharvaKeepSuffix
GandharvaCommandMode basic

GandharvaTime elapsed
;GandharvaTimeFont "Tahoma"
;GandharvaTimeFontColor 000000
GandharvaTimeFontSize 12
;GandharvaTimeFontItalic
;GandharvaTimeFontBold
GandharvaTimePadding 5 135 3 0

;GandharvaMouseRemap
;GandharvaMouseALRC !GandharvaDispMenu
;GandharvaMouseTTLD !GandharvaSndvol
;GandharvaMouseTMLC !GandharvaToggleTime

!bang

ウインドウコントロール

Gandharva の表示をコントロールします。

!GandharvaHide
現在の状態に関わらず、非表示にします。
!GandharvaShow
現在の状態に関わらず、表示状態にします。
!GandharvaToggle
ウインドウの表示、非表示を切り換えます。
!GandharvaToggleTime
時間表示を経過、残りと切り換えます。
!GandharvaSndvol (*注)
sndvol32.exe (ボリュームコントロール)を起動します。
!GandharvaDispMenu (*注)
Winamp のメインメニューを表示します。

(*注)この機能はモジュール内部で呼ぶためのコマンドです。予告無く改名、削除するかもしれません。

Winamp コントロール

Winamp を shortcut などで操作できます。またGandharvaCommandMode の設定によってこれらを無効にすることも可能です。

!GandharvaCmdPrev
一つ前のトラックに戻ります。
!GandharvaCmdPlay
現在のトラックを再生します。Winampが起動していない場合は 立ち上げます。(再生しません)
!GandharvaCmdPause
再生中のトラックを一時停止します。 また一時停止中のトラックを再開します。
!GandharvaCmdStop
再生中のトラックを停止します。
!GandharvaCmdNext
次のトラックに進みます。
!GandharvaCmdPLEdit
プレイリストの表示/非表示をトグルします。
!GandharvaCmdOpenFile
Open File(s) ダイアログを開きます。
!GandharvaCmdPower
Winamp を 起動/終了 します。
!GandharvaCmdExtension #####
Winamp に送るメッセージのパラメータを指定する形で実装されています。 これによって Nullsoft が公開している全ての操作が可能です。 メッセージの一覧は APPENDIX.TXT に記してありますのでそちらを参照してください。

!GandharvaCmdExtension 40154 プレイリストの先頭に戻ります。
!GandharvaCmdExtension 40144 5秒間巻き戻します。

開発環境

Microsoft Windows 2000(SP2)
Litestep 0.24.6 (20010102)

Borland C Compiler 5.5.1
Microsoft Visual C++ 6.0(SP5)

LoadModule $lsdir$desktop2.dll
LoadModule $lsdir$shortcut2.dll
LoadModule $lsdir$popup2.dll        ; 20010102 hacked 1
LoadModule $moduledir$dwarf.dll     ; version 1.11 hacked 1
LoadModule $moduledir$tasks.dll     ; version of Tasks.dll .90 (j hack)
LoadModule $moduledir$grdTray2.dll  ; v2.3 beta 2 hacked #3
LoadModule $moduledir$gandharva.dll
LoadModule $moduledir$Nornir.dll    ;拙作時計表示モジュール

動作確認も上記の環境で行っています。

ライセンス

 copyright (C) 2000,2001 HOSHINO Yoshifumi (Yoshi)

   本プログラムはフリー・ソフトウェアです。あなたは、Free Software Foundation 
   が公表したGNU 一般公有使用許諾の「バージョン2」或いはそれ以降の各バージョ
   ンの中からいずれかを選択し、そのバージョンが定める条項に従って本プログラム
   を再頒布または変更することができます。

   本プログラムは有用とは思いますが、頒布にあたっては、市場性及び特定目的適合
   性についての暗黙の保証を含めて、いかなる保証も行ないません。詳細については
   GNU 一般公有使用許諾書をお読みください。

   あなたは、本プログラムと一緒にGNU 一般公有使用許諾の写しを受け取ってい
   るはずです。そうでない場合は、Free Software Foundation, Inc., 675 Mass Ave,
   Cambridge, MA 02139, USA へ手紙を書いてください。

謝辞

このモジュールの前身 AmpDisp.dll は Gustav Munkby氏 のGrdTray(v2.3 beta 2) を hack して作成しました。従って自分で書き直した本モジュールも大まかな流れは非常に 参考になっています。有用なプログラムをソースコードと共に公開していただき、感謝し ています。

また、LITESTEPに関する情報を公開されているすべてのホームページの webmaster 様 に感謝します。