Start() public method

Starts the main toxav_do loop.
public Start ( ) : void
return void
Exemplo n.º 1
0
        private async void mv_Loaded(object sender, RoutedEventArgs e)
        {
            ToxOptions options;
            if (config.ProxyType != ToxProxyType.None)
                options = new ToxOptions(config.Ipv6Enabled, config.ProxyType, config.ProxyAddress, config.ProxyPort);
            else
                options = new ToxOptions(config.Ipv6Enabled, !config.UdpDisabled);

            tox = new Tox(options);

            var data = await loadTox();
            if (data != null)
                tox = new Tox(options, data);

            tox.OnFriendNameChanged += tox_OnFriendNameChanged;
            tox.OnFriendMessageReceived += tox_OnFriendMessageReceived;
            tox.OnFriendRequestReceived += tox_OnFriendRequestReceived;
            tox.OnFriendStatusChanged += tox_OnFriendStatusChanged;
            tox.OnFriendStatusMessageChanged += tox_OnFriendStatusMessageChanged;
            tox.OnFriendTypingChanged += tox_OnFriendTypingChanged;
            tox.OnConnectionStatusChanged += tox_OnConnectionStatusChanged;
            tox.OnFriendConnectionStatusChanged += tox_OnFriendConnectionStatusChanged;
            tox.OnFileSendRequestReceived += tox_OnFileSendRequestReceived;
            tox.OnFileChunkReceived += tox_OnFileChunkReceived;
            tox.OnFileControlReceived += tox_OnFileControlReceived;
            tox.OnFileChunkRequested += tox_OnFileChunkRequested;
            tox.OnReadReceiptReceived += tox_OnReadReceiptReceived;
            tox.OnGroupTitleChanged += tox_OnGroupTitleChanged;

            tox.OnGroupInvite += tox_OnGroupInvite;
            tox.OnGroupMessage += tox_OnGroupMessage;
            tox.OnGroupAction += tox_OnGroupAction;
            tox.OnGroupNamelistChange += tox_OnGroupNamelistChange;

            toxav = new ToxAv(tox.Handle, 1);
            toxav.OnInvite += toxav_OnInvite;
            toxav.OnStart += toxav_OnStart;
            toxav.OnEnd += toxav_OnEnd;
            toxav.OnPeerTimeout += toxav_OnEnd;
            toxav.OnRequestTimeout += toxav_OnEnd;
            toxav.OnReject += toxav_OnEnd;
            toxav.OnCancel += toxav_OnEnd;
            toxav.OnReceivedAudio += toxav_OnReceivedAudio;
            toxav.OnReceivedVideo += toxav_OnReceivedVideo;
            toxav.OnPeerCodecSettingsChanged += toxav_OnPeerCodecSettingsChanged;
            toxav.OnReceivedGroupAudio += toxav_OnReceivedGroupAudio;

            DoBootstrap();
            tox.Start();
            toxav.Start();

            if (string.IsNullOrEmpty(getSelfName()))
                tox.Name = "Tox User";

            if (string.IsNullOrEmpty(getSelfStatusMessage()))
                tox.StatusMessage = "Toxing on Toxy";

            ViewModel.MainToxyUser.Name = getSelfName();
            ViewModel.MainToxyUser.StatusMessage = getSelfStatusMessage();

            InitializeNotifyIcon();

            SetStatus(null, false);
            InitFriends();

            TextToSend.AddHandler(DragOverEvent, new DragEventHandler(Chat_DragOver), true);
            TextToSend.AddHandler(DropEvent, new DragEventHandler(Chat_Drop), true);

            ChatBox.AddHandler(DragOverEvent, new DragEventHandler(Chat_DragOver), true);
            ChatBox.AddHandler(DropEvent, new DragEventHandler(Chat_Drop), true);

            if (tox.Friends.Length > 0)
                ViewModel.SelectedChatObject = ViewModel.ChatCollection.OfType<IFriendObject>().FirstOrDefault();

            initDatabase();
            loadAvatars();
        }