2023-05-31 16:19:06 +02:00
|
|
|
/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
|
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
2019-02-17 22:08:12 +01:00
|
|
|
/** \file
|
|
|
|
* \ingroup DNA
|
2011-02-17 21:48:12 +01:00
|
|
|
*/
|
2002-10-12 13:37:38 +02:00
|
|
|
|
2012-02-17 19:59:41 +01:00
|
|
|
#pragma once
|
2011-12-30 08:25:49 +01:00
|
|
|
|
2002-10-12 13:37:38 +02:00
|
|
|
#include "DNA_ID.h"
|
2020-03-19 09:33:03 +01:00
|
|
|
#include "DNA_defs.h"
|
2002-10-12 13:37:38 +02:00
|
|
|
|
|
|
|
struct Ipo;
|
|
|
|
struct PackedFile;
|
|
|
|
|
|
|
|
typedef struct bSound {
|
|
|
|
ID id;
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2009-08-26 16:19:29 +02:00
|
|
|
/**
|
|
|
|
* The path to the sound file.
|
|
|
|
*/
|
2019-01-07 12:19:13 +01:00
|
|
|
/** 1024 = FILE_MAX. */
|
2020-06-23 01:54:14 +02:00
|
|
|
char filepath[1024];
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2002-10-12 13:37:38 +02:00
|
|
|
/**
|
2009-08-26 16:19:29 +02:00
|
|
|
* The packed file.
|
2002-10-12 13:37:38 +02:00
|
|
|
*/
|
2009-08-26 16:19:29 +02:00
|
|
|
struct PackedFile *packedfile;
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2002-10-12 13:37:38 +02:00
|
|
|
/**
|
2009-08-26 16:19:29 +02:00
|
|
|
* The handle for audaspace.
|
2002-10-12 13:37:38 +02:00
|
|
|
*/
|
2009-08-26 16:19:29 +02:00
|
|
|
void *handle;
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2002-10-12 13:37:38 +02:00
|
|
|
/**
|
2009-08-26 16:19:29 +02:00
|
|
|
* Deprecated; used for loading pre 2.5 files.
|
2002-10-12 13:37:38 +02:00
|
|
|
*/
|
2009-08-26 16:19:29 +02:00
|
|
|
struct PackedFile *newpackedfile;
|
|
|
|
struct Ipo *ipo;
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2009-08-26 16:19:29 +02:00
|
|
|
float volume;
|
|
|
|
float attenuation;
|
|
|
|
float pitch;
|
|
|
|
float min_gain;
|
|
|
|
float max_gain;
|
|
|
|
float distance;
|
2018-07-20 12:01:38 +02:00
|
|
|
short flags;
|
2019-01-07 12:19:13 +01:00
|
|
|
/** Runtime only, always reset in readfile. */
|
|
|
|
short tags;
|
2019-02-27 05:07:50 +01:00
|
|
|
char _pad[4];
|
2021-07-06 19:48:06 +02:00
|
|
|
double offset_time;
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2020-10-14 06:24:42 +02:00
|
|
|
/* Unused currently. */
|
|
|
|
// int type;
|
|
|
|
// struct bSound *child_sound;
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2002-10-12 13:37:38 +02:00
|
|
|
/**
|
2010-02-08 00:41:17 +01:00
|
|
|
* The audaspace handle for cache.
|
2002-10-12 13:37:38 +02:00
|
|
|
*/
|
2010-02-08 00:41:17 +01:00
|
|
|
void *cache;
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2011-08-09 16:10:32 +02:00
|
|
|
/**
|
|
|
|
* Waveform display data.
|
|
|
|
*/
|
|
|
|
void *waveform;
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2009-08-26 16:19:29 +02:00
|
|
|
/**
|
2010-02-08 00:41:17 +01:00
|
|
|
* The audaspace handle that should actually be played back.
|
|
|
|
* Should be cache if cache != NULL; otherwise its handle
|
2009-08-26 16:19:29 +02:00
|
|
|
*/
|
2010-02-08 00:41:17 +01:00
|
|
|
void *playback_handle;
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2019-06-12 01:04:10 +02:00
|
|
|
/** Spin-lock for asynchronous loading of sounds. */
|
2015-01-28 19:45:16 +01:00
|
|
|
void *spinlock;
|
2012-03-09 20:01:30 +01:00
|
|
|
/* XXX unused currently (SOUND_TYPE_LIMITER) */
|
2023-09-25 08:56:17 +02:00
|
|
|
// float start, end;
|
2022-05-19 20:58:55 +02:00
|
|
|
|
2022-09-17 06:46:50 +02:00
|
|
|
/* Description of Audio channels, as of #eSoundChannels. */
|
2022-05-19 20:58:55 +02:00
|
|
|
int audio_channels;
|
|
|
|
|
|
|
|
int samplerate;
|
|
|
|
|
2002-10-12 13:37:38 +02:00
|
|
|
} bSound;
|
|
|
|
|
2012-03-09 19:28:30 +01:00
|
|
|
/* XXX unused currently */
|
|
|
|
#if 0
|
2009-08-09 23:16:39 +02:00
|
|
|
typedef enum eSound_Type {
|
|
|
|
SOUND_TYPE_INVALID = -1,
|
|
|
|
SOUND_TYPE_FILE = 0,
|
2012-06-15 16:11:05 +02:00
|
|
|
SOUND_TYPE_BUFFER = 1,
|
2019-01-15 13:57:49 +01:00
|
|
|
SOUND_TYPE_LIMITER = 2,
|
2012-03-09 19:28:30 +01:00
|
|
|
} eSound_Type;
|
|
|
|
#endif
|
2009-08-09 23:16:39 +02:00
|
|
|
|
2020-03-29 11:32:45 +02:00
|
|
|
/** #bSound.flags */
|
2013-12-10 02:59:04 +01:00
|
|
|
enum {
|
2019-12-16 23:42:12 +01:00
|
|
|
#ifdef DNA_DEPRECATED_ALLOW
|
2019-01-07 12:19:13 +01:00
|
|
|
/* deprecated! used for sound actuator loading */
|
|
|
|
SOUND_FLAGS_3D = (1 << 3),
|
2015-07-10 07:58:08 +02:00
|
|
|
#endif
|
2014-11-24 18:18:35 +01:00
|
|
|
SOUND_FLAGS_CACHING = (1 << 4),
|
|
|
|
SOUND_FLAGS_MONO = (1 << 5),
|
2013-12-10 02:59:04 +01:00
|
|
|
};
|
|
|
|
|
2020-03-29 11:32:45 +02:00
|
|
|
/** #bSound.tags */
|
2018-07-20 12:01:38 +02:00
|
|
|
enum {
|
2019-01-07 12:19:13 +01:00
|
|
|
/* Do not free/reset waveform on sound load, only used by undo code. */
|
|
|
|
SOUND_TAGS_WAVEFORM_NO_RELOAD = 1 << 0,
|
2018-07-20 12:11:34 +02:00
|
|
|
SOUND_TAGS_WAVEFORM_LOADING = (1 << 6),
|
2018-07-20 12:01:38 +02:00
|
|
|
};
|