- - PR -
状態取得方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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(); } } |
|
投稿日時: 2008-09-01 11:48
本題とは関係ありませんが、
・buttonCaptureStill ・buttonOption ・buttonOptionDetail ・buttonPlayMovie ・buttonSaveMovie ・buttonSaveStill これらの Enabledプロパティの値が常に連動しているようですので、 1つのPanelの中に入れてしまえば、まとめて切り替えできて便利だと思いました。 |
1