async Task ExecuteLoadChaptersCommand() { if (IsBusy) { return; } IsBusy = true; try { Chapters.Clear(); var chapters = await DataStore.GetItemsAsync(true); Chapters.ReplaceRange(chapters); } catch (Exception ex) { Debug.WriteLine(ex); MessagingCenter.Send(new MessagingCenterAlert { Title = "Error", Message = "Unable to load chapters.", Cancel = "OK" }, "message"); } finally { IsBusy = false; } }
/// <summary> /// Reset all info (always call before playing next file) /// </summary> public void ResetInfo() { AudioCodec = string.Empty; VideoCodec = string.Empty; // VideoInfo HasVideo = true; VideoWidth = 0; VideoHeight = 0; Id3Tags = new Id3Tag { AlbumArtist = string.Empty, Encoder = string.Empty, Artist = string.Empty, Genre = string.Empty, Track = string.Empty, Disc = 0, Title = string.Empty, Album = string.Empty, Date = string.Empty, Comment = string.Empty, Description = string.Empty, AlbumArtTag = null }; IdInfos.Clear(); // Tracks Subs.Clear(); Chapters.Clear(); AudioTracks.Clear(); }
public ChapterSelectorViewModel(IManga manga, List <IChapter> selectedMangaChapters) { Manga = manga; Chapters.Clear(); foreach (var chapter in selectedMangaChapters) { Chapters.Add(chapter); } }
private void Reset() { Position = 0; _currentTags = null; Chapters?.Clear(); _length = 0; NotifyChanged(nameof(Position)); NotifyChanged(nameof(CurrentTags)); NotifyChanged(nameof(Chapters)); NotifyChanged(nameof(Length)); }
/// <summary> /// Replaces all chapters of the audiobook with the given ones. If the parameter is null /// all current chapters are cleared. /// </summary> /// <param name="chapters">new chapters</param> public void SetChapters(ICollection <Chapter> chapters) { if (chapters != null) { Chapters = new ObservableCollection <Chapter>(chapters); } else { Chapters.Clear(); } }
public override void RemoveAllReferences() { Chapters.Clear(); Components.Clear(); Documentations.Clear(); Experiences.Clear(); Files.Clear(); Maintenances.Clear(); OrderConfirmations.Clear(); Safeties.Clear(); ServiceLogs.Clear(); SubProjects.Clear(); }
private void CreateChapters() { Chapters.Clear(); int i = 0; foreach (var group in _data) { if (group.IsSelected) // expand { Chapters.Add(group); } else // collapse { Chapters.Add(new ChapterGroup(group.GroupName, group.GroupPath)); } i++; } }
public override void BuildChapters() { Chapters.Clear(); string ncxPath = GetNcxPath(); if (!string.IsNullOrEmpty(ncxPath)) { string path = _opfPath + ncxPath; XDocument xmlDocument = _zip.GetFileStream((_opfPath) + ncxPath, true, true).GetXmlDocument(true); XNamespace ns = XNamespace.Get("http://www.daisy.org/z3986/2005/ncx/"); XElement root = xmlDocument.Root; if (root != null) { XElement navMap = root.Element(ns + "navMap"); ParseItems(navMap, 0, ns, path); } } }
/// <inheritdoc /> public void Load(string fileName) { _networkstream = ExtensionProvider.IsNetworkStream(fileName); Log.Info("Loading file: {0}", fileName); if (_decodeChannel != 0 || _mixerChannel != 0) { Stop(); } try { Bass.StreamFree(_decodeChannel); } catch (Exception ex) { Debug.WriteLine(ex); } if (string.IsNullOrEmpty(fileName)) { Log.Error("Filename was null or empty. Aborted load"); return; } var sourceflags = BassFlags.Decode | BassFlags.Loop | BassFlags.Float | BassFlags.Prescan; var mixerflags = BassFlags.MixerDownMix | BassFlags.MixerPositionEx | BassFlags.AutoFree; if (_networkstream) { int r; lock (Lock) { // make sure only 1 thread at a time can do the following // increment the request counter for this request r = ++_req; } var netFlags = BassFlags.StreamDownloadBlocks | sourceflags; Bass.NetProxy = ""; //os default proxy _decodeChannel = Bass.CreateStream(fileName, 0, netFlags, _streamDloadProc, new IntPtr(r)); lock (Lock) { if (r != _req) { if (_decodeChannel != 0) { Bass.StreamFree(_decodeChannel); } return; } } _netadress = fileName; } else { if (ExtensionProvider.IsCdStream(fileName)) { var cd = new CDTrackInfo(fileName); _decodeChannel = BassCd.CreateStream(cd.Drive, cd.Track, sourceflags); Log.Info("Geting track metadata..."); UpdateCDTags(cd.Drive, cd.Track); } else { _decodeChannel = Bass.CreateStream(fileName, 0, 0, sourceflags); Log.Info("Geting track metadata..."); UpdateFileTags(fileName); } } if (_decodeChannel == 0) { Log.Error("Decode chanel creation failed: {0}", Bass.LastError); return; } var channelInfo = Bass.ChannelGetInfo(_decodeChannel); _mixerChannel = BassMix.CreateMixerStream(channelInfo.Frequency, channelInfo.Channels, mixerflags); if (_mixerChannel == 0) { Log.Error("Mixer chanel creation failed: {0}", Bass.LastError); return; } if (!BassMix.MixerAddChannel(_mixerChannel, _decodeChannel, BassFlags.MixerDownMix)) { Log.Error("Failed to route decoded stream to mixer: {0}", Bass.LastError); return; } if (!_networkstream) { Log.Info("Getting track length..."); var len = Bass.ChannelGetLength(_decodeChannel, PositionFlags.Bytes); _length = Bass.ChannelBytes2Seconds(_decodeChannel, len); NotifyChanged(nameof(Length)); Log.Info("Getting Chapters..."); Chapters.Clear(); Chapters.AddRange(ChapterFactory.GetChapters(fileName, _length)); } Volume = _LastVolume; Bass.ChannelSetAttribute(_mixerChannel, ChannelAttribute.Volume, Volume); Log.Info("Loaded file {0}", fileName); }
static void ReadMetaData() { lock (MediaTracks) { MediaTracks.Clear(); string path = get_property_string("path"); if (File.Exists(path)) { using (MediaInfo mi = new MediaInfo(path)) { int count = mi.GetCount(MediaInfoStreamKind.Video); for (int i = 0; i < count; i++) { MediaTrack track = new MediaTrack(); Add(track, mi.GetVideo(i, "Format")); Add(track, mi.GetVideo(i, "Format_Profile")); Add(track, mi.GetVideo(i, "Width") + "x" + mi.GetVideo(i, "Height")); Add(track, mi.GetVideo(i, "FrameRate") + " FPS"); Add(track, mi.GetVideo(i, "Language/String")); Add(track, mi.GetVideo(i, "Forced") == "Yes" ? "Forced" : ""); Add(track, mi.GetVideo(i, "Default") == "Yes" ? "Default" : ""); Add(track, mi.GetVideo(i, "Title")); track.Text = "V: " + track.Text.Trim(' ', ','); track.Type = "v"; track.ID = i + 1; MediaTracks.Add(track); } count = mi.GetCount(MediaInfoStreamKind.Audio); for (int i = 0; i < count; i++) { MediaTrack track = new MediaTrack(); Add(track, mi.GetAudio(i, "Language/String")); Add(track, mi.GetAudio(i, "Format")); Add(track, mi.GetAudio(i, "Format_Profile")); Add(track, mi.GetAudio(i, "BitRate/String")); Add(track, mi.GetAudio(i, "Channel(s)/String")); Add(track, mi.GetAudio(i, "SamplingRate/String")); Add(track, mi.GetAudio(i, "Forced") == "Yes" ? "Forced" : ""); Add(track, mi.GetAudio(i, "Default") == "Yes" ? "Default" : ""); Add(track, mi.GetAudio(i, "Title")); track.Text = "A: " + track.Text.Trim(' ', ','); track.Type = "a"; track.ID = i + 1; MediaTracks.Add(track); } count = mi.GetCount(MediaInfoStreamKind.Text); for (int i = 0; i < count; i++) { MediaTrack track = new MediaTrack(); Add(track, mi.GetText(i, "Language/String")); Add(track, mi.GetText(i, "Format")); Add(track, mi.GetText(i, "Format_Profile")); Add(track, mi.GetText(i, "Forced") == "Yes" ? "Forced" : ""); Add(track, mi.GetText(i, "Default") == "Yes" ? "Default" : ""); Add(track, mi.GetText(i, "Title")); track.Text = "S: " + track.Text.Trim(' ', ','); track.Type = "s"; track.ID = i + 1; MediaTracks.Add(track); } count = get_property_int("edition-list/count"); for (int i = 0; i < count; i++) { MediaTrack track = new MediaTrack(); track.Text = "E: " + get_property_string($"edition-list/{i}/title"); track.Type = "e"; track.ID = i; MediaTracks.Add(track); } void Add(MediaTrack track, string val) { if (!string.IsNullOrEmpty(val) && !(track.Text != null && track.Text.Contains(val))) { track.Text += " " + val + ","; } } } } } lock (Chapters) { Chapters.Clear(); int count = get_property_int("chapter-list/count"); for (int x = 0; x < count; x++) { string text = get_property_string($"chapter-list/{x}/title"); double time = get_property_number($"chapter-list/{x}/time"); Chapters.Add(new KeyValuePair <string, double>(text, time)); } } }
public override ITokenParser GetTokenParser() { Chapters.Clear(); Anchors.Clear(); return(new Fb2TokenParser(_ns, _root, GetCss(), Chapters, Anchors)); }
public void SetChapters(EpubBookExt book, IList <EpubChapter> chapters) { Book = book; Chapters.Clear(); SetChaptersHelper(chapters, 1); }