예제 #1
0
        private async void dumpBtn_Click(object sender, EventArgs e)
        {
            string file;

            using (SaveFileDialog dlg = new SaveFileDialog())
            {
                dlg.Filter = "Snapshot file|*.SNA";

                if (dlg.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                file = dlg.FileName;
            }

            ZXSerialLoader loader = new ZXSerialLoader();

            programLbl.Text    = Path.GetFileNameWithoutExtension(file);
            programLbl.Visible = true;
            cassetteGif.Play();

            var result = await Task.Run(() => loader.DumpFile(serial, file, 128, null));

            cassetteGif.Stop();
            programLbl.Visible = false;

            if (result != ZXSerialLoader.ZXSerialLoaderResult.Success)
            {
                MessageBox.Show("Error dumping program");
            }
        }
예제 #2
0
        private async void GifPlayer1_DragDrop(object sender, DragEventArgs e)
        {
            transferring = true;

            try
            {
                if (e.Data.GetDataPresent(DataFormats.FileDrop) && e.Effect == DragDropEffects.Copy)
                {
                    var files = e.Data.GetData(DataFormats.FileDrop) as string[];

                    if (files.Length > 1)
                    {
                        return;
                    }
                    else
                    {
                        string ext = Path.GetExtension(files[0]).ToLower();

                        if (!allowedExtensions.Contains(ext))
                        {
                            return;
                        }

                        ZXSerialLoader loader = new ZXSerialLoader();

                        programLbl.Text    = Path.GetFileNameWithoutExtension(files[0]);
                        programLbl.Visible = true;
                        cassetteGif.Play();

                        var result = await Task.Run(() => loader.LoadFile(serial, files[0], 512, null));

                        cassetteGif.Stop();
                        programLbl.Visible = false;

                        if (result != ZXSerialLoader.ZXSerialLoaderResult.Success)
                        {
                            MessageBox.Show("Error transferring program");
                        }
                    }
                }
            }
            finally { transferring = false; }
        }