private void SetupEnv(StringDictionary env) { var genre = Item.Genre.FirstOrDefault(); var displayGenre = (genre != null) ? SubGenre.GetDisplayGenre(genre) : null; env.Add("ITEM_ID", Item.Id.ToString()); env.Add("IN_PATH", MovedSrcPath ?? Item.SrcPath); env.Add("OUT_PATH", Item.DstPath); env.Add("SERVICE_ID", Item.ServiceId.ToString()); env.Add("SERVICE_NAME", Item.ServiceName); env.Add("TS_TIME", Item.TsTime.ToString()); env.Add("ITEM_MODE", Item.Mode.ToString()); env.Add("ITEM_PRIORITY", Item.Priority.ToString()); env.Add("EVENT_GENRE", displayGenre?.FullName ?? "-"); env.Add("IMAGE_WIDTH", Item.ImageWidth.ToString()); env.Add("IMAGE_HEIGHT", Item.ImageHeight.ToString()); env.Add("EVENT_NAME", Item.EventName); env.Add("TAG", string.Join(";", Item.Tags)); if (Phase != ScriptPhase.OnAdd) { env.Add("PROFILE_NAME", Item.Profile.Name); } if (Log != null) { env.Add("SUCCESS", Log.Success ? "1" : "0"); env.Add("ERROR_MESSAGE", Log.Reason ?? ""); env.Add("IN_DURATION", Log.SrcVideoDuration.TotalSeconds.ToString()); env.Add("OUT_DURATION", Log.OutVideoDuration.TotalSeconds.ToString()); env.Add("IN_SIZE", Log.SrcFileSize.ToString()); env.Add("OUT_SIZE", Log.OutFileSize.ToString()); env.Add("LOGO_FILE", (Log.LogoFiles != null) ? string.Join(";", Log.LogoFiles) : ""); env.Add("NUM_INCIDENT", Log.Incident.ToString()); env.Add("JSON_PATH", Path.GetFullPath(Server.GetLogFileBase(Log.EncodeStartDate) + ".json")); env.Add("LOG_PATH", Path.GetFullPath(Server.GetLogFileBase(Log.EncodeStartDate) + ".log")); } // パイプ通信用 env.Add("IN_PIPE_HANDLE", pipes.InHandle); env.Add("OUT_PIPE_HANDLE", pipes.OutHandle); }
static SubGenre() { var data = new[] { new { Space = GenreSpace.ARIB, Name = "", Table = new [] { new { Name = "ニュース/報道", Table = new string[16] { "定時・総合", "天気", "特集・ドキュメント", "政治・国会", "経済・市況", "海外・国際", "解説", "討論・会談", "報道特番", "ローカル・地域", "交通", null, null, null, null, "その他" } }, new { Name = "スポーツ", Table = new string[16] { "スポーツニュース", "野球", "サッカー", "ゴルフ", "その他の球技", "相撲・格闘技", "オリンピック・国際大会", "マラソン・陸上・水泳", "モータースポーツ", "マリン・ウィンタースポーツ", "競馬・公営競技", null, null, null, null, "その他" } }, new { Name = "情報/ワイドショー", Table = new string[16] { "芸能・ワイドショー", "ファッション", "暮らし・住まい", "健康・医療", "ショッピング・通販", "グルメ・料理", "イベント", "番組紹介・お知らせ", null, null, null, null, null, null, null, "その他" } }, new { Name = "ドラマ", Table = new string[16] { "国内ドラマ", "海外ドラマ", "時代劇", null, null, null, null, null, null, null, null, null, null, null, null, "その他" } }, new { Name = "音楽", Table = new string[16] { "国内ロック・ポップス", "海外ロック・ポップス", "クラシック・オペラ", "ジャズ・フュージョン", "歌謡曲・演歌", "ライブ・コンサート", "ランキング・リクエスト", "カラオケ・のど自慢", "民謡・邦楽", "童謡・キッズ", "民族音楽・ワールドミュージック", null, null, null, null, "その他" } }, new { Name = "バラエティ", Table = new string[16] { "クイズ", "ゲーム", "トークバラエティ", "お笑い・コメディ", "音楽バラエティ", "旅バラエティ", "料理バラエティ", null, null, null, null, null, null, null, null, "その他" } }, new { Name = "映画", Table = new string[16] { "洋画", "邦画", "アニメ", null, null, null, null, null, null, null, null, null, null, null, null, "その他" } }, new { Name = "アニメ/特撮", Table = new string[16] { "国内アニメ", "海外アニメ", "特撮", null, null, null, null, null, null, null, null, null, null, null, null, "その他" } }, new { Name = "ドキュメンタリー/教養", Table = new string[16] { "社会・時事", "歴史・紀行", "自然・動物・環境", "宇宙・科学・医学", "カルチャー・伝統文化", "文学・文芸", "スポーツ", "ドキュメンタリー全般", "インタビュー・討論", null, null, null, null, null, null, "その他" } }, new { Name = "劇場/公演", Table = new string[16] { "現代劇・新劇", "ミュージカル", "ダンス・バレエ", "落語・演芸", "歌舞伎・古典", null, null, null, null, null, null, null, null, null, null, "その他" } }, new { Name = "趣味/教育", Table = new string[16] { "旅・釣り・アウトドア", "園芸・ペット・手芸", "音楽・美術・工芸", "囲碁・将棋", "麻雀・パチンコ", "車・オートバイ", "コンピュータ・TVゲーム", "会話・語学", "幼児・小学生", "中学生・高校生", "大学生・受験", "生涯教育・資格", "教育問題", null, null, "その他" } }, new { Name = "福祉", Table = new string[16] { "高齢者", "障害者", "社会福祉", "ボランティア", "手話", "文字(字幕)", "音声解説", null, null, null, null, null, null, null, null, "その他" } }, } }, new { Space = GenreSpace.CS, Name = "CS", Table = new [] { new { Name = "スポーツ(CS)", Table = new string[16] { "テニス", "バスケットボール", "ラグビー", "アメリカンフットボール", "ボクシング", "プロレス", null, null, null, null, null, null, null, null, null, "その他" } }, new { Name = "洋画(CS)", Table = new string[16] { "アクション", "SF/ファンタジー", "コメディー", "サスペンス/ミステリー", "恋愛/ロマンス", "ホラー/スリラー", "ウエスタン", "ドラマ/社会派ドラマ", "アニメーション", "ドキュメンタリー", "アドベンチャー/冒険", "ミュージカル/音楽映画", "ホームドラマ", null, null, "その他" } }, new { Name = "邦画(CS)", Table = new string[16] { "アクション", "SF/ファンタジー", "お笑い/コメディー", "サスペンス/ミステリー", "恋愛/ロマンス", "ホラー/スリラー", "青春/学園/アイドル", "任侠/時代劇", "アニメーション", "ドキュメンタリー", "アドベンチャー/冒険", "ミュージカル/音楽映画", "ホームドラマ", null, null, "その他" } }, new { Name = "アダルト(CS)", Table = new string[16] { "アダルト", null, null, null, null, null, null, null, null, null, null, null, null, null, null, "その他" } }, } } }; GENRE_TABLE = new SortedList <int, SpaceGenre>(); foreach (var a in data) { var spaceData = new SpaceGenre() { Space = a.Space, Name = a.Name, MainGenres = new SortedList <int, MainGenre>() }; for (int l1 = 0; l1 < a.Table.Length; ++l1) { var b = a.Table[l1]; var l1Data = new MainGenre() { Item = new GenreItem() { Space = (int)a.Space, Level1 = l1, Level2 = -1 }, Name = b.Name, SubGenres = new SortedList <int, SubGenre>() }; for (int l2 = 0; l2 < b.Table.Length; ++l2) { if (b.Table[l2] != null) { var c = new SubGenre() { Main = l1Data, Name = b.Table[l2], Item = new GenreItem() { Space = (int)a.Space, Level1 = l1, Level2 = l2 } }; l1Data.SubGenres.Add(l2, c); } } spaceData.MainGenres.Add(l1, l1Data); } GENRE_TABLE.Add((int)a.Space, spaceData); } // その他 - その他 を追加 var other = new MainGenre() { Item = new GenreItem() { Space = (int)GenreSpace.ARIB, Level1 = 0xF, Level2 = -1 }, Name = "その他", SubGenres = new SortedList <int, SubGenre>() }; other.SubGenres.Add(0xF, new SubGenre() { Main = other, Name = "その他", Item = new GenreItem() { Space = (int)GenreSpace.ARIB, Level1 = 0xF, Level2 = 0xF } }); GENRE_TABLE[(int)GenreSpace.ARIB].MainGenres.Add(0xF, other); }