1/* 2 * Copyright 2020, Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef _GAME_SOUND_DEFS_H 6#define _GAME_SOUND_DEFS_H 7 8 9#include <SupportDefs.h> 10 11 12typedef int32 gs_id; 13 14#define B_GS_CUR_API_VERSION B_BEOS_VERSION 15#define B_GS_MIN_API_VERSION 0x100 16#define B_GS_INVALID_SOUND ((gs_id)-1) 17#define B_GS_MAIN_SOUND ((gs_id)-2) 18 19 20enum { 21 B_GS_BAD_HANDLE = -99999, 22 B_GS_NO_SOUNDS, 23 B_GS_NO_HARDWARE, 24 B_GS_ALREADY_COMMITTED, 25 B_GS_READ_ONLY_VALUE 26}; 27 28 29struct gs_audio_format { 30 enum format { 31 B_GS_U8 = 0x11, 32 B_GS_S16 = 0x2, 33 B_GS_F = 0x24, 34 B_GS_S32 = 0x4 35 }; 36 float frame_rate; 37 uint32 channel_count; 38 uint32 format; 39 uint32 byte_order; 40 size_t buffer_size; 41}; 42 43 44enum gs_attributes { 45 B_GS_NO_ATTRIBUTE = 0, 46 B_GS_MAIN_GAIN = 1, 47 B_GS_CD_THROUGH_GAIN, 48 B_GS_GAIN = 128, 49 B_GS_PAN, 50 B_GS_SAMPLING_RATE, 51 B_GS_LOOPING, 52 B_GS_FIRST_PRIVATE_ATTRIBUTE = 90000, 53 B_GS_FIRST_USER_ATTRIBUTE = 100000 54}; 55 56 57struct gs_attribute { 58 int32 attribute; 59 bigtime_t duration; 60 float value; 61 uint32 flags; 62}; 63 64 65struct gs_attribute_info { 66 int32 attribute; 67 float granularity; 68 float minimum; 69 float maximum; 70}; 71 72 73#endif 74