Esempio n. 1
0
        public Form1()
        {
            InitializeComponent();

            // Setup objects
            _toneGenerator = new ToneGenerator();
            _charGenerator = new CharGenerator();
            _runner        = new Runner();
            _player        = new SoundPlayerAsync();
            _analyzer      = new Analyzer(txtAnalysis);
            _builder       = new WordToToneBuilder(_toneGenerator);
            _recorded      = new StringBuilder();
            _dlgAssigner   = new ProsignKeyAssigner();

            // Do initialization
            FrequencyInitialize(
                sliderFrequency, txtFrequency,
                400,
                ToneGenerator.MIN_FREQUENCY,
                ToneGenerator.MAX_FREQUENCY,
                50
                );

            WPMInitialize(
                sliderWPM, txtWPM,
                20.0f,
                ToneGenerator.MIN_WPM,
                ToneGenerator.MAX_WPM,
                0.5f
                );

            FarnsworthWPMInitialize(
                sliderFarnsworth, txtFarnsworth,
                20.0f,
                ToneGenerator.MIN_FARNSWORTH_WPM,
                ToneGenerator.MAX_FARNSWORTH_WPM,
                0.5f
                );

            DurationInitialize(
                sliderDuration, txtDuration,
                30,
                Runner.MIN_DURATION,
                Runner.MAX_DURATION,
                30
                );

            StartDelayInitialize(
                sliderStartDelay, txtStartDelay,
                0,
                Runner.MIN_START_DELAY,
                Runner.MAX_START_DELAY,
                1
                );

            StopDelayInitialize(
                sliderStopDelay, txtStopDelay,
                0,
                Runner.MIN_STOP_DELAY,
                Runner.MAX_STOP_DELAY,
                1
                );

            VolumeInitialize(
                sliderVolume, txtVolume,
                1.0f,
                ToneGenerator.MIN_VOLUME,
                ToneGenerator.MAX_VOLUME,
                0.1f
                );

            _runner.StartDelayEnter       += _runner_StartDelayEnter;
            _runner.StartDelayExit        += _runner_StartDelayExit;
            _runner.MorseEnter            += _runner_MorseEnter;
            _runner.MorseExit             += _runner_MorseExit;
            _runner.StopDelayEnter        += _runner_StopDelayEnter;
            _runner.StopDelayExit         += _runner_StopDelayExit;
            _runner.Abort                 += _runner_Abort;
            _player.Dequeued              += _player_Dequeued;
            _player.PlayingFinished       += _player_PlayingFinished;
            _toneGenerator.UpdateRequired += _toneGenerator_UpdateRequired;

            cmbKoch.Items.Clear();
            for (int i = 0; i < Koch.Length; ++i)
            {
                cmbKoch.Items.Add(MorseInfo.ExpandProsigns(Koch.Order[i].ToString()));
            }

            Config config = Config.Load(CONFIG_FILE_NAME);

            ApplyConfig(config);
        }
Esempio n. 2
0
 /// <summary>
 /// Creates a new WordToToneBuilder object that keeps a reference to a
 /// tone generator
 /// </summary>
 /// <param name="toneGenerator">The tone generator</param>
 public WordToToneBuilder(ToneGenerator toneGenerator)
 {
     _toneGenerator = toneGenerator;
 }