約 1,533,388 件
https://w.atwiki.jp/ghiden/pages/8.html
Unit Test Frameworks Tools for High-Quality Software Development "Unit Test Frameworks"という本をかいつまんで読んでみてTDDをGUIに適用するにはどうすべきなのかが書いてあって参考になった。なおその章はこのリンクにある文書をもとに書いてある。 The Humble Dialog Box
https://w.atwiki.jp/otya128/pages/91.html
namespace OL GUI GTK+ or WIN32 rapper Control class Window class Button class Label class Font class TextBox class CheckBox class
https://w.atwiki.jp/vst_prog/pages/82.html
VST Tips(準備中) VST GUIの作成 VST GUIのウィンドウが開かれるだけのサンプルにつまみを2つ追加したもの。 追加内容としては以下のとおり。 つまみクラス(Cknobクラス)へのポインターをGUIクラスの変数として定義 GUIクラスにsetParameter()関数を追加 GUIクラスのopen()関数につまみを作成するコードの追加 GUIクラスのvalueChanged()関数に操作されたつまみを特定しsetParameter()関数へ引き渡す処理の追加 GUIクラスのsetParameter()関数につまみの更新処理を追加 リソースファイルを追加する必要がある。リソースファイルの追加方法はCPPファイルを追加する方法と同じ。 なお今回つまみ用いた画像と作成したVSTは以下のとおり。(DLLファイルを利用するときはウィルスチェックをかけてください) ダウンロード サンプルコード全体 【resource.rc】 #include windows.h #include commctrl.h #include richedit.h #include "resource.h" BITMAP_KNOB_BACK BITMAP ".\\knob_back.bmp"BITMAP_KNOB_HANDLE BITMAP ".\\knob_handle.bmp" 【resource.h】 #define BITMAP_KNOB_BACK 100#define BITMAP_KNOB_HANDLE 101 【MyGuiVst2.cpp】 #define _CRT_SECURE_NO_DEPRECATE 1 #include stdio.h #include stdlib.h #include string.h #include math.h #include windows.h #include "resource.h"#include "audioeffectx.h"#include "vstcontrols.h" // ============================================================================================// 設計情報の記入// ============================================================================================#define MY_VST_VENDOR "test vendor" //作者(ベンダー)名#define MY_VST_VERSION 1 //このVSTバージョン#define MY_VST_PRODUCT_NAME "Sample VST GUI" //このVSTの製品名#define MY_VST_NAME "GUI" //このVSTの名前 #define MY_VST_INPUT_NUM 2 //入力数。モノラル入力=1、ステレオ入力=2#define MY_VST_OUTPUT_NUM 2 //出力数。モノラル出力=1、ステレオ出力=2 #define MY_VST_UNIQUE_ID SMPL //ユニークID //公開する場合は以下URLで発行されたユニークIDを入力する。 //http //ygrabit.steinberg.de/~ygrabit/public_html/index.html #define MY_VST_PRESET_NUM 1 //プリセットプログラムの数#define MY_VST_PARAMETER_NUM 2 //パラメータの数 #define MYVST_VOLUME_L 0#define MYVST_VOLUME_R 1// ============================================================================================// VST GUIクラス// ============================================================================================class VstGui2 public AEffGUIEditor, CControlListener{public VstGui2 (void* effect);virtual ~VstGui2 (); // GUIのWindowを開いたときと閉じたときに処理を行う関数virtual bool open (void *ptr);virtual void close (); // ボタンやつまみ等が動かされたときに処理を行う関数virtual void valueChanged (CDrawContext *pContext, CControl *pControl);virtual void setParameter (VstInt32 index, float value); protected // ボリュームを操作するつまみCKnob* knobVolumeL;CKnob* knobVolumeR;}; VstGui2 VstGui2 (void* effect) AEffGUIEditor ((AudioEffect*)effect){// 継承元のにあるrect変数を初期化。// このrect変数にGUIのWindowsサイズを設定する。// (設定を行わないとWindowが開けない)rect.left = 0;rect.top = 0;rect.right = 512;rect.bottom = 256; // VstGui2クラス固有の初期化を行うknobVolumeL = 0;knobVolumeR = 0;} VstGui2 ~VstGui2 (){} void VstGui2 valueChanged (CDrawContext *pContext, CControl *pControl){// どのパラメーターが操作されたかを取得する。VstInt32 index = pControl- getTag(); // パラメーターの値を取得する。float value = pControl- getValue (); // 取得した値をパラメーターに反映させるthis- setParameter(index, value);} void VstGui2 setParameter (VstInt32 index, float value){switch (index){case MYVST_VOLUME_L // つまみに値を設定し、画面を更新する(描画させる。)knobVolumeL- setValue (value); // MyVstGui2(AudioEffectXを継承して作ったクラス)に// 操作されたパラメーターを通知して更新させる// (setParameterAutomatedは内部でsetParameterを呼び出す)effect- setParameterAutomated(index, value);break; case MYVST_VOLUME_R // MYVST_VOLUME_Lの処理とほぼ同様knobVolumeR- setValue (value);effect- setParameterAutomated(index, value);break; default break;}} bool VstGui2 open (void *ptr){// まずは継承元の関数を呼び出す(必須)AEffGUIEditor open (ptr); // 次にフレーム(CFrame)を作成する。// ボタンやつまみ等はこのフレームの上に配置する形になる// ここではWindowと同じサイズのフレームを作成しているCRect size (rect.left, rect.top, rect.right, rect.bottom); CFrame* cframe = new CFrame (size, ptr, this);// 作成したフレームは継承元にあるframe変数に値を保存する必要がある。this- frame = cframe; // -----------------------------------------------------------------// つまみを作成する。// つまみ用の画像をリソースから読み込みCBitmap *KnobBack = new CBitmap (BITMAP_KNOB_BACK);CBitmap *KnobHandle = new CBitmap (BITMAP_KNOB_HANDLE); // つまみの大きさを設定 CRect knobsize (0, 0, KnobBack- getWidth (), KnobBack- getHeight ()); // つまみの位置を設定knobsize.offset (16, 16); // つまみ画像をどこから表示するかの設定。基本的に0, 0でよいはず。CPoint point (0, 0); knobVolumeL = new CKnob (knobsize, this, MYVST_VOLUME_L, KnobBack, KnobHandle, point);// つまみの中心とハンドルまでの長さknobVolumeL- setInsetValue (7);// 現在のボリュームをMyVstGui2(AudioEffectXを継承して作ったクラス)から取得するknobVolumeL- setValue(effect- getParameter(MYVST_VOLUME_L));// つまみをframeに追加するframe- addView (knobVolumeL); // knobVolumeLとほぼ同様knobsize (0, 0, KnobBack- getWidth (), KnobBack- getHeight ());knobsize.offset (64, 16);knobVolumeR = new CKnob (knobsize, this, MYVST_VOLUME_R, KnobBack, KnobHandle, point);knobVolumeR- setInsetValue (7);knobVolumeR- setValue(effect- getParameter(MYVST_VOLUME_R));frame- addView (knobVolumeR); // つまみ用の画像を解放するKnobBack- forget();KnobHandle- forget(); // 処理に問題がなければtrueを返すreturn true;} void VstGui2 close (){// frameをdeleteすることを忘れないようにするif (frame){delete frame;}frame = 0;} // ============================================================================================// VSTの基本となるクラス// ============================================================================================class MyVstGui2 public AudioEffectX{public MyVstGui2 (audioMasterCallback audioMaster);~MyVstGui2 (); // エフェクターのパラメータに関するメンバー関数virtual void setParameter (VstInt32 index, float value); // 音声信号を処理するメンバー関数virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames); protected float volumeL;float volumeR;}; // ============================================================================================// このVSTのを生成するための関数// ============================================================================================AudioEffect* createEffectInstance (audioMasterCallback audioMaster){//newでこのVSTを生成したポインタを返すreturn new MyVstGui2 (audioMaster);} // ============================================================================================// コンストラクタ、デストラクタ(VSTの初期化、終了処理を記述)// ============================================================================================MyVstGui2 MyVstGui2 (audioMasterCallback audioMaster) AudioEffectX (audioMaster, MY_VST_PRESET_NUM, MY_VST_PARAMETER_NUM){//VSTの初期化を行う。 //以下の関数を呼び出して入力数、出力数等の情報を設定する。//必ず呼び出さなければならない。setNumInputs (MY_VST_INPUT_NUM); //入力数の設定setNumOutputs (MY_VST_OUTPUT_NUM); //出力数の設定setUniqueID (MY_VST_UNIQUE_ID); //ユニークIDの設定 isSynth (false); //このVSTがSynthかどうかのフラグを設定。 //Synthの場合…true、Effectorの場合…false canProcessReplacing (); //このVSTが音声処理可能かどうかのフラグを設定。 //音声処理を行わないVSTはないので必ずこの関数を呼び出す。 // GUIを設定するeditor = new VstGui2(this); //このVSTのパラメータを初期化する。volumeL = 0.0f;volumeR = 0.0f;} MyVstGui2 ~MyVstGui2 (){//VSTの終了処理をする。//このVSTでは特に実行する処理はなし。 // GUIはdeleteしなくていいっぽい} void MyVstGui2 setParameter (VstInt32 index, float value){switch (index){case MYVST_VOLUME_L volumeL = value;break; case MYVST_VOLUME_R volumeR = value;break; default break;}} // ============================================================================================// 音声信号を処理するメンバー関数// ============================================================================================void MyVstGui2 processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames){float *inL = inputs[0]; //入力 左用float *inR = inputs[1]; //入力 右用float *outL = outputs[0]; //出力 左用float *outR = outputs[1]; //出力 右用 for (int i = 0; i sampleFrames ; i++){// 入力をそのまま出力へoutL[i] = volumeL * inL[i];outR[i] = volumeR * inR[i];}} VST Tipsトップページへ(準備中)
https://w.atwiki.jp/vst_prog/pages/83.html
VST Tips(準備中) VST GUIの作成 つまみだけのVST GUIのつまみをスライダーに変更したもの スライダークラス(CSliderクラス)へのポインターをGUIクラスの変数として定義 GUIクラスのopen()関数にスライダーを作成するコードの追加 なお今回スライダー用の画像と作成したVSTは以下のとおり。(DLLファイルを利用するときはウィルスチェックをかけてください) ダウンロード サンプルコード全体 【resource.rc】 #include windows.h #include commctrl.h #include richedit.h #include "resource.h" BITMAP_SLIDER_BACK BITMAP ".\\slider_back.bmp"BITMAP_SLIDER_HANDLE BITMAP ".\\slider_handle.bmp" 【resource.h】 #define BITMAP_SLIDER_BACK 100#define BITMAP_SLIDER_HANDLE 101 【MyGuiVst2.cpp】 #define _CRT_SECURE_NO_DEPRECATE 1 #include stdio.h #include stdlib.h #include string.h #include math.h #include windows.h #include "resource.h"#include "audioeffectx.h"#include "vstcontrols.h" // ============================================================================================// 設計情報の記入// ============================================================================================#define MY_VST_VENDOR "test vendor" //作者(ベンダー)名#define MY_VST_VERSION 1 //このVSTバージョン#define MY_VST_PRODUCT_NAME "Sample VST GUI" //このVSTの製品名#define MY_VST_NAME "GUI" //このVSTの名前 #define MY_VST_INPUT_NUM 2 //入力数。モノラル入力=1、ステレオ入力=2#define MY_VST_OUTPUT_NUM 2 //出力数。モノラル出力=1、ステレオ出力=2 #define MY_VST_UNIQUE_ID SMPL //ユニークID //公開する場合は以下URLで発行されたユニークIDを入力する。 //http //ygrabit.steinberg.de/~ygrabit/public_html/index.html #define MY_VST_PRESET_NUM 1 //プリセットプログラムの数#define MY_VST_PARAMETER_NUM 2 //パラメータの数 #define MYVST_VOLUME_L 0#define MYVST_VOLUME_R 1// ============================================================================================// VST GUIクラス// ============================================================================================class VstGui3 public AEffGUIEditor, CControlListener{public VstGui3 (void* effect);virtual ~VstGui3 (); // GUIのWindowを開いたときと閉じたときに処理を行う関数virtual bool open (void *ptr);virtual void close (); // ボタンやつまみ等が動かされたときに処理を行う関数virtual void valueChanged (CDrawContext *pContext, CControl *pControl);virtual void setParameter (VstInt32 index, float value); protected // ボリュームを操作するスライダーCSlider* sliderVolumeL;CSlider* sliderVolumeR;}; VstGui3 VstGui3 (void* effect) AEffGUIEditor ((AudioEffect*)effect){// 継承元のにあるrect変数を初期化。// このrect変数にGUIのWindowsサイズを設定する。// (設定を行わないとWindowが開けない)rect.left = 0;rect.top = 0;rect.right = 512;rect.bottom = 256; // VstGui3クラス固有の初期化を行うsliderVolumeL = 0;sliderVolumeR = 0;} VstGui3 ~VstGui3 (){} void VstGui3 valueChanged (CDrawContext *pContext, CControl *pControl){// どのパラメーターが操作されたかを取得する。VstInt32 index = pControl- getTag(); // パラメーターの値を取得する。float value = pControl- getValue (); // 取得した値をパラメーターに反映させるthis- setParameter(index, value);} void VstGui3 setParameter (VstInt32 index, float value){switch (index){case MYVST_VOLUME_L // スライダーに値を設定し、画面を更新する(描画させる。)sliderVolumeL- setValue (value); // MyVstGui3(AudioEffectXを継承して作ったクラス)に// 操作されたパラメーターを通知して更新させる// (setParameterAutomatedは内部でsetParameterを呼び出す)effect- setParameterAutomated(index, value);break; case MYVST_VOLUME_R // MYVST_VOLUME_Lの処理とほぼ同様sliderVolumeR- setValue (value);effect- setParameterAutomated(index, value);break; default break;}} bool VstGui3 open (void *ptr){// まずは継承元の関数を呼び出す(必須)AEffGUIEditor open (ptr); // 次にフレーム(CFrame)を作成する。// ボタンやつまみ等はこのフレームの上に配置する形になる// ここではWindowと同じサイズのフレームを作成しているCRect size (rect.left, rect.top, rect.right, rect.bottom); CFrame* cframe = new CFrame (size, ptr, this);// 作成したフレームは継承元にあるframe変数に値を保存する必要がある。this- frame = cframe; // -----------------------------------------------------------------// スライダーを作成する。// スライダー用の画像をリソースから読み込みCBitmap *sliderBack = new CBitmap (BITMAP_SLIDER_BACK);CBitmap *sliderHandle = new CBitmap (BITMAP_SLIDER_HANDLE); // スライダーの大きさを設定 CRect slidersize (0, 0, sliderBack- getWidth (), sliderBack- getHeight ()); // スライダーの位置を設定slidersize.offset (16, 16); // スライダー画像をどこから表示するかの設定。基本的に0, 0でよいはず。CPoint point (0, 0); // スライダーのハンドルの下限位置と上限位置を計算int minpos = slidersize.top;int maxpos = slidersize.top + sliderBack- getHeight () - sliderHandle- getHeight (); // 縦方向(下限位置が0.0、上限位置が1.0)のスライダーを作成する。sliderVolumeL = new CSlider (slidersize, this, MYVST_VOLUME_L, minpos, maxpos, sliderHandle, sliderBack, point, kBottom | kVertical);// 現在のボリュームをMyVstGui3(AudioEffectXを継承して作ったクラス)から取得するsliderVolumeL- setValue(effect- getParameter(MYVST_VOLUME_L));// スライダーをframeに追加するframe- addView (sliderVolumeL); // sliderVolumeLとほぼ同様slidersize (0, 0, sliderBack- getWidth (), sliderBack- getHeight ());slidersize.offset (64, 16);minpos = slidersize.top;maxpos = slidersize.top + sliderBack- getHeight () - sliderHandle- getHeight ();sliderVolumeR = new CSlider (slidersize, this, MYVST_VOLUME_R, minpos, maxpos, sliderHandle, sliderBack, point, kBottom | kVertical);sliderVolumeR- setValue(effect- getParameter(MYVST_VOLUME_R));frame- addView (sliderVolumeR); // スライダー用の画像を解放するsliderBack- forget();sliderHandle- forget(); // 処理に問題がなければtrueを返すreturn true;} void VstGui3 close (){// frameをdeleteすることを忘れないようにするif (frame){delete frame;}frame = 0;} // ============================================================================================// VSTの基本となるクラス// ============================================================================================class MyVstGui3 public AudioEffectX{public MyVstGui3 (audioMasterCallback audioMaster);~MyVstGui3 (); // エフェクターのパラメータに関するメンバー関数virtual void setParameter (VstInt32 index, float value); // 音声信号を処理するメンバー関数virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames); protected float volumeL;float volumeR;}; // ============================================================================================// このVSTのを生成するための関数// ============================================================================================AudioEffect* createEffectInstance (audioMasterCallback audioMaster){//newでこのVSTを生成したポインタを返すreturn new MyVstGui3 (audioMaster);} // ============================================================================================// コンストラクタ、デストラクタ(VSTの初期化、終了処理を記述)// ============================================================================================MyVstGui3 MyVstGui3 (audioMasterCallback audioMaster) AudioEffectX (audioMaster, MY_VST_PRESET_NUM, MY_VST_PARAMETER_NUM){//VSTの初期化を行う。 //以下の関数を呼び出して入力数、出力数等の情報を設定する。//必ず呼び出さなければならない。setNumInputs (MY_VST_INPUT_NUM); //入力数の設定setNumOutputs (MY_VST_OUTPUT_NUM); //出力数の設定setUniqueID (MY_VST_UNIQUE_ID); //ユニークIDの設定 isSynth (false); //このVSTがSynthかどうかのフラグを設定。 //Synthの場合…true、Effectorの場合…false canProcessReplacing (); //このVSTが音声処理可能かどうかのフラグを設定。 //音声処理を行わないVSTはないので必ずこの関数を呼び出す。 // GUIを設定するeditor = new VstGui3(this); //このVSTのパラメータを初期化する。volumeL = 0.0f;volumeR = 0.0f;} MyVstGui3 ~MyVstGui3 (){//VSTの終了処理をする。//このVSTでは特に実行する処理はなし。 // GUIはdeleteしなくていいっぽい} void MyVstGui3 setParameter (VstInt32 index, float value){switch (index){case MYVST_VOLUME_L volumeL = value;break; case MYVST_VOLUME_R volumeR = value;break; default break;}} // ============================================================================================// 音声信号を処理するメンバー関数// ============================================================================================void MyVstGui3 processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames){float *inL = inputs[0]; //入力 左用float *inR = inputs[1]; //入力 右用float *outL = outputs[0]; //出力 左用float *outR = outputs[1]; //出力 右用 for (int i = 0; i sampleFrames ; i++){// 入力をそのまま出力へoutL[i] = volumeL * inL[i];outR[i] = volumeR * inR[i];}} VST Tipsトップページへ(準備中)
https://w.atwiki.jp/penumbrajp/pages/222.html
CATEGORY Name="GUI" Entry Name="CloseDoc" 文書を閉じる /Entry Close Document /CATEGORY
https://w.atwiki.jp/nadebook/pages/95.html
【作る】メンバ関数 部品の作成時にシステムが内部的に使用するものですので、ユーザー側が意識する必要はありません。 故意に「作る」メンバ関数を使って、部品を作成することができますが、実用的でなくまたエラーの原因ともなりますので、使用すべきではありません。 もともと、各GUI部品はグループ(型)として定義されています。そのグループにあるメンバ関数「作る」を使用して、自分自身のコピー(インスタンス)を作成することで部品を作るため、メンバ関数「作る」も一緒にコピーされてしまうのです。ですから、本来は使用しないメンバ関数が残ってしまったとも言えます。 動作の実行 (部品名)を作る。 '***** サンプル ***** エディタAとはエディタ。 エディタAを作る。 エディタAのテキストは「こんにちは」 '***** ここまで ***** ※この記事については、クジラさんかしらたまさんに確認すること。
https://w.atwiki.jp/ebich/pages/30.html
ぎゅわぁ・・・な、GUIについて 「ぎゅわぁ・・・」ぎゅ、ぎゅわわ・・・ ぷろふぃ~る ぎゅわぁに定評のある人である。 メインは諏訪子・・・と思われているがお空である。もう名前から勘違いされても仕方ないね! ランクはLuna-Phである。このチャンネル内で腕は上のほうの人であろう。 ついでに言うと、某修羅の紫の人が作った名変勢の一人である。しばしばIRCの名前がカオスな事に 概要 とりあえずぎゅわぁ・・・で有名。この人が現れる枠でぎゅわぁ・・・コメントが大量に発生する。多分 そもそもなぜ諏訪子がメインだと思われているのだろうか?それは過去に「諏訪子で10連勝or100勝」をしなければならない罰ゲームが存在しているからである。 上記のことで、この罰ゲ期間中に来た初見さんは彼の事を「諏訪子使い」と認識してしまったのである。もちろん筆者の推測だけどね! とりあえず困ったらぎゅわぁ・・・これで万事解決! しかし、やりすぎると、ぎゅわられてしまう事があるのでご気を付けください!(経験者談 ぎゅわっ☆ うるせー!祟るぞ! ぎゅわこ☆からの悲鳴 05 30 (ebi) まぁ 05 30 (ebi) 僕は寝ます 05 30 (ebi) おやすみー 05 30 (ebi) 抱き枕 05 30 (ebi) あなたには「ぎゅわこさん」の抱き枕をあげましょう。 05 30 (namazuryouri) ういー、てことで自分もおつかれー 05 30 (namazuryouri) ! 05 30 (ebi) ナマズさんあげるわ・・・ 05 31 (ebi) 数あるなかからこれ引くかとか思った 05 31 (ebi) ノシ 05 31 *ebi quit ("Leaving...") 05 31 (namazuryouri) ノシシ 05 31 *namazuryouri quit ("Leaving...") ひ、酷いぎゅわぁ…絶対お前ら祟ってやる…ギュワワ
https://w.atwiki.jp/nadebook/pages/241.html
メンバ関数 メンバ関数とは、グループの中で様々な計算をしたり、処理を行う関数のことです。処理の結果を得る関数もあります。 一般的に、GUI部品に「フォーカスを得る(注目)」、「ウィンドウを最大化する」、「文字描画?する」などの処理を行います。 他のプログラミング言語では「メソッド」と呼ばれたりします。 メンバ関数は、そのGUI部品に関する処理を行います。メンバ変数の値を変更したり、取得したりもします。 例えば、イメージ?部品に文字を描画するには、次のようにします。 '-------------------------------------------------- サンプルイメージとはイメージ?。 サンプルイメージの30,20へ「こんにちは」を文字描画?。 '-------------------------------------------------- [実行画面] また、イメージ?部品の右端のX座標を調べるには、次のようにします。 '----------------------------- サンプルイメージとはイメージ?。 サンプルイメージの右側を言う。 '----------------------------- [実行画面] 「右側」というのは、GUI部品の状態(設定値)を表しているようにみえますので、メンバ変数かと思うかもしれませんが、なでしこでは、GUI部品の左端のX座標(左というメンバ変数の値)にGUI部品の幅というメンバ変数の値と部品間隔?を加えて、その結果(右端のX座標とY座標)を返すという処理をするメンバ関数となります。 メンバ変数(状態)とメンバ関数(動作)とイベント(操作) メンバ変数 イベント
https://w.atwiki.jp/keiwada_wiki/pages/21.html
Centering GUI 2011年11月からKuma Systemにradiation damageの見積もり(お勧めアッテネーター)機能が追加。これ超便利!! リゾチームのケーススタディーからお勧めアッテネーターを決定→ほとんどの結晶に適用できる?→まずはお勧めで測定し、それを基準にするのがベスト。 使用方法: まずは、BSSのDifractionスキャンでベクトルセンタリング位置を決定 Kumaを起動。デスクトップのCentering GUIをクリック。 Scheduleタブを使用して、センタリングの二点を反映。 測定条件を入力。ビームサイズの入力は、感覚と逆なので注意。 checkボタンを押すと、お勧めアッテネーターを表示。 測定条件にアッテネーターを入力。 output.csh(青色ボタン)で条件を保存 BSSのFile→OPEN scheduleでyaruzo.cshを読み込む。 スケジュールに条件が反映されたjobができているはず!! BL32XUでは、0.5 um以上のシフトが必要。Img/ptsを増やして対応する。 高感度モードの場合、表示時間の2倍の測定時間になる。 宣伝対策
https://w.atwiki.jp/akuta_bi/pages/20.html
PeerCast常駐アイコンをWクリック、もしくは右クリックから>高度>GUIを開く、でGUIという画面が開きます。 ※GUIとは、グラフィカル ユーザー インターフェイス=見た目で操作できるウインドウのこと GUI上部 Enabled :PeerCast の全接続のON/OFF。このスイッチをOFFにすることでほかの項目が変更できるようになりますが、普通は変更する必要はありません。 ※常駐アイコン右クリック>高度>設定 で出現する設定画面と連動しています。 リレー部分 再生 = プレイヤーで視聴します。 再接続=接続しますが、視聴はしません。 切断 = 切断します。視聴している場合は視聴も停止します。 キープ=視聴を終了後も接続を継続するボタン。ただし、オートキープの設定が有効になってなければ、すぐまたOFFになってしまいます。 ここでの色は、自分が上流にどのように見えているかを示します。 色 状態「あなたは上流の人から見て」 ■ 下流に子を接続できると見られています ■ 下流に子をすでに限界まで接続していて、それ以上子は作れないと見られています。リレーに貢献中です。 ■ リレー未設定、または物理的な帯域不足、または最大リレー数に達していることにより下流に子を接続できない状態(リレー不可)にあります。 ■ 接続状況確認中です □ 見えていません(切断中) チャンネル名が赤字で表示された場合、ポート未開放と判断されていることを示します。 ■はあなたが孫を持つことが出来ない人と判断されたことを示し、あなたからはそれ以上視聴者を増やすことが望めないため接続拒否対象になりかねません。 ■時に点検する箇所は下記のとおりです。 1:最大チャンネル所持数限界に達していないか? 2:PeerCastの設定で最大帯域幅 (Kbits/s)の数値に達していないか? 3:別の番組ですでに下流に子を持っていないか? コネクション部分 □SERVER-LISTENING-000s - 127.0.0.1 7144(7145)は、初期状態で表示されるもので、気にする必要はありません。 ここではあなたの下流に接続してきた人の情報が表示されます。 色 状態「あなたから見て」 ■ その人の下流にさらに子を接続できると判断します ■ その人の下流にはすでに子が限界まで接続していて、それ以上孫は作れないと判断します。リレー貢献中ですので切断しないように。 ■ その人はリレー未設定、または物理的な帯域不足、または最大リレー数に達していることにより下流に子を接続できない状態(リレー不可)にあります。 ■ 接続状況確認中です □ 見えていません(切断中) 文字に色がついている場合は、赤=ポート未開放の人、橙色=ポート未開放だが子を持っている特殊な人という意味になります。 下流に接続してきた人が紫/赤の場合は、その人の下流に子を接続できないことを意味しますので、視聴者の数を増やそうとする場合の障害になりますが、平成21年3月末時点でのブロードバンド回線(ADSL、CATV、FTTH、その他BB回線)契約数の49.5%がFTTHとなっていること(総務省調べ)から、最近はリレー詰まりが殆ど発生しないようになっています。ですのである程度は紫を切断せずそのままにしておいた方が全体的なリレーが安定している傾向にあります。逆に紫の切断を頻繁に行うと、切断されないように紫から偽緑化してしまい(実帯域よりも大きい帯域を虚偽申告されてしまい)、全体的なリレーが不安定になることがあるので注意しましょう。リレー管理をしなくてもいいということではなく、”頻繁に切断”をしないようにということです。 DJ = 不明 ログ部分 クリア=現在取得しているログを消去します。 停止=ログの取得を停止します。 デバッグ/エラー/ネットワーク/チャンネル=取得するログの種類を決定します。4つとも未選択であればログを取得しないということになります。 どっちみち、ログを見ても意味はほとんど分かりませんので、普通の人は気にしなくてOKです。