예제 #1
0
        private void SelectAudiobookFromBlockText(List <string> blockText)
        {
            bool statusAudiobooksOK = true;

            Txt blockAudiobook = new Txt();

            foreach (var text in blockText)
            {
                blockAudiobook.text = text;

                string pathToAudiobook = Path.Combine(coreDirectoryLibrary.FullName, blockAudiobook.Select("<pathToAudiobook>", "</pathToAudiobook>"));

                DirectoryInfo pathToDirectoryAudiobook = new DirectoryInfo(pathToAudiobook);

                Audiobook audiobook = new Audiobook(pathToDirectoryAudiobook);
                audiobook.completionStatus = Convert.ToInt32(blockAudiobook.Select("<completionStatus>", "</completionStatus>"));

                if (audiobook.StatusAudiobookOK())
                {
                    audiobooks.Add(audiobook);
                }
                else
                {
                    statusAudiobooksOK &= false;
                }
            }

            if (statusAudiobooksOK == false)
            {
                MessageBox.Show("Одна или несколько аудиокниг не найдены. Выполните 'Настройки -> Обновить библиотеку'", "Внимание");
            }
        }
예제 #2
0
        // constructor
        public Library()
        {
            audiobooks = new List <Audiobook>();
            InitializeComponent();
            AddTree();

            ReadDataMediaFromSetingFile();


            InitializeData();
            FillTree();

            selectedAudiobook = null;

            treeListView.DoubleClick += btnAccept_Click;
        }
예제 #3
0
        private void btnAccept_Click(object sender, EventArgs e)
        {
            int indexAudiobook = treeListView.SelectedIndex;

            if (indexAudiobook >= 0)
            {
                selectedAudiobook = audiobooks[indexAudiobook];

                this.DialogResult = DialogResult.OK;
                this.Close();
            }
            else
            {
                MessageBox.Show("Выберите аудиокнигу для воспроизведения", "Внимание");
            }
        }
예제 #4
0
        private void btnLibrary_Click(object sender, EventArgs e)
        {
            Library library = new Library();

            library.Owner = this;
            library.ShowDialog();

            if (library.DialogResult == DialogResult.OK)
            {
                currentAudiobook = library.selectedAudiobook;

                //Здесь нужно инициализировать плеер с новой книгой
                InitilizeMediaPlayer();

                InitilizeAudiofile();

                WriteStatePlayerIntoFile();
            }
        }
예제 #5
0
        //считывает текущую аудиокнигу из файла настроек
        private void ReadCurrentAudiobook()
        {
            string path = Directory.GetCurrentDirectory();

            path = Path.Combine(path, "setting.ini");


            Txt  txtFile = new Txt();
            bool status  = txtFile.SetPathToFile(path);

            if (status)
            {
                string pathToDirectoryLibrary         = txtFile.Select("<pathToLibrary>", "</pathToLibrary>");
                string relativePathToCurrentAudiobook = txtFile.Select("<currentAudiobook>", "</currentAudiobook>");

                string valueSpeed = txtFile.Select("<playbackSpeed>", "</playbackSpeed>");



                string pathToCurrentAudiobook = Path.Combine(pathToDirectoryLibrary, relativePathToCurrentAudiobook);

                DirectoryInfo pathToAudiobook = new DirectoryInfo(pathToCurrentAudiobook);

                currentAudiobook = new Audiobook(pathToAudiobook);
                currentAudiobook.audiobookPlaying = false;

                if (currentAudiobook.StatusAudiobookOK())
                {
                    InitilizeMediaPlayer();

                    InitilizeAudiofile();

                    InitializeCmbBxSelectorSpeedPlayback(valueSpeed.Replace(',', '.'));
                }
                else
                {
                    MessageBox.Show("Текущая аудиокнига не может быть воспроизведена. Возможно она была переименована или перемещена. Выполните обновление библиотеки", "Внимание");
                }
            }
        }
예제 #6
0
        public AddBookmarks(Audiobook currentAudiobook)
        {
            InitializeComponent();

            BtnReverse.WasClickButton    += RewindReverce_Click;
            BtnPlay.WasChangeStateButton += BtnPlay_Click;
            BtnForward.WasClickButton    += RewindForward_Click;

            this.currentAudiobook            = currentAudiobook;
            this.currentAudiobook.WasRewind += UpdateForm;

            if (currentAudiobook.audiobookPlaying)
            {
                BtnPlay.SetBtnStateInPlay();
            }
            else
            {
                BtnPlay.SetBtnStateInPause();
            }

            UpdateForm();
        }
예제 #7
0
        private void GetAudiobooks(DirectoryInfo pathDirectory, int depth = 0)
        {
            //Увеличиваем глубину рекурсии
            depth++;

            //Ограничение глубины рекурсии
            if (depth > 5)
            {
                return;
            }

            if (IsDirectoryAudiobook(pathDirectory) && (pathDirectory != coreDirectoryLibrary))
            {
                Audiobook audiobook = new Audiobook(pathDirectory);
                audiobooks.Add(audiobook);
            }

            DirectoryInfo[] dirs = pathDirectory.GetDirectories();

            foreach (var dir in dirs)
            {
                GetAudiobooks(dir, depth);
            }
        }