Example #1
0
        private void MainForm()
        {
            //Startup
            FormClosing += OnFormClosing;
            Resize      += PopTartForm_Resize;
            Application.ApplicationExit   += OnApplicationExit;
            exitToolStripMenuItem.Click   += exitToolStripMenuItem_Click;
            notify_master.ContextMenuStrip = contextMenuStrip1;

            synth.SetOutputToDefaultAudioDevice();
            synth.Volume = 50;
            synth.Rate   = 1;

            LoadSettings();

            mi_popuptoggle.Checked    = PoptartSettings.PopupToggle;
            mi_voicetoggle.Checked    = PoptartSettings.VoiceToggle;
            mi_roulettetoggle.Checked = PoptartSettings.RouletteToggle;

            startup = true;

            //Get API Data
            APIHelper.GetAPIData();

            //Attach to FFXIV
            var attach = FFXIVInterface.Attach();

            if (attach)
            {
                _attachcts = new CancellationTokenSource();

                MemoryTask = new Task(() =>
                {
                    _call = CallFfxivMemory(_attachcts.Token);
                }, _memoryTask.Token);

                MemoryTasks.Add(MemoryTask);
                MemoryTasks.Run(MemoryTask);

                notify_master.ShowBalloonTip(2000, @"FFXIV PopTart", @"Ready to Go!", ToolTipIcon.Info);
            }
            else
            {
                Console.WriteLine(@"Unable to attach. Are you running DX11?");
            }

            notifyX = new Notify {
                ShowInTaskbar = false
            };
            notifyX.ShowDialog();
            notifyX.Left = -16384;
        }
Example #2
0
        private async Task CallFfxivMemory(CancellationToken ct)
        {
            while (!ct.IsCancellationRequested)
            {
                await Task.Delay(300, ct);

                var processes = Process.GetProcessesByName("ffxiv_dx11");
                if (processes.Length <= 0)
                {
                    _attachcts.Cancel();
                    continue;
                }

                if (!listen)
                {
                    continue;
                }

                FFXIVInterface.Loop();
            }
        }