ede/edewm/Sound.h
2007-07-18 18:20:04 +00:00

64 lines
988 B
C++

/*
* $Id$
*
* Edewm, window manager
* Part of Equinox Desktop Environment (EDE).
* Copyright (c) 2000-2006 EDE Authors.
*
* This program is licenced under terms of the
* GNU General Public Licence version 2 or newer.
* See COPYING for details.
*/
#ifndef __SOUND_H__
#define __SOUND_H__
#ifdef SOUND
#include <ao/ao.h>
#endif
enum
{
SOUND_MINIMIZE = 0,
SOUND_MAXIMIZE,
SOUND_RESTORE,
SOUND_SHADE,
SOUND_CLOSE
};
#define KNOWN_SOUNDS 5
struct EventSound
{
bool allocated;
bool loaded;
short event;
char* file_to_play;
};
#define PCM_BUF_SIZE 4096
class SoundSystem
{
#ifdef SOUND
private:
ao_device* device;
ao_sample_format format;
int default_driver;
char pcm_out[PCM_BUF_SIZE];
bool inited;
bool down;
EventSound event_sound[KNOWN_SOUNDS];
#endif
public:
SoundSystem();
~SoundSystem();
void init(void);
void shutdown(void);
void add(short event, const char* file);
int play(const char* fname);
int play(short event);
};
#endif