Ejemplo n.º 1
0
        private void main2()
        {
            // set Gnd.i.mediaDir
            {
                string dir = Environment.GetEnvironmentVariable("TMP");

                if (dir == null || dir == "" || Directory.Exists(dir) == false)
                {
                    throw new Exception("Wrong TMP env");
                }

                Gnd.i.mediaDir = Path.Combine(dir, Consts.MEDIA_DIR_ID);
            }

            FileTools.deletePath(Gnd.i.mediaDir);
            Directory.CreateDirectory(Gnd.i.mediaDir);

            Gnd.i.ffmpge    = new FFmpeg();
            Gnd.i.wavMaster = new WavMaster();
            Gnd.i.monitors  = new Monitors();

            BusyDlg.perform(delegate
            {
                // スクリーン_既に起動しているかチェック
                {
                    using (Nectar2.Recver recver = new Nectar2.Recver(Consts.N2_RECV_IDENT))
                    {
                        Thread.Sleep(2000);                         // 受信待ち。

                        if (recver.recv() != null)                  // ? 何かを受信した。== 既に起動している。-> 停止する。
                        {
                            using (Nectar2.Sender sender = new Nectar2.Sender(Consts.N2_SEND_IDENT))
                            {
                                sender.send(new byte[] { 0x58, 0x00 });             // send "X"

                                Thread.Sleep(5000);                                 // 送信完了待ち。+ スクリーンが完全に終了するまで待つ。
                            }
                        }
                    }
                }
            });

            Gnd.i.bootScreen();             // スクリーン_起動

            using (PlayListWin f = new PlayListWin())
            {
                f.ShowDialog();
            }
        }
Ejemplo n.º 2
0
        private void perform()
        {
            Gnd.i.ffmpeg    = new FFmpeg();
            Gnd.i.wavMaster = new WavMaster();
            Gnd.i.monitors  = new Monitors();

            if (Gnd.i.screen_w == -1)
            {
                Monitors.Monitor m = Gnd.i.monitors.get(0);

                if (800 < m.w && 600 < m.h)
                {
                    Gnd.i.screen_w = (m.w / 4) * 3;
                    Gnd.i.screen_h = (m.h / 4) * 3;
                    Gnd.i.screen_l = m.l + (m.w - Gnd.i.screen_w) / 2;
                    Gnd.i.screen_t = m.t + (m.h - Gnd.i.screen_h) / 2;
                }
            }

            // set Gnd.i.mediaDir
            {
                string dir = Environment.GetEnvironmentVariable("TMP");

                if (dir == null || dir == "" || Directory.Exists(dir) == false)
                {
                    throw new Exception("Wrong TMP env");
                }

                Gnd.i.mediaDir = Path.Combine(dir, Consts.MEDIA_DIR_ID);
            }

            FileTools.deletePath(Gnd.i.mediaDir);
            Directory.CreateDirectory(Gnd.i.mediaDir);

            // スクリーン_既に起動しているかチェック
            {
                using (Nectar2.Recver recver = new Nectar2.Recver(Consts.N2_RECV_IDENT))
                {
                    Thread.Sleep(2000);                     // 受信待ち。

                    if (recver.recv() != null)              // ? 何かを受信した。== 既に起動している。-> 停止する。
                    {
                        using (Nectar2.Sender sender = new Nectar2.Sender(Consts.N2_SEND_IDENT))
                        {
                            sender.send(new byte[] { 0x58, 0x00 });         // send "X"

                            Thread.Sleep(5000);                             // 送信完了待ち。+ スクリーンが完全に終了するまで待つ。
                        }
                    }
                }
            }
            Gnd.i.bootScreen();             // スクリーン_起動

            this.Visible = false;

            using (PlayListWin f = new PlayListWin())
            {
                f.ShowDialog();
            }
            this.BackColor = Color.FromArgb(50, 50, 50);
            this.Visible   = true;
            Application.DoEvents();
            Thread.Sleep(500);             // 一瞬で消えるとキモいので、ちょっと待つ。

            // この時点でスクリーンは終了していると想定する!

            FileTools.deletePath(Gnd.i.mediaDir);
        }