public MainWindow() { InitializeComponent(); m_Parser = new ADTSParser(""); AssemblyTitleAttribute asmttl = (AssemblyTitleAttribute)Attribute.GetCustomAttribute( Assembly.GetExecutingAssembly(), typeof(AssemblyTitleAttribute)); m_Title = asmttl.Title; setTitle(m_Parser.FilePath); }
/// <summary> /// ファイルのオープン、解析処理 /// </summary> /// <param name="filePath">ファイルのパス</param> /// <returns>オブジェクトおよび解析結果</returns> private dynamic openAdtsFile(string filePath) { // とりあえずここで同期的に読み、読み込み結果もオブジェクトとセットで返しておく ADTSParser parser = new ADTSParser(filePath); int x = parser.parse(); return(new { Obj = parser, Result = x }); }
/// <summary> /// 表示用のリスト生成 /// </summary> /// <param name="parser">分析済みのパーサー</param> /// <returns>生成したリスト</returns> private List <ADTSViewEntry> createViewerList(ADTSParser parser) { var list = new List <ADTSViewEntry>(); double time = 0; foreach (var obj in m_Parser.List.Select((value, index) => new { value, index })) { var e = new ADTSViewEntry(obj.index, time, obj.value); list.Add(e); time += obj.value.Duration; } return(list); }
/// <summary> /// 描画対象ファイルの変更。ファイル変更時の描画ルート /// </summary> /// <param name="parser">分析済みファイル</param> private void changeFileView(ADTSParser parser) { this.dataGrid.ItemsSource = createViewerList(parser); textBoxTotalFrame.Text = parser.List.Count.ToString(); textBoxDuration.Text = parser.Duration.ToString(); textBoxBitRate.Text = parser.AvgBps.ToString("0.00"); textBoxFs.Text = parser.Freq.ToString(); textBoxCh.Text = parser.Channel.ToString(); textBoxProfile.Text = parser.Profile; textBoxMaxBitRate.Text = parser.MaxBps.ToString(); textBoxBitrateStDev.Text = parser.StDevBps.ToString("0.00"); setUnityString(parser); setTitle(parser.FilePath); }
private void openFile(string filePath) { var res = openAdtsFile(filePath); m_Parser = res.Obj; if (res.Result == 0) { changeFileView(m_Parser); } else { MessageBox.Show("ADTS解析に失敗しました。", "エラー", MessageBoxButton.OK, MessageBoxImage.Error); } }
private void setUnityString(ADTSParser parser) { StringBuilder sb = new StringBuilder(); if (!parser.IsSingleCh) { sb.Append("チャンネル数"); } if (!parser.IsSingleFs) { sb.Append((sb.Length > 0) ? "," : ""); sb.Append("サンプリングレート"); } if (!parser.IsSingleProfile) { sb.Append((sb.Length > 0) ? "," : ""); sb.Append("プロファイル"); } if (sb.Length > 0) { labelUni.Content = "非統一:" + sb.ToString(); } }