/* WebDownloader for X-Window
* Copyright (C) 1999-2002 Koshelev Maxim
* This Program is free but not GPL!!! You can't modify it
* without agreement with author. You can't distribute modified
* program but you can distribute unmodified program.
*
* 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.
*/
#ifndef _D4X_SOUND_HEADER_
#define _D4X_SOUND_HEADER_
#include "queue.h"
#include "mutex.h"
#include <pthread.h>
#include <list>
enum SOUND_EVENTS{
SND_STARTUP,
SND_COMPLETE,
SND_FAIL,
SND_QUEUE_FINISH,
SND_ADD,
SND_DND_DROP,
SND_LAST
};
namespace d4x{
struct SndEvent{
int event;
time_t birth;
SndEvent(int _event):event(_event),birth(time(NULL)){};
SndEvent(const SndEvent &ev):event(ev.event),birth(ev.birth){};
};
};
class d4xSndServer{
std::list<d4x::SndEvent> queue;
d4x::Mutex my_mutex,exit_lock;
pthread_t thread_id;
char *snd_table[SND_LAST];
void play_sound(int event);
int stop_now;
pthread_cond_t cond;
public:
d4xSndServer();
void add_event(int event);
void run();
void run_thread();
void stop_thread();
void set_sound_file(int event,char *path);
char *get_sound_file(int event);
void init_sounds();
void reinit_sounds();
~d4xSndServer();
};
extern d4xSndServer *SOUND_SERVER;
#endif
syntax highlighted by Code2HTML, v. 0.9.1