コード例 #1
0
        public SoundVisualizerVM(IValueHolderReadOnly<short[]> samples, IValueHolderReadOnly<int> samplingRate)
        {
            _color = new ValueHolder<Color>();
            _samplingRate = samplingRate;
            _samples = samples;
            _frequencies = new ValueHolder<IReadOnlyList<KeyValuePair<Frequency, double>>>();
            _amplitudes = new ValueHolder<IReadOnlyList<KeyValuePair<int, double>>>();
            _averageIntensity = new ValueHolder<double>();
            _averageAmplitudeFromLastSampling = new ValueHolder<double>();

            Sound2ColorMappings = new List<ISound2ColorMapping>{
                new LinearSound2ColorMapping{
                    Color = System.Windows.Media.Color.FromRgb(0,0,255),
                    IntensityMultiplier = 0.8,
                    SoundFrequencyMidpoint = new Frequency(250),
                    SoundFrequencySpanWidth = new Frequency(300)},
                new LinearSound2ColorMapping{
                    Color = System.Windows.Media.Color.FromRgb(0,255,0),
                    IntensityMultiplier = 1.1,
                    SoundFrequencyMidpoint = new Frequency(700),
                    SoundFrequencySpanWidth = new Frequency(450)},
                new LinearSound2ColorMapping{
                    Color = System.Windows.Media.Color.FromRgb(255,0,0),
                    IntensityMultiplier = 0.9,
                    SoundFrequencyMidpoint = new Frequency(1500),
                    SoundFrequencySpanWidth = new Frequency(1000)},
            new LinearSound2ColorMapping{
                    Color = System.Windows.Media.Color.FromRgb(255,0,0),
                    IntensityMultiplier = 0.4,
                    SoundFrequencyMidpoint = new Frequency(2600),
                    SoundFrequencySpanWidth = new Frequency(1400)}};

            _samples.PropertyChanged += HandleAmplitudesChanged;
            _samplingRate.PropertyChanged += HandleSamplingRateChanged;
        }
コード例 #2
0
        public ShipStatusViewModel(IValueHolderReadOnly <IShipReadOnly> selectedShip)
        {
            _selectedShip = selectedShip;
            _selectedShip.PropertyChanged += HandleSelectedShipPropertyChanged;

            HandleSelectedShipPropertyChanged(this, new PropertyChangedEventArgs(null));
        }
コード例 #3
0
 public ShipOrderViewModel(IValueHolderReadOnly <IShipReadOnly> selectedShip, IShipOrderEditor shipOrderManager)
 {
     _selectedShip = selectedShip;
     _selectedShip.PropertyChanged += HandleSelectedShipPropertyChanged;
     _shipOrderManager              = shipOrderManager;
     HandleSelectedShipPropertyChanged(this, new PropertyChangedEventArgs(null));
 }
コード例 #4
0
        public LandMassViewModel(LandMass landMass, IValueHolderReadOnly <double> metersPerPixel, IValueHolderReadOnly <double> seaMapSizeInPixels)
        {
            _landMass           = landMass;
            _metersPerPixel     = metersPerPixel;
            _seaMapSizeInPixels = seaMapSizeInPixels;

            _metersPerPixel.PropertyChanged += HandleMetersPerPixelPropertyChanged;
            HandleMetersPerPixelPropertyChanged(this, new PropertyChangedEventArgs(null));
        }
コード例 #5
0
        public ShipViewModel(IShipReadOnly ship, IValueHolderReadOnly <double> metersPerPixel,
                             IValueHolderReadOnly <double> seaMapSizeInPixels, IValueHolder <IShipReadOnly> selectedShip)
        {
            _ship = ship;
            _ship.PropertyChanged += HandleShipPropertyChanged;

            _metersPerPixel = metersPerPixel;
            _metersPerPixel.PropertyChanged += HandleMetersPerPixelPropertyChanged;
            _seaMapSizeInPixels              = seaMapSizeInPixels;

            _selectedShip = selectedShip;
            _selectedShip.PropertyChanged += HandleSelectedShipPropertyChanged;

            UpdateShape();
        }