コード例 #1
0
        private ListBoxItem GenListBoxItem(WavChunkParams p)
        {
            var item = new ListBoxItem();

            item.Content = p.Text;
            item.Tag     = p;
            return(item);
        }
コード例 #2
0
        private void buttonDS64_Click(object sender, RoutedEventArgs e)
        {
            var p = new DS64ChunkParams(-1, -1, -1);

            WavChunk = p;

            DialogResult = true;
            Close();
        }
コード例 #3
0
        private void buttonID3_Click(object sender, RoutedEventArgs e)
        {
            string mimeType = "";

            byte[] albumCoverArt = new byte[0];
            string path          = textBoxId3AlbumCoverArtPath.Text;

            if (path != null && 0 < path.Length)
            {
                using (var br = new BinaryReader(File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read))) {
                    albumCoverArt = br.ReadBytes((int)br.BaseStream.Length);
                }

                switch (System.IO.Path.GetExtension(path).ToLower())
                {
                case ".png":
                    mimeType = "image/png";
                    break;

                case ".jpg":
                case ".jpeg":
                    mimeType = "image/jpeg";
                    break;

                default:
                    MessageBox.Show(
                        string.Format("Error: unrecognized image format. png or jpeg required: {0}", path));
                    return;
                }
            }

            var p = new ID3ChunkParams();

            p.Title                 = textBoxId3Title.Text;
            p.Album                 = textBoxId3Album.Text;
            p.Artists               = textBoxId3Artists.Text;
            p.AlbumCoverArt         = albumCoverArt;
            p.AlbumCoverArtMimeType = mimeType;

            if ((p.Title == null || p.Title.Length == 0) &&
                (p.Album == null || p.Album.Length == 0) &&
                (p.Artists == null || p.Artists.Length == 0))
            {
                MessageBox.Show("Error: ID3 title or album or artist name is required to add ID3 chunk");
                return;
            }

            WavChunk = p;

            DialogResult = true;
            Close();
        }
コード例 #4
0
        private void buttonJunk_Click(object sender, RoutedEventArgs e)
        {
            int bytes;

            if (!Int32.TryParse(textboxJunkSize.Text, out bytes))
            {
                MessageBox.Show("Error: JUNK chunk size parse error");
                return;
            }

            var p = new JunkChunkParams(bytes);

            WavChunk = p;

            DialogResult = true;
            Close();
        }
コード例 #5
0
        private bool ReplaceSingleInstanceChunk(WavChunkParams p)
        {
            foreach (var i in listBoxChunkLayout.Items)
            {
                var lbi = i as ListBoxItem;
                var wcp = lbi.Tag as WavChunkParams;
                if (wcp.ChunkType == p.ChunkType)
                {
                    // found
                    lbi.Content = p.Text;
                    lbi.Tag     = p;
                    return(true);
                }
            }

            // not found
            return(false);
        }
コード例 #6
0
        private void buttonBext_Click(object sender, RoutedEventArgs e)
        {
            if (!StringFormatCheck(textBoxBextDescription.Text, "Description", 256))
            {
                return;
            }
            if (!StringFormatCheck(textBoxBextOriginator.Text, "Originator", 32))
            {
                return;
            }
            if (!StringFormatCheck(textBoxBextOriginatorReference.Text, "OriginatorReference", 32))
            {
                return;
            }
            if (!StringFormatCheck(textBoxBextOriginationDate.Text, "OriginationDate", 10))
            {
                return;
            }
            if (!StringFormatCheck(textBoxBextOriginationTime.Text, "OriginationTime", 8))
            {
                return;
            }
            int timeReference;

            if (!Int32.TryParse(textBoxBextTimeReference.Text, out timeReference))
            {
                MessageBox.Show("Error: TimeReference must be integer number");
                return;
            }

            var p = new BextChunkParams();

            p.Description         = textBoxBextDescription.Text;
            p.Originator          = textBoxBextOriginator.Text;
            p.OriginatorReference = textBoxBextOriginatorReference.Text;
            p.OriginationDate     = textBoxBextOriginationDate.Text;
            p.OriginationTime     = textBoxBextOriginationTime.Text;
            p.TimeReference       = timeReference;

            WavChunk = p;

            DialogResult = true;
            Close();
        }
コード例 #7
0
        private void buttonBext_Click(object sender, RoutedEventArgs e)
        {
            if (!StringFormatCheck(textBoxBextDescription.Text, "Description", 256)) {
                return;
            }
            if (!StringFormatCheck(textBoxBextOriginator.Text, "Originator", 32)) {
                return;
            }
            if (!StringFormatCheck(textBoxBextOriginatorReference.Text, "OriginatorReference", 32)) {
                return;
            }
            if (!StringFormatCheck(textBoxBextOriginationDate.Text, "OriginationDate", 10)) {
                return;
            }
            if (!StringFormatCheck(textBoxBextOriginationTime.Text, "OriginationTime", 8)) {
                return;
            }
            int timeReference;
            if (!Int32.TryParse(textBoxBextTimeReference.Text, out timeReference)) {
                MessageBox.Show("Error: TimeReference must be integer number");
                return;
            }

            var p = new BextChunkParams();
            p.Description = textBoxBextDescription.Text;
            p.Originator = textBoxBextOriginator.Text;
            p.OriginatorReference = textBoxBextOriginatorReference.Text;
            p.OriginationDate = textBoxBextOriginationDate.Text;
            p.OriginationTime = textBoxBextOriginationTime.Text;
            p.TimeReference = timeReference;

            WavChunk = p;

            DialogResult = true;
            Close();
        }
コード例 #8
0
        private void buttonDS64_Click(object sender, RoutedEventArgs e)
        {
            var p = new DS64ChunkParams(-1, -1, -1);
            WavChunk = p;

            DialogResult = true;
            Close();
        }
コード例 #9
0
        private void buttonJunk_Click(object sender, RoutedEventArgs e)
        {
            int bytes;
            if (!Int32.TryParse(textboxJunkSize.Text, out bytes)) {
                MessageBox.Show("Error: JUNK chunk size parse error");
                return;
            }

            var p = new JunkChunkParams(bytes);

            WavChunk = p;

            DialogResult = true;
            Close();
        }
コード例 #10
0
        private void buttonID3_Click(object sender, RoutedEventArgs e)
        {
            string mimeType = "";
            byte[] albumCoverArt = new byte[0];
            string path = textBoxId3AlbumCoverArtPath.Text;
            if (path != null && 0 < path.Length) {
                using (var br = new BinaryReader(File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read))) {
                    albumCoverArt = br.ReadBytes((int)br.BaseStream.Length);
                }

                switch (System.IO.Path.GetExtension(path).ToLower()) {
                case ".png":
                    mimeType = "image/png";
                    break;
                case ".jpg":
                case ".jpeg":
                    mimeType = "image/jpeg";
                    break;
                default:
                    MessageBox.Show(
                        string.Format("Error: unrecognized image format. png or jpeg required: {0}", path));
                    return;
                }
            }

            var p = new ID3ChunkParams();
            p.Title = textBoxId3Title.Text;
            p.Album = textBoxId3Album.Text;
            p.Artists = textBoxId3Artists.Text;
            p.AlbumCoverArt = albumCoverArt;
            p.AlbumCoverArtMimeType = mimeType;

            if ((p.Title == null || p.Title.Length == 0) &&
                    (p.Album == null || p.Album.Length == 0) &&
                    (p.Artists == null || p.Artists.Length == 0)) {
                MessageBox.Show("Error: ID3 title or album or artist name is required to add ID3 chunk");
                return;
            }

            WavChunk = p;

            DialogResult = true;
            Close();
        }