| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- /******************************************************************************
- |* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
- |* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
- |* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
- |* PARTICULAR PURPOSE.
- |*
- |* Copyright 1995-2005 Nero AG. All Rights Reserved.
- |*-----------------------------------------------------------------------------
- |* NeroSDK / AudioPluginManager
- |*
- |* FILE: wavformat.h
- |*
- |* PURPOSE: Definition of a structure holding the raw audio data formats
- ******************************************************************************/
- #ifndef _WAV_FORMAT_
- # define _WAV_FORMAT_
- #include "AudioDefs.h"
- struct SWavFormat
- {
- // Construction/Destruction
- SWavFormat() { m_iSamplesPerSecond = m_iBitsPerSample = m_iChannels = -1; };
- SWavFormat(int iSamplesPerSecond, int iBitsPerSample, int iChannels)
- : m_iSamplesPerSecond (iSamplesPerSecond),
- m_iBitsPerSample (iBitsPerSample),
- m_iChannels (iChannels)
- {};
- // Operations
- int GetFrameSize() const
- {
- return (m_iBitsPerSample / BITS_PER_BYTE * m_iChannels);
- };
- // Returns the amount of RAW data corresponding to this format
- int DataInOneSec() const
- {
- return (m_iBitsPerSample * m_iSamplesPerSecond * m_iChannels /
- BITS_PER_BYTE);
- }
- bool IsValid() const
- {
- return (m_iBitsPerSample > 0 &&
- m_iChannels > 0 &&
- m_iSamplesPerSecond > 0);
- };
- void operator=(const SWavFormat &rSQ)
- {
- m_iBitsPerSample = rSQ.m_iBitsPerSample;
- m_iChannels = rSQ.m_iChannels;
- m_iSamplesPerSecond = rSQ.m_iSamplesPerSecond;
- };
- bool operator==(const SWavFormat &rSQ) const
- {
- return (m_iBitsPerSample == rSQ.m_iBitsPerSample &&
- m_iChannels == rSQ.m_iChannels &&
- m_iSamplesPerSecond == rSQ.m_iSamplesPerSecond);
- };
- bool operator!=(const SWavFormat &rSQ) const
- {
- return !operator==(rSQ);
- };
- float operator/(const SWavFormat &rSQ) const
- {
- return (float)(m_iSamplesPerSecond * GetFrameSize()) /
- (float)(rSQ.m_iSamplesPerSecond * rSQ.GetFrameSize());
- };
- // Data
- int m_iSamplesPerSecond, // ... 11025 ... 22050 ... 44100 ...
- m_iBitsPerSample, // 8, 16, etc.
- m_iChannels; // Number of channels in RAW
- // (1 - mono, 2 - stereo, etc.)
- };
- #define CD_QUALITY SWavFormat(44100, 16, 2)
- #endif // _WAV_FORMAT_
|