From ea461dfc3caacd476c91a6e9d83e7464d549768a Mon Sep 17 00:00:00 2001 From: Max Horn Date: Sun, 7 Sep 2003 20:23:38 +0000 Subject: new header file for VOC specific stuff svn-id: r10072 --- sound/mixer.h | 8 +++----- sound/voc.h | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 5 deletions(-) create mode 100644 sound/voc.h (limited to 'sound') diff --git a/sound/mixer.h b/sound/mixer.h index d688513d01..0e7e89bddf 100644 --- a/sound/mixer.h +++ b/sound/mixer.h @@ -24,17 +24,15 @@ #define SOUND_MIXER_H #include "stdafx.h" -#if defined(HAVE_CONFIG_H) -#include "config.h" -#endif +#include "common/scummsys.h" +#include "common/system.h" + #ifdef USE_MAD #include #endif #ifdef USE_VORBIS #include #endif -#include "common/scummsys.h" -#include "common/system.h" typedef uint32 PlayingSoundHandle; diff --git a/sound/voc.h b/sound/voc.h new file mode 100644 index 0000000000..aa45880004 --- /dev/null +++ b/sound/voc.h @@ -0,0 +1,64 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2001 Ludvig Strigeus + * Copyright (C) 2001-2003 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Header$ + * + */ + +#ifndef SOUND_VOC_H +#define SOUND_VOC_H + +#include "stdafx.h" +#include "common/scummsys.h" + +#if !defined(__GNUC__) +#pragma START_PACK_STRUCTS +#endif + +struct VocHeader { + uint8 desc[20]; + uint16 datablock_offset; + uint16 version; + uint16 id; +} GCC_PACK; + +struct VocBlockHeader { + uint8 blocktype; + uint8 size[3]; + uint8 sr; + uint8 pack; +} GCC_PACK; + +#if !defined(__GNUC__) +#pragma END_PACK_STRUCTS +#endif + + +static inline int getSampleRateFromVOCRate(int vocSR) { + if (vocSR == 0xa6) { + return 11025; + } else if (vocSR == 0xd2) { + return 22050; + } else { + int sr = 1000000L / (256L - vocSR); + warning("inexact sample rate used: %i", sr); + return sr; + } +} + +#endif -- cgit v1.2.3