dsound.h File Reference

Interface: direct control of sound. More...

#include <config.h>
#include <time.h>
#include <unistd.h>
Include dependency graph for dsound.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  note_t
 the note structure describing a single note. More...
 

Macros

#define WHOLE   16
 Whole note in terms of sixteenths. More...
 
#define HALF   8
 Half note in terms of sixteenths. More...
 
#define QUARTER   4
 Quater note in terms of sixteenths. More...
 
#define EIGHTH   2
 Eighth note in terms of sixteenths. More...
 
#define PITCH_A0   0
 notePitches standard note pitch values More...
 
#define PITCH_Am0   1
 
#define PITCH_H0   2
 
#define PITCH_C1   3
 
#define PITCH_Cm1   4
 
#define PITCH_D1   5
 
#define PITCH_Dm1   6
 
#define PITCH_E1   7
 
#define PITCH_F1   8
 
#define PITCH_Fm1   9
 
#define PITCH_G1   10
 
#define PITCH_Gm1   11
 
#define PITCH_A1   12
 
#define PITCH_Am1   13
 
#define PITCH_H1   14
 
#define PITCH_C2   15
 
#define PITCH_Cm2   16
 
#define PITCH_D2   17
 
#define PITCH_Dm2   18
 
#define PITCH_E2   19
 
#define PITCH_F2   20
 
#define PITCH_Fm2   21
 
#define PITCH_G2   22
 
#define PITCH_Gm2   23
 
#define PITCH_A2   24
 
#define PITCH_Am2   25
 
#define PITCH_H2   26
 
#define PITCH_C3   27
 
#define PITCH_Cm3   28
 
#define PITCH_D3   29
 
#define PITCH_Dm3   30
 
#define PITCH_E3   31
 
#define PITCH_F3   32
 
#define PITCH_Fm3   33
 
#define PITCH_G3   34
 
#define PITCH_Gm3   35
 
#define PITCH_A3   36
 
#define PITCH_Am3   37
 
#define PITCH_H3   38
 
#define PITCH_C4   39
 
#define PITCH_Cm4   40
 
#define PITCH_D4   41
 
#define PITCH_Dm4   42
 
#define PITCH_E4   43
 
#define PITCH_F4   44
 
#define PITCH_Fm4   45
 
#define PITCH_G4   46
 
#define PITCH_Gm4   47
 
#define PITCH_A4   48
 
#define PITCH_Am4   49
 
#define PITCH_H4   50
 
#define PITCH_C5   51
 
#define PITCH_Cm5   52
 
#define PITCH_D5   53
 
#define PITCH_Dm5   54
 
#define PITCH_E5   55
 
#define PITCH_F5   56
 
#define PITCH_Fm5   57
 
#define PITCH_G5   58
 
#define PITCH_Gm5   59
 
#define PITCH_A5   60
 
#define PITCH_Am5   61
 
#define PITCH_H5   62
 
#define PITCH_C6   63
 
#define PITCH_Cm6   64
 
#define PITCH_D6   65
 
#define PITCH_Dm6   66
 
#define PITCH_E6   67
 
#define PITCH_F6   68
 
#define PITCH_Fm6   69
 
#define PITCH_G6   70
 
#define PITCH_Gm6   71
 
#define PITCH_A6   72
 
#define PITCH_Am6   73
 
#define PITCH_H6   74
 
#define PITCH_C7   75
 
#define PITCH_Cm7   76
 
#define PITCH_D7   77
 
#define PITCH_Dm7   78
 
#define PITCH_E7   79
 
#define PITCH_F7   80
 
#define PITCH_Fm7   81
 
#define PITCH_G7   82
 
#define PITCH_Gm7   83
 
#define PITCH_A7   84
 
#define PITCH_Am7   85
 
#define PITCH_H7   86
 
#define PITCH_C8   87
 
#define PITCH_Cm8   88
 
#define PITCH_D8   89
 
#define PITCH_Dm8   90
 
#define PITCH_E8   91
 
#define PITCH_F8   92
 
#define PITCH_Fm8   93
 
#define PITCH_G8   94
 
#define PITCH_Gm8   95
 
#define PITCH_A8   96
 
#define PITCH_PAUSE   97
 specify a pause (rest) More...
 
#define PITCH_MAX   98
 maximum pitch value More...
 
#define PITCH_END   255
 mark the end of a list of note_t entries More...
 
#define DSOUND_BEEP   0
 system sounds More...
 
#define DSOUND_SYS_MAX   1
 max system sound More...
 
#define DSOUND_DEFAULT_16th_ms   200
 default duration of 1/16th note in ms More...
 
#define DSOUND_DEFAULT_internote_ms   15
 default duration internote spacing in ms More...
 

Functions

static void dsound_play (const note_t *notes)
 play a sequence of notes More...
 
static void dsound_system (unsigned nr)
 play a system sound More...
 
static unsigned dsound_set_duration (unsigned duration)
 set duration of a 16th note in ms; return the previous duration. More...
 
static void dsound_set_internote (unsigned duration)
 set duration of inter-note spacing (subtracted from note duration) More...
 
static int dsound_playing (void)
 returns nonzero value if a sound is playing More...
 
wakeup_t dsound_finished (wakeup_t data)
 sound finished event wakeup function More...
 
void dsound_stop (void)
 stop playing sound More...
 

Variables

unsigned dsound_16th_ms
 length of 1/16 note in ms More...
 
unsigned dsound_internote_ms
 length of internote spacing in ms More...
 
volatile note_tdsound_next_note
 pointer to current note More...
 
volatile time_t dsound_next_time
 when to play next note More...
 
const note_tdsound_system_sounds []
 system sound data More...
 

Detailed Description

Interface: direct control of sound.

Author
Markus L. Noga marku.nosp@m.s@no.nosp@m.ga.de

Definition in file dsound.h.

Macro Definition Documentation

◆ DSOUND_BEEP

#define DSOUND_BEEP   0

system sounds

Definition at line 197 of file dsound.h.

Referenced by Sound::beep().

◆ DSOUND_DEFAULT_16th_ms

#define DSOUND_DEFAULT_16th_ms   200

default duration of 1/16th note in ms

Definition at line 204 of file dsound.h.

Referenced by show_on().

◆ DSOUND_DEFAULT_internote_ms

#define DSOUND_DEFAULT_internote_ms   15

default duration internote spacing in ms

Definition at line 207 of file dsound.h.

◆ DSOUND_SYS_MAX

#define DSOUND_SYS_MAX   1

max system sound

Definition at line 200 of file dsound.h.

Referenced by dsound_system().

◆ PITCH_END

#define PITCH_END   255

mark the end of a list of note_t entries

Definition at line 193 of file dsound.h.

◆ PITCH_MAX

#define PITCH_MAX   98

maximum pitch value

Definition at line 190 of file dsound.h.

◆ PITCH_PAUSE

#define PITCH_PAUSE   97

specify a pause (rest)

Definition at line 187 of file dsound.h.

Function Documentation

◆ dsound_finished()

wakeup_t dsound_finished ( wakeup_t  data)

sound finished event wakeup function

Referenced by dsound_playing().

◆ dsound_play()

static void dsound_play ( const note_t notes)
inlinestatic

play a sequence of notes

Definition at line 234 of file dsound.h.

Referenced by dsound_system(), and Sound::play().

◆ dsound_playing()

static int dsound_playing ( void  )
inlinestatic

returns nonzero value if a sound is playing

Definition at line 260 of file dsound.h.

References dsound_finished(), and dsound_stop().

Referenced by Sound::playing().

◆ dsound_set_duration()

static unsigned dsound_set_duration ( unsigned  duration)
inlinestatic

set duration of a 16th note in ms; return the previous duration.

Definition at line 246 of file dsound.h.

References dsound_16th_ms.

Referenced by Sound::duration(), and show_on().

◆ dsound_set_internote()

static void dsound_set_internote ( unsigned  duration)
inlinestatic

set duration of inter-note spacing (subtracted from note duration)

set to 0 for perfect legato.

Definition at line 255 of file dsound.h.

Referenced by Sound::internote().

◆ dsound_stop()

void dsound_stop ( void  )

stop playing sound

Referenced by dsound_playing(), and Sound::stop().

◆ dsound_system()

static void dsound_system ( unsigned  nr)
inlinestatic

play a system sound

Definition at line 240 of file dsound.h.

References dsound_play(), and DSOUND_SYS_MAX.

Referenced by Sound::beep().

Variable Documentation

◆ dsound_16th_ms

unsigned dsound_16th_ms

length of 1/16 note in ms

Referenced by dsound_set_duration().

◆ dsound_internote_ms

unsigned dsound_internote_ms

length of internote spacing in ms

◆ dsound_next_note

volatile note_t* dsound_next_note

pointer to current note

◆ dsound_next_time

volatile time_t dsound_next_time

when to play next note

◆ dsound_system_sounds

const note_t* dsound_system_sounds[]

system sound data


brickOS is released under the Mozilla Public License.
Original code copyright 1998-2005 by the authors.

Generated for brickOS Kernel Developer by doxygen 1.8.13