hiding a template behind a typedef does not make it less a typedef,

and explicit specializations want template <> in g++4.
This commit is contained in:
espie 2010-05-24 08:31:17 +00:00
parent bd0a147bd4
commit 5d417812eb
2 changed files with 63 additions and 0 deletions

View File

@ -0,0 +1,34 @@
$OpenBSD: patch-src_AuData_h,v 1.1 2010/05/24 08:31:17 espie Exp $
--- src/AuData.h.orig Mon May 24 03:47:35 2010
+++ src/AuData.h Mon May 24 03:49:44 2010
@@ -26,22 +26,30 @@
// AuMuLawAudioData
typedef AudioDataImpl<AuMuLaw,BYTE> AuMuLawAudioData ;
+template <>
inline BYTE AuMuLawAudioData::readValue (BinaryIO* io) const { return (io->read8()) ; }
+template <>
inline void AuMuLawAudioData::writeValue (BinaryIO* io, BYTE v) const { io->write8(v) ; }
// AuPCM8AudioData
typedef AudioDataImpl<AuPCM8,SBYTE> AuPCM8AudioData ;
+template <>
inline SBYTE AuPCM8AudioData::readValue (BinaryIO* io) const { return ((SBYTE) io->read8()) ; }
+template <>
inline void AuPCM8AudioData::writeValue (BinaryIO* io, SBYTE v) const { io->write8((BYTE) v) ; }
// AuPCM16AudioData
typedef AudioDataImpl<AuPCM16,SWORD16> AuPCM16AudioData ;
+template <>
inline SWORD16 AuPCM16AudioData::readValue (BinaryIO* io) const { return ((SWORD16) io->read16_be()) ; }
+template <>
inline void AuPCM16AudioData::writeValue (BinaryIO* io, SWORD16 v) const { io->write16_be((UWORD16) v) ; }
// AuPCM32AudioData
typedef AudioDataImpl<AuPCM32,SWORD32> AuPCM32AudioData ;
+template <>
inline SWORD32 AuPCM32AudioData::readValue (BinaryIO* io) const { return ((SWORD32) io->read32_be()) ; }
+template <>
inline void AuPCM32AudioData::writeValue (BinaryIO* io, SWORD32 v) const { io->write32_be((UWORD32) v) ; }
#endif // ndef SH_AUDATA_H

View File

@ -0,0 +1,29 @@
$OpenBSD: patch-src_AuSampleValues_cc,v 1.1 2010/05/24 08:31:17 espie Exp $
--- src/AuSampleValues.cc.orig Mon May 24 03:49:57 2010
+++ src/AuSampleValues.cc Mon May 24 03:50:14 2010
@@ -21,17 +21,25 @@
#include "AuSampleValues.h"
// AuMuLawSampleValue
+template <>
const BYTE AuMuLawSampleValue::MinValue = 0 ;
+template <>
const BYTE AuMuLawSampleValue::MaxValue = BYTE_MAX ;
// AuPCM8SampleValue
+template <>
const SBYTE AuPCM8SampleValue::MinValue = SBYTE_MIN ;
+template <>
const SBYTE AuPCM8SampleValue::MaxValue = SBYTE_MAX ;
// AuPCM16SampleValue
+template <>
const SWORD16 AuPCM16SampleValue::MinValue = SWORD16_MIN ;
+template <>
const SWORD16 AuPCM16SampleValue::MaxValue = SWORD16_MAX ;
// AuPCM32SampleValue
+template <>
const SWORD32 AuPCM32SampleValue::MinValue = SWORD32_MIN ;
+template <>
const SWORD32 AuPCM32SampleValue::MaxValue = SWORD32_MAX ;