- PR -

状態取得方法

1
投稿者投稿内容
eno
常連さん
会議室デビュー日: 2008/08/22
投稿数: 28
お住まい・勤務地: 代々木上原
投稿日時: 2008-09-01 11:22
enum GUIModes {All, StillRecord, MovieRecord, MoviePlay};

//GUIの状態を切り替える
private void ChangeGuiMode(GUIModes mode)
{
if(mode == GUIModes.All)
{
buttonCaptureMovie.Enabled = true;
buttonCaptureStill.Enabled = true;
buttonOption.Enabled = true;
buttonOptionDetail.Enabled = true;
buttonPlayMovie.Enabled = true;
buttonSaveMovie.Enabled = true;
buttonSaveStill.Enabled = true;
}
else if( mode == GUIModes.MoviePlay)
{
buttonPlayMovie.Enabled = true;

buttonCaptureMovie.Enabled = false;
buttonCaptureStill.Enabled = false;
buttonOption.Enabled = false;
buttonOptionDetail.Enabled = false;
buttonSaveMovie.Enabled = false;
buttonSaveStill.Enabled = false;
}

else if( mode == GUIModes.MovieRecord)
{
buttonCaptureMovie.Enabled = true;

buttonCaptureStill.Enabled = false;
buttonOption.Enabled = false;
buttonOptionDetail.Enabled = false;
buttonPlayMovie.Enabled = false;
buttonSaveMovie.Enabled = false;
buttonSaveStill.Enabled = false;
}
else if(mode==GUIModes.StillRecord)
{
buttonCaptureMovie.Enabled = false;
buttonCaptureStill.Enabled = false;
buttonOption.Enabled = false;
buttonOptionDetail.Enabled = false;
buttonPlayMovie.Enabled = false;
buttonSaveMovie.Enabled = false;
buttonSaveStill.Enabled = false;

}
return;
}


internal enum PlayState
{
Init, Stopped, Paused, Running
}

enum列挙体
もしくは、自作の

private bool firstActive;

などの連発が最近便利だとわかってきました。

GUIDで初期化のところがつまずいているのですが、ネットワーク上、もしくはコンピュータ内で一意にインターフェイスをインスタンス化させるために必須ということでしょうか?例えば、DShowNET.dllだと以下のインターフェイスが用意されています。

namespace DShowNET
{
[InterfaceType(1)]
[ComVisible(true)]
[Guid("56a868a9-0ad4-11ce-b03a-0020af0ba770")]
public interface IGraphBuilder
{
int Abort();
int AddFilter(IBaseFilter pFilter, string pName);
int AddSourceFilter(string lpcwstrFileName, string lpcwstrFilterName, out IBaseFilter ppFilter);
int Connect(IPin ppinOut, IPin ppinIn);
int ConnectDirect(IPin ppinOut, IPin ppinIn, AMMediaType pmt);
int Disconnect(IPin ppin);
int EnumFilters(out IEnumFilters ppEnum);
int FindFilterByName(string pName, out IBaseFilter ppFilter);
int Reconnect(IPin ppin);
int RemoveFilter(IBaseFilter pFilter);
int Render(IPin ppinOut);
int RenderFile(string lpcwstrFile, string lpcwstrPlayList);
int SetDefaultSyncSource();
int SetLogFile(IntPtr hFile);
int ShouldOperationContinue();
}
}

rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-09-01 11:48
本題とは関係ありませんが、

・buttonCaptureStill
・buttonOption
・buttonOptionDetail
・buttonPlayMovie
・buttonSaveMovie
・buttonSaveStill
これらの Enabledプロパティの値が常に連動しているようですので、
1つのPanelの中に入れてしまえば、まとめて切り替えできて便利だと思いました。
1

スキルアップ/キャリアアップ(JOB@IT)