Ejemplo n.º 1
0
        public MainWindow()
        {
            InitializeComponent();
            m_Parser = new ADTSParser("");
            AssemblyTitleAttribute asmttl = (AssemblyTitleAttribute)Attribute.GetCustomAttribute(
                Assembly.GetExecutingAssembly(),
                typeof(AssemblyTitleAttribute));

            m_Title = asmttl.Title;
            setTitle(m_Parser.FilePath);
        }
Ejemplo n.º 2
0
        /// <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
            });
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
 /// <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);
 }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
        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();
            }
        }