//
 //  配信ストップ
 //
 public static void Stop()
 {
     if (IsBroadCast)
     {
         require_status = XSplit_Status.XS_NEED_STOP;
     }
 }
 //
 //  配信失敗のダイアログの検索&消去
 //
 private static void SweepDialogs()
 {
     EnumWindows(new EnumWindowsDelegate(delegate(IntPtr hWnd, int lParam)
     {
         if (GetClassName(hWnd).Equals("#32770"))
         {
             if (GetWindowText(hWnd).Contains("配信を初期化しています - NicoVideo - "))
             {
                 CloseDialog(hWnd);
                 require_status = XSplit_Status.XS_NEED_STOP;
             }
         }
         return(1);
     }), 0);
 }
Beispiel #3
0
 //
 //  配信ストップ
 //
 public static void Stop()
 {
     require_status = XSplit_Status.XS_NEED_STOP;
 }
Beispiel #4
0
 //
 //  配信スタート
 //
 public static void Start()
 {
     require_status = XSplit_Status.XS_NEED_START;
 }
Beispiel #5
0
        //
        //  この関数を定期的に呼ぶ
        //
        public static void HandlingStatus(string id, Form mf=null)
        {
            // 停止は、idなくても可能
            if (require_status != XSplit_Status.XS_NEED_STOP)
            {
                if (id == null) return;
                if (id.Length < 2) return;
            }

            // XSplitのプロセスが無いときは、何も出来ない。
            if (IsAlive)
            {
                if (require_status == XSplit_Status.XS_IDLE) return;

                string caption = Text;
                if (caption == null) return;

                // 過渡状態では、ダイアログのお掃除のみ
                if (caption.Contains("配信を初期化しています"))
                {
                    SweepDialogs();
                    return;
                }

                switch (require_status)
                {
                    case XSplit_Status.XS_NEED_START:
                        if (caption.Contains("Streaming Live - NicoVideo - "))
                        {
                            require_status = XSplit_Status.XS_IDLE;
                            return;
                        }
                        if (caption.Contains("XSplit Broadcaster - 配信中"))
                        {
                            require_status = XSplit_Status.XS_IDLE;
                            return;
                        }
                        StartNicoLive(mf);
                        //SHIFT_CONTROL_ALT_A();
                        require_status = XSplit_Status.XS_NEED_CHECK_CLIPBOARD;
                        break;

                    case XSplit_Status.XS_NEED_CHECK_CLIPBOARD:
                        if (caption.Equals("XSplit Broadcaster"))
                        {
                            using (Bouyomi bm = new Bouyomi())
                            {
                                bm.Talk("エックスプリット、ニコ生接続失敗");
                            }
                            require_status = XSplit_Status.XS_IDLE;
                            return;
                        }
                        if (Clipboard.ContainsText())
                        {
                            if (Clipboard.GetText().Contains(id))
                            {
                                require_status = XSplit_Status.XS_IDLE;
                            }
                            else
                            {
                                require_status = XSplit_Status.XS_NEED_RESTART;
                            }
                        }
                        break;

                    case XSplit_Status.XS_NEED_RESTART:
                        if (caption.Length == 0)
                        {
                            require_status = XSplit_Status.XS_NEED_START;
                            return;
                        }
                        if (caption.Equals("XSplit Broadcaster"))
                        {
                            require_status = XSplit_Status.XS_NEED_START;
                            return;
                        }
                        if (caption.Contains("Streaming Live - NicoVideo - "))
                        {
                            StopNicoLive();
                            //SHIFT_CONTROL_ALT_A();
                        }
                        break;

                    case XSplit_Status.XS_NEED_STOP:
                        if (caption.Length == 0)
                        {
                            require_status = XSplit_Status.XS_IDLE;
                            return;
                        }
                        if (caption.Equals("XSplit Broadcaster"))
                        {
                            require_status = XSplit_Status.XS_IDLE;
                            return;
                        }
                        if (caption.Contains("Streaming Live - NicoVideo - "))
                        {
                            StartNicoLive(mf);
                            //SHIFT_CONTROL_ALT_A();
                        }
                        break;
                }
            }
            else
            {
                require_status = XSplit_Status.XS_IDLE;
            }
        }
Beispiel #6
0
 //
 //  配信失敗のダイアログの検索&消去
 //
 private static void SweepDialogs()
 {
     EnumWindows(new EnumWindowsDelegate(delegate(IntPtr hWnd, int lParam)
     {
         if (GetClassName(hWnd).Equals("#32770"))
         {
             if (GetWindowText(hWnd).Contains("配信を初期化しています - NicoVideo - "))
             {
                 CloseDialog(hWnd);
                 require_status = XSplit_Status.XS_NEED_STOP;
             }
         }
         return 1;
     }), 0);
 }
 //
 //  配信スタート
 //
 public static void Start()
 {
     require_status = XSplit_Status.XS_NEED_START;
 }
        //
        //  この関数を定期的に呼ぶ
        //
        public static void HandlingStatus(string id, Form mf)
        {
            // 停止は、idなくても可能
            if (require_status != XSplit_Status.XS_NEED_STOP)
            {
                //if (id == null) return;
                //if (id.Length < 2) return;
            }

            // XSplitのプロセスが無いときは、何も出来ない。
            if (IsAlive)
            {
                if (require_status == XSplit_Status.XS_IDLE)
                {
                    return;
                }

                string caption = Text;
                if (caption == null)
                {
                    return;
                }

                // 過渡状態では、ダイアログのお掃除のみ
                if (caption.Contains("配信を初期化しています"))
                {
                    SweepDialogs();
                    return;
                }

                switch (require_status)
                {
                case XSplit_Status.XS_NEED_START:
                    if (caption.Contains("Streaming Live - NicoVideo - "))
                    {
                        require_status = XSplit_Status.XS_NEED_CHECK_CLIPBOARD;

                        return;
                    }
                    if (caption.Contains("XSplit Broadcaster - 配信中"))
                    {
                        require_status = XSplit_Status.XS_NEED_CHECK_CLIPBOARD;
                        return;
                    }

                    // 配信開始
                    if (Properties.Settings.Default.use_xsplit_shortcut)
                    {
                        PushShortcutKeys2();
                    }
                    else
                    {
                        StartNicoLive(mf);
                    }
                    break;

                case XSplit_Status.XS_NEED_CHECK_CLIPBOARD:
                    if (caption.Equals("XSplit Broadcaster"))
                    {
                        using (Bouyomi bm = new Bouyomi())
                        {
                            bm.Talk("エックスプリット、ニコ生接続失敗");
                        }
                        require_status = XSplit_Status.XS_IDLE;
                        return;
                    }
                    if (Clipboard.ContainsText())
                    {
                        if (Clipboard.GetText().Contains(id))
                        {
                            require_status = XSplit_Status.XS_IDLE;
                        }
                        else
                        {
                            require_status = XSplit_Status.XS_NEED_RESTART;
                        }
                    }
                    break;

                case XSplit_Status.XS_NEED_RESTART:
                    if (caption.Length == 0)
                    {
                        require_status = XSplit_Status.XS_NEED_START;
                        return;
                    }
                    if (caption.Equals("XSplit Broadcaster"))
                    {
                        require_status = XSplit_Status.XS_NEED_START;
                        return;
                    }
                    if (caption.Contains("Streaming Live - NicoVideo - "))
                    {
                        // 配信停止
                        if (Properties.Settings.Default.use_xsplit_shortcut)
                        {
                            PushShortcutKeys2();
                        }
                        else
                        {
                            StartNicoLive(mf);
                        }
                    }
                    break;

                case XSplit_Status.XS_NEED_STOP:
                    if (caption.Length == 0)
                    {
                        require_status = XSplit_Status.XS_IDLE;
                        return;
                    }
                    if (caption.Equals("XSplit Broadcaster"))
                    {
                        require_status = XSplit_Status.XS_IDLE;
                        return;
                    }
                    if (caption.Contains("Streaming Live - NicoVideo - "))
                    {
                        // 配信停止
                        if (Properties.Settings.Default.use_xsplit_shortcut)
                        {
                            PushShortcutKeys2();
                        }
                        else
                        {
                            StartNicoLive(mf);
                        }
                    }
                    break;
                }
            }
            else
            {
                require_status = XSplit_Status.XS_IDLE;
            }
        }