sintonia/library/ecasound-2.7.2/ecasound/ecasound.h

73 lines
1.8 KiB
C++

#ifndef INCLUDED_ECASOUND_H
#define INCLUDED_ECASOUND_H
#include <string>
#include <vector>
#include <pthread.h> /* POSIX: pthread_create() */
#include <signal.h> /* POSIX: sigaction(), sigwait(), sig_atomic_t */
class ECA_CONSOLE;
class ECA_CONTROL_MT;
class ECA_LOGGER_INTERFACE;
class ECA_NETECI_SERVER;
class ECA_SESSION;
class ECA_OSC_INTERFACE;
/**
* String constants
*/
#define ECASOUND_BANNER_ASTERISK_BAR "********************************************************************************\n"
#define ECASOUND_COPYRIGHT " (C) 1997-2010 Kai Vehmanen and others "
#define ECASOUND_RETVAL_SUCCESS 0 /**< Succesful run */
#define ECASOUND_RETVAL_INIT_FAILURE 1 /**< Unable to initialize */
#define ECASOUND_RETVAL_START_ERROR 2 /**< Unable to start processing */
#define ECASOUND_RETVAL_RUNTIME_ERROR 3 /**< Error during processing */
#define ECASOUND_RETVAL_CLEANUP_ERROR 4 /**< Error during cleanup/exit */
#define ECASOUND_TERM_WIDTH_DEFAULT 74
/**
* Type definitions
*/
/* Note! Check the initialization in ecasound.cpp if
* you change the state struct! */
class ECASOUND_RUN_STATE {
public:
ECASOUND_RUN_STATE(void);
~ECASOUND_RUN_STATE(void);
ECA_CONSOLE* console;
ECA_CONTROL_MT* control;
ECA_LOGGER_INTERFACE* logger;
ECA_NETECI_SERVER* eciserver;
ECA_OSC_INTERFACE* osc;
ECA_SESSION* session;
std::vector<std::string>* launchcmds;
pthread_t* neteci_thread;
pthread_t* watchdog_thread;
pthread_mutex_t* lock;
sig_atomic_t exit_request;
sigset_t* signalset;
int retval;
bool neteci_mode;
int neteci_tcp_port;
bool osc_mode;
int osc_udp_port;
bool keep_running_mode;
bool cerr_output_only_mode;
bool interactive_mode;
bool quiet_mode;
};
#endif /* INCLUDED_ECASOUND_H */