Exemplo n.º 1
0
        public bool StartStreamingPlay(String filePath, String srvIP, UInt32 srvPort)
        {
            try
            {
                if (Settings.Instance.TvTestExe.Length == 0)
                {
                    MessageBox.Show("TVTest.exeのパスが設定されていません");
                    return(false);
                }

                UInt32 ctrlID = 0;
                UInt32 err    = cmd.SendNwPlayOpen(filePath, ref ctrlID);
                if (err == 205)
                {
                    MessageBox.Show("サーバーに接続できませんでした");
                    return(false);
                }
                else if (err != 1)
                {
                    MessageBox.Show("まだ録画が開始されていません");
                    return(false);
                }

                if (IsOpenTVTest() == false)
                {
                    processID = FindTVTestProcess();
                    if (processID == -1)
                    {
                        Process process;
                        process   = System.Diagnostics.Process.Start(Settings.Instance.TvTestExe, Settings.Instance.TvTestCmd);
                        processID = process.Id;
                        System.Threading.Thread.Sleep(Settings.Instance.TvTestOpenWait);
                    }
                }
                cmdTvTest.SetPipeSetting("Global\\TvTest_Ctrl_BonConnect_" + processID.ToString(), "\\\\.\\pipe\\TvTest_Ctrl_BonPipe_" + processID.ToString());
                cmdTvTest.SetConnectTimeOut(1000);

                UInt32 ip    = 0;
                Int32  shift = 24;
                //srvIP = CommonManager.Instance.NW.ConnectedIP;
                foreach (IPAddress address in Dns.GetHostAddresses(srvIP))
                {
                    srvIP = address.ToString();
                }

                foreach (string word in srvIP.Split('.'))
                {
                    ip    |= Convert.ToUInt32(word) << shift;
                    shift -= 8;
                }

                TVTestStreamingInfo sendInfo = new TVTestStreamingInfo();
                sendInfo.enableMode = 1;
                sendInfo.ctrlID     = ctrlID;
                sendInfo.serverIP   = ip;
                sendInfo.serverPort = srvPort;

                if (Settings.Instance.NwTvModeUDP == true)
                {
                    sendInfo.udpSend = 1;
                }
                if (Settings.Instance.NwTvModeTCP == true)
                {
                    sendInfo.tcpSend = 1;
                }
                if (cmdTvTest.SendViewSetStreamingInfo(sendInfo) != 1)
                {
                    System.Threading.Thread.Sleep(5 * 1000);
                    cmdTvTest.SendViewSetStreamingInfo(sendInfo);
                }

                WakeupWindow(processID);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace);
            }
            return(true);
        }
Exemplo n.º 2
0
        public bool StartStreamingPlay(String filePath, IPAddress srvIP, UInt32 srvPort)
        {
            try
            {
                if (Settings.Instance.TvTestExe.Length == 0)
                {
                    MessageBox.Show("TVTest.exeのパスが設定されていません");
                    return(false);
                }

                UInt32  ctrlID = 0;
                ErrCode err    = cmd.SendNwPlayOpen(filePath, ref ctrlID);
                if (err == ErrCode.CMD_ERR_CONNECT)
                {
                    MessageBox.Show("サーバーに接続できませんでした");
                    return(false);
                }
                else if (err != ErrCode.CMD_SUCCESS)
                {
                    MessageBox.Show("まだ録画が開始されていません");
                    return(false);
                }

                OpenTVTest(Settings.Instance.TvTestOpenWait, "TvTest");
                var cmdTvTest = new CtrlCmdUtil();
                cmdTvTest.SetPipeSetting("Global\\TvTest_Ctrl_BonConnect_" + process.Id, "\\\\.\\pipe\\TvTest_Ctrl_BonPipe_" + process.Id);
                cmdTvTest.SetConnectTimeOut(1000);

                UInt32 ip = 0x7F000001;
                if (srvIP != null && srvIP.GetAddressBytes().Length == 4)
                {
                    byte[] oct = srvIP.GetAddressBytes();
                    ip = (uint)oct[0] << 24 | (uint)oct[1] << 16 | (uint)oct[2] << 8 | oct[3];
                }

                TVTestStreamingInfo sendInfo = new TVTestStreamingInfo();
                sendInfo.enableMode = 1;
                sendInfo.ctrlID     = ctrlID;
                sendInfo.serverIP   = ip;
                sendInfo.serverPort = srvPort;

                if (Settings.Instance.NwTvModeUDP == true)
                {
                    sendInfo.udpSend = 1;
                }
                if (Settings.Instance.NwTvModeTCP == true)
                {
                    sendInfo.tcpSend = 1;
                }
                for (int i = 0; i < 10 && cmdTvTest.SendViewSetStreamingInfo(sendInfo) != ErrCode.CMD_SUCCESS; i++)
                {
                    System.Threading.Thread.Sleep(1000);
                }

                WakeupWindow(process.MainWindowHandle);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace);
            }
            return(true);
        }