Browse Source

WavAudioImporter: no need to expose the private stuff in public docs.

pull/225/head
Vladimír Vondruš 8 years ago
parent
commit
6a03440f21
  1. 7
      src/MagnumPlugins/WavAudioImporter/CMakeLists.txt
  2. 2
      src/MagnumPlugins/WavAudioImporter/Test/WavImporterTest.cpp
  3. 4
      src/MagnumPlugins/WavAudioImporter/WavHeader.cpp
  4. 52
      src/MagnumPlugins/WavAudioImporter/WavHeader.h
  5. 5
      src/MagnumPlugins/WavAudioImporter/WavImporter.cpp

7
src/MagnumPlugins/WavAudioImporter/CMakeLists.txt

@ -35,13 +35,16 @@ set(WavAudioImporter_SRCS
WavImporter.cpp)
set(WavAudioImporter_HEADERS
WavHeader.h
WavImporter.h)
set(WavAudioImporter_PRIVATE_HEADERS
WavHeader.h)
# Objects shared between plugin and test library
add_library(WavAudioImporterObjects OBJECT
${WavAudioImporter_SRCS}
${WavAudioImporter_HEADERS})
${WavAudioImporter_HEADERS}
${WavAudioImporter_PRIVATE_HEADERS})
target_include_directories(WavAudioImporterObjects PUBLIC
$<TARGET_PROPERTY:Magnum,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:MagnumAudio,INTERFACE_INCLUDE_DIRECTORIES>)

2
src/MagnumPlugins/WavAudioImporter/Test/WavImporterTest.cpp

@ -425,7 +425,7 @@ void WavImporterTest::surround71Channel24() {
void WavImporterTest::debugAudioFormat() {
std::ostringstream out;
Debug{&out} << WavAudioFormat::IeeeFloat << WavAudioFormat(0xdead);
Debug{&out} << Implementation::WavAudioFormat::IeeeFloat << Implementation::WavAudioFormat(0xdead);
CORRADE_COMPARE(out.str(), "Audio::WavAudioFormat::IeeeFloat Audio::WavAudioFormat(0xdead)\n");
}

4
src/MagnumPlugins/WavAudioImporter/WavHeader.cpp

@ -29,7 +29,7 @@
#include "Magnum/Magnum.h"
namespace Magnum { namespace Audio {
namespace Magnum { namespace Audio { namespace Implementation {
static_assert(sizeof(RiffChunk) == 8, "RiffChunk size is not 8 bytes");
static_assert(sizeof(WavHeaderChunk) == 12, "WavHeaderChunk size is not 12 bytes");
@ -53,4 +53,4 @@ Debug& operator<<(Debug& debug, const WavAudioFormat value) {
return debug << "Audio::WavAudioFormat(" << Debug::nospace << reinterpret_cast<void*>(UnsignedShort(value)) << Debug::nospace << ")";
}
}}
}}}

52
src/MagnumPlugins/WavAudioImporter/WavHeader.h

@ -26,57 +26,53 @@
DEALINGS IN THE SOFTWARE.
*/
/** @file
* @brief Struct @ref Magnum::Audio::RiffChunk, @ref Magnum::Audio::WavHeaderChunk, @ref Magnum::Audio::WavFormatChunk, enum @ref Magnum::Audio::WavAudioFormat
*/
#include "MagnumPlugins/WavAudioImporter/WavImporter.h"
namespace Magnum { namespace Audio {
namespace Magnum { namespace Audio { namespace Implementation {
/** @brief WAV audio format */
/* WAV audio format */
enum class WavAudioFormat: UnsignedShort {
Unknown = 0x0000, /**< Unknown */
Pcm = 0x0001, /**< PCM */
AdPcm = 0x0002, /**< Adaptive Differential PCM */
IeeeFloat = 0x0003, /**< IEEE Float */
ALaw = 0x0006, /**< A-Law */
MuLaw = 0x0007, /**< μ-Law */
Extensible = 0xfffe /**< Extensible */
Unknown = 0x0000, /* Unknown */
Pcm = 0x0001, /* PCM */
AdPcm = 0x0002, /* Adaptive Differential PCM */
IeeeFloat = 0x0003, /* IEEE Float */
ALaw = 0x0006, /* A-Law */
MuLaw = 0x0007, /* μ-Law */
Extensible = 0xfffe /* Extensible */
};
#pragma pack(1)
/** @brief RIFF chunk */
/* RIFF chunk */
struct RiffChunk {
char chunkId[4]; /**< @brief chunk name (4 characters) */
UnsignedInt chunkSize; /**< @brief size of chunk (does not include chunk header) */
char chunkId[4]; /* chunk name (4 characters) */
UnsignedInt chunkSize; /* size of chunk (does not include chunk header) */
};
#pragma pack()
#pragma pack(1)
/** @brief WAV file header */
/* WAV file header */
struct WavHeaderChunk {
RiffChunk chunk; /**< @brief Starting RIFF chunk */
char format[4]; /**< @brief `WAVE` characters */
RiffChunk chunk; /* Starting RIFF chunk */
char format[4]; /* `WAVE` characters */
};
#pragma pack()
#pragma pack(1)
/** @brief WAV 'fmt' header */
/* WAV 'fmt' header */
struct WavFormatChunk {
RiffChunk chunk; /**< @brief Starting RIFF chunk */
WavAudioFormat audioFormat; /**< @brief Audio format */
UnsignedShort numChannels; /**< @brief 1 = Mono, 2 = Stereo */
UnsignedInt sampleRate; /**< @brief Sample rate in Hz */
UnsignedInt byteRate; /**< @brief Bytes per second */
UnsignedShort blockAlign; /**< @brief Bytes per sample (all channels) */
UnsignedShort bitsPerSample; /**< @brief Bits per sample (one channel) */
RiffChunk chunk; /* Starting RIFF chunk */
WavAudioFormat audioFormat; /* Audio format */
UnsignedShort numChannels; /* 1 = Mono, 2 = Stereo */
UnsignedInt sampleRate; /* Sample rate in Hz */
UnsignedInt byteRate; /* Bytes per second */
UnsignedShort blockAlign; /* Bytes per sample (all channels) */
UnsignedShort bitsPerSample; /* Bits per sample (one channel) */
};
#pragma pack()
/** @debugoperatorenum{WavAudioFormat} */
MAGNUM_WAVAUDIOIMPORTER_EXPORT Debug& operator<<(Debug& debug, WavAudioFormat value);
}}
}}}
#endif

5
src/MagnumPlugins/WavAudioImporter/WavImporter.cpp

@ -34,6 +34,11 @@
namespace Magnum { namespace Audio {
using Implementation::RiffChunk;
using Implementation::WavAudioFormat;
using Implementation::WavFormatChunk;
using Implementation::WavHeaderChunk;
WavImporter::WavImporter() = default;
WavImporter::WavImporter(PluginManager::AbstractManager& manager, const std::string& plugin): AbstractImporter{manager, plugin} {}

Loading…
Cancel
Save