From 85568915dc1cabd54f54a186a690eb2a2df262d0 Mon Sep 17 00:00:00 2001 From: jules Date: Sat, 9 Nov 2013 13:19:14 +0000 Subject: [PATCH] Added some metadata reading to OggVorbisAudioFormat --- .../codecs/juce_OggVorbisAudioFormat.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp b/modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp index f319901845..b6932902bc 100644 --- a/modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp +++ b/modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp @@ -124,6 +124,17 @@ public: if (err == 0) { vorbis_info* info = ov_info (&ovFile, -1); + + vorbis_comment* const comment = ov_comment (&ovFile, -1); + addMetadataItem (comment, "ENCODER", OggVorbisAudioFormat::encoderName); + addMetadataItem (comment, "TITLE", OggVorbisAudioFormat::id3title); + addMetadataItem (comment, "ARTIST", OggVorbisAudioFormat::id3artist); + addMetadataItem (comment, "ALBUM", OggVorbisAudioFormat::id3album); + addMetadataItem (comment, "COMMENT", OggVorbisAudioFormat::id3comment); + addMetadataItem (comment, "DATE", OggVorbisAudioFormat::id3date); + addMetadataItem (comment, "GENRE", OggVorbisAudioFormat::id3genre); + addMetadataItem (comment, "TRACKNUMBER", OggVorbisAudioFormat::id3trackNumber); + lengthInSamples = (uint32) ov_pcm_total (&ovFile, -1); numChannels = (unsigned int) info->channels; bitsPerSample = 16; @@ -139,6 +150,12 @@ public: OggVorbisNamespace::ov_clear (&ovFile); } + void addMetadataItem (OggVorbisNamespace::vorbis_comment* comment, const char* name, const char* metadataName) + { + if (const char* value = vorbis_comment_query (comment, name, 0)) + metadataValues.set (metadataName, value); + } + //============================================================================== bool readSamples (int** destSamples, int numDestChannels, int startOffsetInDestBuffer, int64 startSampleInFile, int numSamples) override