|
Eric Oulashin's C++ Audio Mixer 1.0
|
Shared libsndfile-backed implementation used by MP3, Ogg Vorbis, and AIFF codecs. More...
#include <SndFileBackedMetadataAudioFile.h>


Public Member Functions | |
| void | setAudioFileInfo (const AudioFileInfo &pAudioFileInfo) override |
| AudioFileResultType | open (AudioFileModes pOpenMode) override |
| void | close () override |
| Closes the audio file. | |
| bool | isOpen () const override |
| Returns whether or not the audio file is open. | |
| AudioFileResultType | getNextSample_int64 (std::int64_t &pAudioSample) override |
| AudioFileResultType | writeSample_int64 (std::int64_t pAudioSample) override |
| AudioFileResultType | getHighestSampleValue_int64 (std::int64_t &pHighestAudioSample) override |
| AudioFileResultType | goToAudioDataPos () override |
| Goes to the audio data position in the audio file. | |
| std::size_t | numSamples () const override |
| Returns the number of audio samples in the audio file. | |
| std::int64_t | maxValueForSampleSize () const override |
| Returns the maximum possible positive value of the audio file's sample size. | |
| void | seekOutputToSampleNum (std::size_t pSampleNum) override |
| AudioFileInfo | getAudioFileInfo () const override |
| Returns an AudioFile object with information about the audio file. | |
| AudioFileResultType | setTitle (const std::string &pTitle) override |
| Sets the title metadata tag. | |
| AudioFileResultType | setArtist (const std::string &pArtist) override |
| Sets the artist metadata tag. | |
| AudioFileResultType | setAlbum (const std::string &pAlbum) override |
| Sets the album metadata tag. | |
| AudioFileResultType | setGenre (const std::string &pGenre) override |
| Sets the genre metadata tag. | |
| AudioFileResultType | setTrackNumber (std::uint32_t pTrackNumber, std::uint32_t pTotalTracks=0) override |
| AudioFileResultType | setYear (const std::string &pYear) override |
| Sets the year/date metadata tag. | |
| AudioFileResultType | setComment (const std::string &pComment) override |
| Sets the comment metadata tag. | |
| AudioFileResultType | getTitle (std::string &pTitle) const override |
| Gets the title metadata tag. | |
| AudioFileResultType | getArtist (std::string &pArtist) const override |
| Gets the artist metadata tag. | |
| AudioFileResultType | getAlbum (std::string &pAlbum) const override |
| Gets the album metadata tag. | |
| AudioFileResultType | getGenre (std::string &pGenre) const override |
| Gets the genre metadata tag. | |
| AudioFileResultType | getTrackNumber (std::uint32_t &pTrackNumber, std::uint32_t &pTotalTracks) const override |
| AudioFileResultType | getYear (std::string &pYear) const override |
| Gets the year/date metadata tag. | |
| AudioFileResultType | getComment (std::string &pComment) const override |
| Gets the comment metadata tag. | |
| ~SndFileBackedMetadataAudioFile () override | |
| Public Member Functions inherited from EOUtils::MetadataAudioFile | |
| MetadataAudioFile (const std::string &pFilename) | |
| MetadataAudioFile (const std::string &pFilename, AudioFileModes pFileMode) | |
| MetadataAudioFile (const MetadataAudioFile &pOther) | |
| virtual | ~MetadataAudioFile () |
| virtual AudioFileResultType | setTrackNumber (uint32_t pTrackNumber, uint32_t pTotalTracks=0)=0 |
| Sets the track number metadata tag. | |
| virtual AudioFileResultType | getTrackNumber (uint32_t &pTrackNumber, uint32_t &pTotalTracks) const =0 |
| Gets the track number metadata tag. | |
| Public Member Functions inherited from EOUtils::AudioFile | |
| AudioFile (const std::string &pFilename) | |
| Constructor. | |
| AudioFile (const std::string &pFilename, AudioFileModes pFileMode) | |
| AudioFile (const AudioFile &pAudioFile) | |
| virtual | ~AudioFile () |
| virtual bool | BitrateIsAdjustable () const =0 |
| Returns whether or not the audio file bitrate is adjustable. | |
| virtual bool | hasReadMode () const |
| Returns whether or not read mode is enabled for the file. | |
| virtual bool | hasWriteMode () const |
| Returns whether or not write mode is enabled for the file. | |
| virtual AudioFileResultType | getNextSample_int64 (int64_t &pAudioSample)=0 |
| Gets the next sample from the file, cast to a 64-bit integer. | |
| virtual AudioFileResultType | writeSample_int64 (int64_t pAudioSample)=0 |
| Writes an audio sample to the file. The parameter is a 64-bit integer but will be cast to the bitness of the audio samples in the file. | |
| virtual AudioFileResultType | getHighestSampleValue_int64 (int64_t &pHighestAudioSample)=0 |
| Gets the highest audio sample value from the file, cast to a 64-bit integer. | |
| const std::string & | Filename () const |
| Gets the filename of the audio file. | |
| void | Filename (const std::string &pFilename) |
| Setter for the filename of the audio file. | |
| void | setMetadata (const std::string &pName, const std::string &pValue) |
| Adds a piece of metadata for the audio file. | |
| template<typename T> | |
| void | setMetadataFromVal (const std::string &pName, const T &pValue) |
| Adds a piece of metadata for the audio file. Templatized for any value type. The value will be converted to a string to store in the metadata. | |
| AudioFileResultType | getMetadata (const std::string &pName, std::string &pValue) const |
| Gets a metadata value as a string. | |
| template<typename T> | |
| AudioFileResultType | getMetadataAs (const std::string &pName, T &pValue) const |
| Gets a metadata value. Templatized to capture the value as any type. | |
| std::string | getMetadata (const std::string &pName) const |
| Gets a metadata value. | |
| template<typename T> | |
| T | getMetadataAs (const std::string &pName) const |
| template<typename T> | |
| T | getMetadataAs (const std::string &pName, const T &pDefaultVal) const |
| Gets a metadata value. Templatized to return it as any type. | |
| bool | hasMetadata (const std::string &pName) const |
| Returns whether or not a metadata item exists. | |
| virtual void | seekOutputToSampleNum (size_t pSampleNum)=0 |
Protected Member Functions | |
| SndFileBackedMetadataAudioFile (const std::string &pFilename) | |
| SndFileBackedMetadataAudioFile (const std::string &pFilename, AudioFileModes pFileMode) | |
| SndFileBackedMetadataAudioFile (const SndFileBackedMetadataAudioFile &pOther) | |
| SndFileBackedMetadataAudioFile (SndFileBackedMetadataAudioFile &&pOther) noexcept | |
| SndFileBackedMetadataAudioFile (const std::string &pFilename, const AudioFileInfo &pLayoutHint) | |
| virtual bool | readFormatMatches (int pSfFullFormat) const =0 |
| virtual int | newFileSfFormatMask () const =0 |
| virtual const char * | formatLabel () const =0 |
| virtual void | configureSndfileEncoderForWrite (SNDFILE *) |
| Protected Member Functions inherited from EOUtils::AudioFile | |
| virtual std::streampos | fileSizeAccordingToStream () |
| virtual void | setFileMode (AudioFileModes pFileMode) |
Protected Attributes | |
| AudioFileInfo | mFileLayout |
| Protected Attributes inherited from EOUtils::AudioFile | |
| std::string | mFilename |
| std::fstream | mFileStream |
| std::ios_base::openmode | mFileOpenMode |
| size_t | mDataSizeBytes |
| std::map< std::string, std::string > | mMetadata |
Shared libsndfile-backed implementation used by MP3, Ogg Vorbis, and AIFF codecs.
|
override |
References close().
|
explicitprotected |
References EOUtils::MetadataAudioFile::MetadataAudioFile(), and mFileLayout.
Referenced by EOUtils::AiffFile::AiffFile(), EOUtils::AiffFile::AiffFile(), EOUtils::AiffFile::AiffFile(), EOUtils::AiffFile::AiffFile(), EOUtils::AiffFile::AiffFile(), EOUtils::MP3File::MP3File(), EOUtils::MP3File::MP3File(), EOUtils::MP3File::MP3File(), EOUtils::MP3File::MP3File(), EOUtils::MP3File::MP3File(), EOUtils::MP3File::MP3File(), EOUtils::MP3File::MP3File(), EOUtils::OggFile::OggFile(), EOUtils::OggFile::OggFile(), EOUtils::OggFile::OggFile(), EOUtils::OggFile::OggFile(), EOUtils::OggFile::OggFile(), EOUtils::OggFile::OggFile(), EOUtils::OggFile::OggFile(), SndFileBackedMetadataAudioFile(), and SndFileBackedMetadataAudioFile().
|
explicitprotected |
References EOUtils::MetadataAudioFile::MetadataAudioFile(), and mFileLayout.
|
protected |
|
protectednoexcept |
|
explicitprotected |
References EOUtils::MetadataAudioFile::MetadataAudioFile(), and mFileLayout.
|
overridevirtual |
Closes the audio file.
Reimplemented from EOUtils::AudioFile.
References EOUtils::AudioFile::close().
Referenced by open(), and ~SndFileBackedMetadataAudioFile().
|
inlineprotectedvirtual |
After a successful SFM_WRITE open, codecs may tweak the encoder via sf_command. Default: no-op.
Reimplemented in EOUtils::MP3File, and EOUtils::OggFile.
Referenced by open().
|
protectedpure virtual |
Implemented in EOUtils::AiffFile, EOUtils::MP3File, and EOUtils::OggFile.
Referenced by getHighestSampleValue_int64(), getNextSample_int64(), goToAudioDataPos(), open(), and writeSample_int64().
|
overridevirtual |
Gets the album metadata tag.
| [out] | pAlbum | Will receive the album string |
Implements EOUtils::MetadataAudioFile.
|
overridevirtual |
Gets the artist metadata tag.
| [out] | pArtist | Will receive the artist string |
Implements EOUtils::MetadataAudioFile.
|
overridevirtual |
Returns an AudioFile object with information about the audio file.
Implements EOUtils::AudioFile.
References mFileLayout.
|
overridevirtual |
Gets the comment metadata tag.
| [out] | pComment | Will receive the comment string |
Implements EOUtils::MetadataAudioFile.
|
overridevirtual |
Gets the genre metadata tag.
| [out] | pGenre | Will receive the genre string |
Implements EOUtils::MetadataAudioFile.
|
override |
|
override |
|
overridevirtual |
Gets the title metadata tag.
| [out] | pTitle | Will receive the title string |
Implements EOUtils::MetadataAudioFile.
|
override |
References EOUtils::AudioFileResultType::addError().
|
overridevirtual |
Gets the year/date metadata tag.
| [out] | pYear | Will receive the year string |
Implements EOUtils::MetadataAudioFile.
|
overridevirtual |
Goes to the audio data position in the audio file.
Implements EOUtils::AudioFile.
References EOUtils::AudioFileResultType::addError(), formatLabel(), and EOUtils::AudioFile::mFilename.
Referenced by getHighestSampleValue_int64().
|
overridevirtual |
Returns whether or not the audio file is open.
Reimplemented from EOUtils::AudioFile.
|
overridevirtual |
Returns the maximum possible positive value of the audio file's sample size.
Implements EOUtils::AudioFile.
References EOUtils::sndfile_detail::maxSampleValueForFormat(), and mFileLayout.
|
protectedpure virtual |
Implemented in EOUtils::AiffFile, EOUtils::MP3File, and EOUtils::OggFile.
Referenced by open().
|
overridevirtual |
Returns the number of audio samples in the audio file.
Implements EOUtils::AudioFile.
References EOUtils::AudioFile::mDataSizeBytes, mFileLayout, and EOUtils::AudioFile::mFilename.
|
overridevirtual |
Reimplemented from EOUtils::AudioFile.
References EOUtils::AudioFileResultType::addError(), close(), configureSndfileEncoderForWrite(), formatLabel(), EOUtils::AudioFile::hasReadMode(), EOUtils::AudioFile::hasWriteMode(), EOUtils::AudioFile::mDataSizeBytes, mFileLayout, EOUtils::AudioFile::mFilename, newFileSfFormatMask(), readFormatMatches(), EOUtils::sndfile_detail::safeFileSize(), EOUtils::AudioFile::setFileMode(), and EOUtils::sndfile_detail::sfInfoToAudioFileInfo().
Referenced by EOUtils::AiffFile::open(), EOUtils::MP3File::open(), and EOUtils::OggFile::open().
|
protectedpure virtual |
Implemented in EOUtils::AiffFile, EOUtils::MP3File, and EOUtils::OggFile.
Referenced by open().
|
override |
References EOUtils::AudioFile::hasWriteMode(), EOUtils::AudioFile::mDataSizeBytes, and mFileLayout.
|
overridevirtual |
Sets the album metadata tag.
| [in] | pAlbum | The album string |
Implements EOUtils::MetadataAudioFile.
|
overridevirtual |
Sets the artist metadata tag.
| [in] | pArtist | The artist string |
Implements EOUtils::MetadataAudioFile.
|
overridevirtual |
Implements EOUtils::AudioFile.
References mFileLayout.
Referenced by EOUtils::AiffFile::setAudioFileInfo(), EOUtils::MP3File::setAudioFileInfo(), and EOUtils::OggFile::setAudioFileInfo().
|
overridevirtual |
Sets the comment metadata tag.
| [in] | pComment | The comment string |
Implements EOUtils::MetadataAudioFile.
|
overridevirtual |
Sets the genre metadata tag.
| [in] | pGenre | The genre string |
Implements EOUtils::MetadataAudioFile.
|
overridevirtual |
Sets the title metadata tag.
| [in] | pTitle | The title string |
Implements EOUtils::MetadataAudioFile.
|
override |
|
overridevirtual |
Sets the year/date metadata tag.
| [in] | pYear | The year string (e.g., "2024") |
Implements EOUtils::MetadataAudioFile.
|
override |
|
protected |
Referenced by EOUtils::AiffFile::AiffFile(), EOUtils::AiffFile::AiffFile(), EOUtils::MP3File::configureSndfileEncoderForWrite(), EOUtils::OggFile::configureSndfileEncoderForWrite(), getAudioFileInfo(), getHighestSampleValue_int64(), getNextSample_int64(), maxValueForSampleSize(), EOUtils::MP3File::MP3File(), EOUtils::MP3File::MP3File(), EOUtils::MP3File::MP3File(), EOUtils::MP3File::MP3File(), EOUtils::AiffFile::newFileSfFormatMask(), numSamples(), EOUtils::OggFile::OggFile(), EOUtils::OggFile::OggFile(), EOUtils::OggFile::OggFile(), EOUtils::OggFile::OggFile(), EOUtils::AiffFile::open(), EOUtils::MP3File::open(), EOUtils::OggFile::open(), open(), seekOutputToSampleNum(), setAudioFileInfo(), SndFileBackedMetadataAudioFile(), SndFileBackedMetadataAudioFile(), SndFileBackedMetadataAudioFile(), SndFileBackedMetadataAudioFile(), SndFileBackedMetadataAudioFile(), and writeSample_int64().