X-Git-Url: https://deadsoftware.ru/gitweb?p=flatwaifu.git;a=blobdiff_plain;f=src%2Fsound.h;h=22d630bbe1734303acd5bc6c79156f04589bd5e6;hp=5f71e34bddb486e3968e5d9856f04e381a22c282;hb=ef16dea09f87b15fc6d58fae0aa0832e0648c00e;hpb=2bb81ea2565c3627c954b5c37326db89b0048472 diff --git a/src/sound.h b/src/sound.h index 5f71e34..22d630b 100644 --- a/src/sound.h +++ b/src/sound.h @@ -1,59 +1,63 @@ -/* - Управление звуком и музыкой для DOS4GW - Версия 1.0 - Copyright (C) Алексей Волынсков, 1996 - - Copyright (C) Prikol Software 1996-1997 - Copyright (C) Aleksey Volynskov 1996-1997 - Copyright (C) 2011 - - This file is part of the Doom2D:Rembo project. - - Doom2D:Rembo is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License version 2 as - published by the Free Software Foundation. - - Doom2D:Rembo 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, see or - write to the Free Software Foundation, Inc., - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ +/* Copyright (C) 2020 SovietPony + * + * 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, version 3 of the License ONLY. + * + * 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, see . + */ #ifndef SOUND_H_INCLUDED #define SOUND_H_INCLUDED -// заголовок инструмента (DMI) -#pragma pack(1) +#include "menu.h" +#include "system.h" + typedef struct { - unsigned int len; // длина в байтах - unsigned int rate; // частота в Гц. - unsigned int lstart; // начало повтора в байтах от начала данных - unsigned int llen; // длина повтора в байтах + int tag; } snd_t; -#pragma pack() -// громкость звука и музыки (0-128) -extern short snd_vol; +const cfg_t *S_args (void); +const cfg_t *S_conf (void); +const menu_t *S_menu (void); +// Get sound handle for resource +snd_t *S_get (int id); + +// Get sound handle for resource with name +snd_t *S_load (const char name[8]); + +// Stop sound and free handle +void S_free (snd_t *s); + +// Initialize sound subsystem void S_init (void); + +// Deinitialize sound subsystem void S_done (void); -// проиграть звук s на канале c (1-8), частоте r и громкости v (0-255) -// возвращает номер канала, на котором играется звук -// если c==0, то звук попадет в любой свободный канал -// r - это относительная частота (обычно 1024) -short S_play (snd_t *s, short c, unsigned r, short v); +// Play sound on channel with volume . +// = sound handle (NULL is ignored) +// = 1..8 or 0 for any free +// = 0..255 +// return used channel or zero on error +short S_play (snd_t *s, short c, short v); -// остановить звук на канале c (1-8) +// Stop sound on channel +// = 0..8 (0 ignored) void S_stop (short c); +// Set sound volume to , also affects variable snd_vol +// = 0..128 void S_volume (int v); -void free_chunks (void); + +// Wait before all sounds end playing void S_wait (void); #endif /* SOUND_H_INCLUDED */