Example #1
0
 public KeyBindWindow(KeyBind keybind, SoundViewModel soundVM, Sound sound)
 {
     this.keybind = keybind;
     this.sound   = sound;
     this.soundVM = soundVM;
     InitializeComponent();
 }
Example #2
0
        public MainWindow()
        {
            SoundVM = new SoundViewModel(this);
            keyBind = new KeyBind(SoundVM);
            InitializeComponent();
            List <Sound> x = new List <Sound>();

            DataContext = SoundVM;
            Source      = CollectionViewSource.GetDefaultView(SoundVM.Sounds);
            Source.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Descending));
            ListOfSounds.ItemsSource = Source;
            RefreshListOfSounds();
            ListOutputs.ItemsSource = SoundVM.devices;
            SizeChanged            += new SizeChangedEventHandler(WindowResize);
        }
Example #3
0
        /// <inheritdoc/>
        public SoundViewModel GetSoundVm(Sound s)
        {
            Guard.IsNotNull(s, nameof(s));
            var vm = new SoundViewModel(
                s,
                _player,
                _soundDataProvider,
                _soundMixService,
                _telemetry,
                _renamer,
                _serviceProvider.GetRequiredService <IDialogService>(),
                _serviceProvider.GetRequiredService <IIapService>(),
                _serviceProvider.GetRequiredService <IDownloadManager>());

            vm.Initialize();
            return(vm);
        }
Example #4
0
       async protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            if (e.Parameter is SoundViewModel )
            {
                soundViewModel = e.Parameter as SoundViewModel;
                soundGroup = new SoundGroup();



                // check if json file is not empty
               // customMusicGroup = new CustomMusicGroup();


                await soundViewModel.GetCustomsounds();
            }

            base.OnNavigatedTo(e);
        }
Example #5
0
        public async Task <IActionResult> UploadFile([FromForm] SoundViewModel soundModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            int user = Convert.ToInt32(User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Sid).Value);

            var result = await _soundsService.UploadSounds(soundModel, user);

            if (result.IsError)
            {
                return(BadRequest(result));
            }

            return(Ok(result));
        }
Example #6
0
 public MainViewModel(INavigationService navigationService, IEventAggregator eventAggregator
     , BingoCardViewModel bingoCardViewModel, BallCallsViewModel ballCallViewModel, PlayerInfoViewModel playerInfoViewModel, SoundViewModel soundViewModel)
     : base(navigationService)
 {
     _eventAggregator = eventAggregator;
     SoundPlayer = soundViewModel; 
     BingoCard = bingoCardViewModel;
     BallCalls = ballCallViewModel;
     PlayerInfo = playerInfoViewModel;
     
     // listen to Credits change in PlayerInfo
     PlayerInfo.PropertyChanged += (sender, args) =>
     {
         if (args.PropertyName == "Credits")
         {
             NotifyOfPropertyChange(() => CanPlay);
         }
     };
 }
Example #7
0
        private IDisposable BindToSound(SoundViewModel x)
        {
            CompositeDisposable soundDisposable    = new CompositeDisposable();
            CompositeDisposable listItemDisposable = new CompositeDisposable().AddTo(soundDisposable);
            CompositeDisposable elementDisposable  = new CompositeDisposable().AddTo(soundDisposable);

            listViewSound.Items.Clear();

            x.TreeItem
            .BindTo(
                this,
                y => y.TreeViewSoundTopNode,
                BindingMode.OneWay,
                TreeViewItemViewModelToTreeNode
                )
            .AddTo(soundDisposable);

            x.SelectedTreeItem
            .BindTo(
                treeViewSound,
                y => y.SelectedNode,
                BindingMode.TwoWay,
                y => treeViewSound.Nodes.OfType <TreeNode>().Select(z => SearchTreeNode(y, z)).FirstOrDefault(z => z != null),
                y => (TreeViewItemViewModel)y.Tag,
                Observable.FromEvent <TreeViewEventHandler, TreeViewEventArgs>(
                    h => (s, e) => h(e),
                    h => treeViewSound.AfterSelect += h,
                    h => treeViewSound.AfterSelect -= h
                    )
                .ToUnit()
                )
            .AddTo(soundDisposable);

            x.SelectedTreeItem
            .BindTo(
                listViewSound,
                y => y.Enabled,
                BindingMode.OneWay,
                y => x.TreeItem.Value.Children.Contains(y)
                )
            .AddTo(soundDisposable);

            x.ListColumns
            .ObserveAddChanged()
            .Subscribe(y =>
            {
                listViewSound.Columns.Add(ListViewColumnHeaderViewModelToColumnHeader(y));
                listViewSound.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
            })
            .AddTo(soundDisposable);

            x.ListColumns
            .ObserveRemoveChanged()
            .Subscribe(y =>
            {
                foreach (ColumnHeader column in listViewSound.Columns.OfType <ColumnHeader>().Where(z => z.Tag == y).ToArray())
                {
                    listViewSound.Columns.Remove(column);
                }

                listViewSound.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
            })
            .AddTo(soundDisposable);

            x.ListItems
            .ObserveAddChanged()
            .Subscribe(y =>
            {
                listViewSound.Items.Add(ListViewItemViewModelToListViewItem(y));
                listViewSound.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
            })
            .AddTo(soundDisposable);

            x.ListItems
            .ObserveRemoveChanged()
            .Subscribe(y =>
            {
                foreach (ListViewItem item in listViewSound.Items.OfType <ListViewItem>().Where(z => z.Tag == y).ToArray())
                {
                    listViewSound.Items.Remove(item);
                }

                listViewSound.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
            })
            .AddTo(soundDisposable);

            x.SelectedListItem
            .BindTo(
                this,
                y => y.ListViewSoundSelectedItem,
                BindingMode.TwoWay,
                y => listViewSound.Items.OfType <ListViewItem>().FirstOrDefault(z => z.Tag == y),
                y => (ListViewItemViewModel)y?.Tag,
                Observable.FromEvent <EventHandler, EventArgs>(
                    h => (s, e) => h(e),
                    h => listViewSound.SelectedIndexChanged += h,
                    h => listViewSound.SelectedIndexChanged -= h
                    )
                .ToUnit()
                )
            .AddTo(soundDisposable);

            x.SelectedListItem
            .Where(y => y != null)
            .Subscribe(y =>
            {
                listItemDisposable.Dispose();
                listItemDisposable = new CompositeDisposable().AddTo(soundDisposable);

                y.Texts
                .ObserveReplaceChanged()
                .Subscribe(_ =>
                {
                    UpdateListViewItem(ListViewSoundSelectedItem, x.SelectedListItem.Value);
                    listViewSound.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
                })
                .AddTo(listItemDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedListItem
            .BindTo(
                groupBoxSoundKey,
                y => y.Enabled,
                BindingMode.OneWay,
                y => y != null
                )
            .AddTo(soundDisposable);

            x.SelectedListItem
            .BindTo(
                groupBoxSoundValue,
                y => y.Enabled,
                BindingMode.OneWay,
                y => y != null
                )
            .AddTo(soundDisposable);

            x.SelectedRun
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedFlange
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedMotor
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedFrontSwitch
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedRearSwitch
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedBrake
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement <BrakeElementViewModel, BrakeKey>(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedCompressor
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement <CompressorElementViewModel, CompressorKey>(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedSuspension
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement <SuspensionElementViewModel, SuspensionKey>(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedPrimaryHorn
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement <PrimaryHornElementViewModel, HornKey>(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedSecondaryHorn
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement <SecondaryHornElementViewModel, HornKey>(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedMusicHorn
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement <MusicHornElementViewModel, HornKey>(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedDoor
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement <DoorElementViewModel, DoorKey>(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedAts
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedBuzzer
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement <BuzzerElementViewModel, BuzzerKey>(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedPilotLamp
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement <PilotLampElementViewModel, PilotLampKey>(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedBrakeHandle
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement <BrakeHandleElementViewModel, BrakeHandleKey>(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedMasterController
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement <MasterControllerElementViewModel, MasterControllerKey>(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedReverser
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement <ReverserElementViewModel, ReverserKey>(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedBreaker
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement <BreakerElementViewModel, BreakerKey>(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedRequestStop
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement <RequestStopElementViewModel, RequestStopKey>(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedTouch
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            x.SelectedOthers
            .Where(y => y != null)
            .Subscribe(y =>
            {
                elementDisposable.Dispose();
                elementDisposable = new CompositeDisposable().AddTo(soundDisposable);

                BindToSoundElement <OthersElementViewModel, OthersKey>(y).AddTo(elementDisposable);
            })
            .AddTo(soundDisposable);

            new[]
            {
                x.AddRun, x.AddFlange, x.AddMotor, x.AddFrontSwitch, x.AddRearSwitch,
                x.AddBrake, x.AddCompressor, x.AddSuspension, x.AddPrimaryHorn, x.AddSecondaryHorn,
                x.AddMusicHorn, x.AddDoor, x.AddAts, x.AddBuzzer, x.AddPilotLamp,
                x.AddBrakeHandle, x.AddMasterController, x.AddReverser, x.AddBreaker, x.AddRequestStop,
                x.AddTouch, x.AddOthers
            }
            .BindToButton(buttonSoundAdd)
            .AddTo(soundDisposable);

            new[]
            {
                x.RemoveRun, x.RemoveFlange, x.RemoveMotor, x.RemoveFrontSwitch, x.RemoveRearSwitch,
                x.RemoveBrake, x.RemoveCompressor, x.RemoveSuspension, x.RemovePrimaryHorn, x.RemoveSecondaryHorn,
                x.RemoveMusicHorn, x.RemoveDoor, x.RemoveAts, x.RemoveBuzzer, x.RemovePilotLamp,
                x.RemoveBrakeHandle, x.RemoveMasterController, x.RemoveReverser, x.RemoveBreaker, x.RemoveRequestStop,
                x.RemoveTouch, x.RemoveOthers
            }
            .BindToButton(buttonSoundRemove)
            .AddTo(soundDisposable);

            return(soundDisposable);
        }
Example #8
0
        public IActionResult UpdateSound(SoundViewModel sound)
        {
            var result = _musicService.UpdateSound(sound);

            return(Ok(result));
        }
Example #9
0
 public static Sound ToDataModel(this SoundViewModel viewModel, IMapper mapper)
 {
     return(mapper.Map <Sound>(viewModel));
 }
Example #10
0
        public MusicResultViewModel UpdateSound(SoundViewModel sound)
        {
            var result = _musicUOW.UpdateSound(sound.ToDataModel(_mapper));

            return(result.ToViewModels(_mapper));
        }
Example #11
0
        public async Task <ResultDto <UploadSoundDto> > UploadSounds(SoundViewModel viewModel, int userId)
        {
            var result = new ResultDto <UploadSoundDto>();

            if (viewModel.Sound.Length == 0)
            {
                result.Errors.Add("Nie przesłano pliku");

                return(result);
            }

            if (viewModel.Sound.ContentType != "audio/mpeg")
            {
                result.Errors.Add("Przesyłany plik nie jest plikiem formatu audio/mpeg");

                return(result);
            }

            var rootPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot");

            CreateDirIfDoesntExist(rootPath);

            var soundFolderPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "sounds");

            CreateDirIfDoesntExist(soundFolderPath);

            var files = await Task.Run(() => new DirectoryInfo(soundFolderPath).GetFiles());

            string soundPosition = viewModel.SoundPosition == null ? "" : "_" + viewModel.SoundPosition.ToString();

            string combinedSoundName = viewModel.Name + "_" + viewModel.Category + "_" + viewModel.GuitarString.ToString() + soundPosition + ".mp3";

            foreach (var file in files)
            {
                if (file.Name == combinedSoundName)
                {
                    result.Errors.Add("Ta kategoria posiada już ten dźwięk");

                    return(result);
                }
            }

            var pathToSaveSound = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "sounds", combinedSoundName);

            using (var stream = new FileStream(pathToSaveSound, FileMode.Create))
            {
                await viewModel.Sound.CopyToAsync(stream);
            }

            var sound = _mapper.Map <Sound>(viewModel);

            sound.UserId   = userId;
            sound.FullName = combinedSoundName;

            int isInserted = await _soundRepository.Insert(sound);

            if (isInserted == 0)
            {
                result.Errors.Add("Wystapił błąd podczas dodawania pliku " + sound.Name);

                return(result);
            }

            return(result);
        }