Ejemplo n.º 1
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            string[] data = new string[] { string.Empty, Translator.Translate("TXT_PARENTFILETYPES"), Translator.Translate("TXT_CHILDFILETYPES") };

            lvConnFiles.EndEditing(false);

            int i = 0;

            ListViewItem item = new ListViewItem(data[i++]);

            OPMListViewSubItem subItem = new OPMListViewSubItem(_txtEditPFT, item, data[i++]);

            subItem.ReadOnly = false;
            item.SubItems.Add(subItem);

            subItem          = new OPMListViewSubItem(_txtEditCFT, item, data[i++]);
            subItem.ReadOnly = false;
            item.SubItems.Add(subItem);

            lvConnFiles.Items.Add(item);

            item.Selected = true;

            RebuildDataTable();
            Modified = true;
        }
Ejemplo n.º 2
0
        private void btnAddCurrent_Click(object sender, EventArgs e)
        {
            MediaRenderer.DefaultInstance.PauseRenderer();

            string[] subItems = new string[]
            {
                string.Empty,
                CalculateNewBookmarkTime((int)MediaRenderer.DefaultInstance.MediaPosition),
                Translator.Translate("TXT_NEW_BOOKMARK")
            };

            int          i    = 0;
            ListViewItem item = new ListViewItem(subItems[i++]);

            item.ImageIndex = 0;
            //item.Tag = bmk;

            OPMListViewSubItem si = new OPMListViewSubItem(_dtpEditTime, item, subItems[i++]);

            si.ReadOnly = false;
            item.SubItems.Add(si);

            si          = new OPMListViewSubItem(_txtEditComment, item, subItems[i++]);
            si.ReadOnly = false;
            item.SubItems.Add(si);

            item = lvBookmarks.Items.Add(item);

            SaveBookmarks(true);

            item.Selected = true;

            lvBookmarks.StartEditing(item, si);
        }
Ejemplo n.º 3
0
        private void LoadPictures()
        {
            lblItem.Text = _id3ArtworkInfo.FileName;

            lvPictures.Items.Clear();

            foreach (PictureInfo pi in _id3ArtworkInfo.ArtworkImages)
            {
                ListViewItem lvi = new ListViewItem();

                OPMListViewSubItem subItem = new OPMListViewSubItem(_cmbImageType, lvi, pi.PictureType.ToString());
                subItem.ReadOnly = false;
                lvi.SubItems.Add(subItem);

                subItem          = new OPMListViewSubItem(_txtDescription, lvi, pi.Description);
                subItem.ReadOnly = false;
                lvi.SubItems.Add(subItem);

                lvi.SubItems[colImage.Index].Tag = new ExtendedSubItemDetail(pi.Picture, "");

                lvi.Tag = pi;

                lvPictures.Items.Add(lvi);
            }
        }
Ejemplo n.º 4
0
        private void DisplaySubtitle()
        {
            this.Items.Clear();

            if (_subtitle != null)
            {
                List <SubtitleElement> elements = _subtitle.Elements;

                if (elements != null && elements.Count > 0)
                {
                    int index = 0;

                    foreach (SubtitleElement se in elements)
                    {
                        index++;

                        ListViewItem item = new ListViewItem(index.ToString());
                        item.Tag = se;

                        OPMListViewSubItem si = new OPMListViewSubItem(item, se.StartTime.ToString(Subtitle.TimeDisplayFormat));
                        //si.ReadOnly = false;
                        item.SubItems.Add(si);

                        si = new OPMListViewSubItem(item, se.StartFrames.ToString());
                        //si.ReadOnly = false;
                        item.SubItems.Add(si);

                        si = new OPMListViewSubItem(item, se.EndTime.ToString(Subtitle.TimeDisplayFormat));
                        //si.ReadOnly = false;
                        item.SubItems.Add(si);

                        si = new OPMListViewSubItem(item, se.EndFrames.ToString());
                        //si.ReadOnly = false;
                        item.SubItems.Add(si);

                        si = new OPMListViewSubItem(item, se.ContentsForNavigationPanel);
                        //si.ReadOnly = false;
                        item.SubItems.Add(si);

                        this.Items.Add(item);
                    }
                }
            }
        }
Ejemplo n.º 5
0
        private void RebuildDataTable()
        {
            bool errors = false;
            Dictionary <string, string> newTable = new Dictionary <string, string>();

            foreach (ListViewItem lvi in lvConnFiles.Items)
            {
                OPMListViewSubItem subItem = lvi.SubItems[colPFT.Index] as OPMListViewSubItem;
                if (subItem != null)
                {
                    if (!string.IsNullOrEmpty(subItem.Text))
                    {
                        try
                        {
                            newTable.Add(lvi.SubItems[colPFT.Index].Text.ToUpperInvariant(), lvi.SubItems[colCFT.Index].Text.ToUpperInvariant());
                            subItem.IsValid = true;
                        }
                        catch
                        {
                            subItem.IsValid = false;
                            errors          = true;
                        }
                    }
                }
                else
                {
                    errors = true;
                    break;
                }
            }

            lvConnFiles.Invalidate();


            if (!errors)
            {
                _tableConnFiles = new Dictionary <string, string>(newTable);
                FillData();
                Modified = true;
            }
        }
Ejemplo n.º 6
0
        private void OnAdd(object sender, EventArgs e)
        {
            string[] data = new string[]
            { string.Empty, "Osdb", "[ URL ]", Translator.Translate("TXT_NO"), string.Empty, string.Empty };

            lvDownloadAddresses.EndEditing(false);

            int i = 0;

            ListViewItem item = new ListViewItem(data[i++]);

            OPMListViewSubItem subItem = new OPMListViewSubItem(_cmbEditServerType, item, data[i++]);

            subItem.ReadOnly = false;
            item.SubItems.Add(subItem);

            subItem          = new OPMListViewSubItem(_txtEditServer, item, data[i++]);
            subItem.ReadOnly = false;
            item.SubItems.Add(subItem);

            subItem          = new OPMListViewSubItem(_cmbEditActive, item, data[i++]);
            subItem.ReadOnly = false;
            item.SubItems.Add(subItem);

            subItem          = new OPMListViewSubItem(_txtEditServer, item, data[i++]);
            subItem.ReadOnly = false;
            item.SubItems.Add(subItem);

            subItem          = new OPMListViewSubItem(_txtEditUser, item, data[i++]);
            subItem.ReadOnly = false;
            item.SubItems.Add(subItem);

            lvDownloadAddresses.Items.Add(item);

            item.Selected = true;

            BuildSubtitleDownloadURIsFromList();
            Modified = true;
        }
Ejemplo n.º 7
0
        private void FillData()
        {
            int sel = -1;

            if (lvConnFiles.SelectedIndices.Count > 0)
            {
                sel = lvConnFiles.SelectedIndices[0];
            }

            lvConnFiles.Items.Clear();
            foreach (KeyValuePair <string, string> kvp in _tableConnFiles)
            {
                string[] data = new string[] { string.Empty, kvp.Key.ToUpperInvariant(), kvp.Value.ToUpperInvariant() };

                int i = 0;

                ListViewItem item = new ListViewItem(data[i++]);

                OPMListViewSubItem subItem = new OPMListViewSubItem(_txtEditPFT, item, data[i++]);
                subItem.ReadOnly = false;
                item.SubItems.Add(subItem);

                subItem          = new OPMListViewSubItem(_txtEditCFT, item, data[i++]);
                subItem.ReadOnly = false;
                item.SubItems.Add(subItem);

                lvConnFiles.Items.Add(item);
            }

            lvConnFiles.Select();
            lvConnFiles.Focus();

            if (sel > 0 && sel < lvConnFiles.Items.Count)
            {
                lvConnFiles.Items[sel].Selected = true;
            }
        }
Ejemplo n.º 8
0
        private void BuildListFromSubtitleDownloadURIs()
        {
            lvDownloadAddresses.Items.Clear();

            string[] subtitleDownloadURIs = StringUtils.ToStringArray(_subtitleDownloadURIs, '\\');
            if (subtitleDownloadURIs != null)
            {
                foreach (string url in subtitleDownloadURIs)
                {
                    string[]      fields  = StringUtils.ToStringArray(url, ';');
                    List <String> lFields = new List <string>(fields);

                    lFields.Insert(0, string.Empty);
                    while (lFields.Count < lvDownloadAddresses.Columns.Count)
                    {
                        lFields.Add(string.Empty);
                    }
                    while (lFields.Count > lvDownloadAddresses.Columns.Count)
                    {
                        lFields.RemoveAt(lFields.Count - 1);
                    }

                    if (lFields[colActive.Index] == "1")
                    {
                        lFields[colActive.Index] = Translator.Translate("TXT_YES");
                    }
                    else
                    {
                        lFields[colActive.Index] = Translator.Translate("TXT_NO");
                    }

                    ListViewItem item = new ListViewItem(lFields[0]);

                    bool isDefaultServer = ProTONEConfig.DefaultSubtitleURIs.ToUpperInvariant().Contains(
                        lFields[colServerUrl.Index].ToUpperInvariant());

                    for (int i = 1; i < lFields.Count; i++)
                    {
                        OPMListViewSubItem subItem = null;
                        string             text    = lFields[i];

                        if (i == colServerType.Index)
                        {
                            subItem          = new OPMListViewSubItem(_cmbEditServerType, item, text);
                            subItem.ReadOnly = isDefaultServer;
                        }
                        else if (i == colServerUrl.Index)
                        {
                            subItem          = new OPMListViewSubItem(_txtEditServer, item, text);
                            subItem.ReadOnly = isDefaultServer;
                        }
                        else if (i == colActive.Index)
                        {
                            subItem          = new OPMListViewSubItem(_cmbEditActive, item, text);
                            subItem.ReadOnly = false;
                        }
                        else if (i == colUserName.Index)
                        {
                            subItem          = new OPMListViewSubItem(_txtEditUser, item, text);
                            subItem.ReadOnly = false;
                        }
                        else if (i == colPassword.Index)
                        {
                            subItem          = new OPMListViewSubItem(_txtEditPswd, item, text);
                            subItem.ReadOnly = false;
                        }

                        item.SubItems.Add(subItem);
                    }

                    lvDownloadAddresses.Items.Add(item);
                }
            }
        }
Ejemplo n.º 9
0
        public void DisplayKeys()
        {
            try
            {
                User32.LockWindowUpdate(this.Handle);

                this.SuspendLayout();

                lvShortcuts.Items.Clear();

                List <OPMShortcut> shortcuts = new List <OPMShortcut>();
                for (OPMShortcut cmd = ShortcutMapper.CmdFirst; cmd < ShortcutMapper.CmdLast; cmd++)
                {
                    shortcuts.Add(cmd);
                }

                shortcuts.Sort(ShortcutsSorter);

                StringBuilder sb = new StringBuilder();

                foreach (OPMShortcut cmd in shortcuts)
                {
                    if (ShortcutMapper.IsHiddenShortcut(cmd))
                    {
                        continue;
                    }

                    string        cmdName = cmd.ToString();
                    string        desc    = Translator.Translate("TXT_" + cmdName.ToUpperInvariant());
                    KeysConverter kc      = new KeysConverter();
                    string        key     = kc.ConvertToInvariantString(ShortcutMapper.KeyCommands[(int)cmd].KeyData);
                    string        altKey  = kc.ConvertToInvariantString(ShortcutMapper.AltKeyCommands[(int)cmd].KeyData);

                    ListViewItem item = new ListViewItem(cmdName.Replace("Cmd", string.Empty));

                    OPMListViewSubItem subItemDesc   = new OPMListViewSubItem(item, desc);
                    OPMListViewSubItem subItemKey    = null;
                    OPMListViewSubItem subItemAltKey = null;

                    if (ShortcutMapper.IsConfigurableShortcut(cmd))
                    {
                        subItemKey    = new OPMListViewSubItem(_llEditKeys, item, key);
                        subItemAltKey = new OPMListViewSubItem(_llEditKeys, item, altKey);
                    }
                    else
                    {
                        subItemKey    = new OPMListViewSubItem(item, key);
                        subItemAltKey = new OPMListViewSubItem(item, altKey);
                    }

                    item.SubItems.Add(subItemDesc);
                    item.SubItems.Add(subItemKey);
                    item.SubItems.Add(subItemAltKey);


                    item.Tag = cmd;
                    lvShortcuts.Items.Add(item);

                    sb.AppendLine("<tr>");

                    sb.AppendLine("<td>");
                    sb.AppendLine(item.Text);
                    sb.AppendLine("</td>");

                    sb.AppendLine("<td>");
                    sb.AppendLine(subItemDesc.Text);
                    sb.AppendLine("</td>");

                    sb.AppendLine("<td>");
                    sb.AppendLine(subItemKey.Text);
                    sb.AppendLine("</td>");

                    sb.AppendLine("<td>");
                    sb.AppendLine(subItemAltKey.Text);
                    sb.AppendLine("</td>");

                    sb.AppendLine("<td>");
                    sb.AppendLine("Yes");
                    sb.AppendLine("</td>");

                    sb.AppendLine("</tr>");
                }

                this.ResumeLayout();
            }
            finally
            {
                User32.LockWindowUpdate(IntPtr.Zero);
            }
        }
Ejemplo n.º 10
0
        private void LoadBookmarks()
        {
            this.SuspendLayoutEx();

            pnlBookmarkEdit.Visible = false;
            lblNoInfo.Visible       = true;

            try
            {
                lvBookmarks.Items.Clear();
                lblItem.Text = string.Empty;

                if (_plItem == null)
                {
                    return;
                }

                try
                {
                    lblItem.Text = _plItem.MediaFileInfo.Path;

                    if (_plItem.SupportsBookmarkInfo &&
                        _plItem.MediaFileInfo.Bookmarks != null)
                    {
                        pnlBookmarkEdit.Visible = true;
                        lblNoInfo.Visible       = false;

                        pbAdd.Visible            = pbDelete.Visible = _plItem.IsBookmarkInfoEditable;
                        lvBookmarks.AllowEditing = _plItem.IsBookmarkInfoEditable;

                        List <Bookmark> bmkList =
                            new List <Bookmark>(_plItem.MediaFileInfo.Bookmarks.Values);

                        bmkList.Sort(Bookmark.CompareByTime);

                        foreach (Bookmark bmk in bmkList)
                        {
                            string[] subItems = new string[]
                            {
                                string.Empty,
                                bmk.PlaybackTime.ToString(),
                                bmk.Title
                            };

                            int          i    = 0;
                            ListViewItem item = new ListViewItem(subItems[i++]);
                            item.Tag        = bmk;
                            item.ImageIndex = 0;

                            OPMListViewSubItem si = new OPMListViewSubItem(_dtpEditTime, item, subItems[i++]);
                            si.ReadOnly = false;
                            item.SubItems.Add(si);

                            si          = new OPMListViewSubItem(_txtEditComment, item, subItems[i++]);
                            si.ReadOnly = false;
                            item.SubItems.Add(si);

                            lvBookmarks.Items.Add(item);
                        }

                        if (lvBookmarks.Items.Count > 0)
                        {
                            lvBookmarks.Select();
                            lvBookmarks.Focus();
                            lvBookmarks.Items[0].Selected = true;
                        }
                    }
                    else
                    {
                        pbAdd.Visible            = pbDelete.Visible = pbAddCurrent.Visible = false;
                        lvBookmarks.Enabled      = false;
                        lvBookmarks.AllowEditing = false;
                    }
                }
                catch (Exception ex)
                {
                    pbAdd.Visible            = pbDelete.Visible = pbAddCurrent.Visible = false;
                    lvBookmarks.Enabled      = false;
                    lvBookmarks.AllowEditing = false;

                    ErrorDispatcher.DispatchError(ex, false);
                }
            }
            finally
            {
                this.ResumeLayoutEx();
            }
        }
        private void OnDriveSelected(object sender, EventArgs e)
        {
            Wizard.CanMoveNext = false;
            lvTracks.Items.Clear();

            DriveInfoItem item = cmbAudioCDDrives.SelectedItem as DriveInfoItem;

            if (item != null)
            {
                string rootPath = System.IO.Path.GetPathRoot(item.Path);
                if (!string.IsNullOrEmpty(rootPath))
                {
                    (BkgTask as Task).DrivePath = rootPath;

                    CDEntry cdEntry = null;
                    char    letter  = rootPath.ToUpperInvariant()[0];
                    using (CDDrive cd = new CDDrive())
                    {
                        if (cd.Open(letter) && cd.Refresh())
                        {
                            // Check whether the disc is already added to our persistent storage
                            string discId = cd.GetCDDBDiskID();
                            cdEntry = CDEntry.LoadPersistentDisc(discId);

                            if (cdEntry == null)
                            {
                                switch (ProTONEConfig.AudioCdInfoSource)
                                {
                                case CddaInfoSource.CdText:
                                    cdEntry = CDAFileInfo.BuildCdEntryByCdText(cd, cd.GetCDDBDiskID());
                                    break;

                                case CddaInfoSource.Cddb:
                                    cdEntry = CDAFileInfo.BuildCdEntryByCddb(cd, cd.GetCDDBDiskID());
                                    break;

                                case CddaInfoSource.CdText_Cddb:
                                {
                                    cdEntry = CDAFileInfo.BuildCdEntryByCdText(cd, cd.GetCDDBDiskID());
                                    CDEntry cde = CDAFileInfo.BuildCdEntryByCddb(cd, cd.GetCDDBDiskID());
                                    cdEntry = CDAFileInfo.Merge(cdEntry, cde);
                                }
                                break;

                                case CddaInfoSource.Cddb_CdText:
                                {
                                    cdEntry = CDAFileInfo.BuildCdEntryByCddb(cd, cd.GetCDDBDiskID());
                                    CDEntry cde = CDAFileInfo.BuildCdEntryByCdText(cd, cd.GetCDDBDiskID());
                                    cdEntry = CDAFileInfo.Merge(cdEntry, cde);
                                }
                                break;

                                default:
                                    break;
                                }

                                if (cdEntry != null)
                                {
                                    // Cache the disk to persistent storage for retrieving it faster later on
                                    cdEntry.PersistDisc();
                                }
                            }
                        }

                        if (cdEntry != null)
                        {
                            for (int i = 1; i <= cdEntry.NumberOfTracks; i++)
                            {
                                double size     = cd.TrackSize(i);
                                int    duration = cd.GetSeconds(i);

                                ListViewItem lvItem = new ListViewItem(i.ToString());

                                lvItem.SubItems.Add(TimeSpan.FromSeconds(duration).ToString());
                                lvItem.SubItems.Add(((size / (1024 * 1024)).ToString("F")) + " MB");

                                OPMListViewSubItem subItem = new OPMListViewSubItem(tbEditAlbum, lvItem,
                                                                                    cdEntry.Tracks[i - 1].Album ?? string.Empty);
                                subItem.ReadOnly = false;
                                lvItem.SubItems.Add(subItem);

                                subItem = new OPMListViewSubItem(tbEditArtist, lvItem,
                                                                 cdEntry.Tracks[i - 1].Artist ?? string.Empty);
                                subItem.ReadOnly = false;
                                lvItem.SubItems.Add(subItem);

                                subItem = new OPMListViewSubItem(tbEditTitle, lvItem,
                                                                 cdEntry.Tracks[i - 1].Title ?? string.Empty);
                                subItem.ReadOnly = false;
                                lvItem.SubItems.Add(subItem);

                                subItem = new OPMListViewSubItem(cmbEditgenre, lvItem,
                                                                 cdEntry.Tracks[i - 1].Genre ?? string.Empty);
                                subItem.ReadOnly = false;
                                lvItem.SubItems.Add(subItem);

                                if (Wizard.RepeatCount == 0)
                                {
                                    lvItem.ImageIndex = 1;
                                }
                                else
                                {
                                    //lvItem.ImageIndex = ((BkgTask as Task).Tracks.Contains(i)) ? 1 : 0;
                                }

                                lvItem.Tag = cdEntry.Tracks[i - 1];

                                lvTracks.Items.Add(lvItem);
                            }
                        }
                    }
                }
            }

            CheckNextButton();
        }