git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@4206 0c269be4-1314-0410-8aa9-9f06e86f4224tags/1.9.7
| @@ -55,9 +55,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||||
| namespace Jack | namespace Jack | ||||
| { | { | ||||
| #define jack_get_microseconds GetMicroSeconds | |||||
| int JackAlsaDriver::SetBufferSize(jack_nframes_t buffer_size) | int JackAlsaDriver::SetBufferSize(jack_nframes_t buffer_size) | ||||
| { | { | ||||
| jack_log("JackAlsaDriver::SetBufferSize %ld", buffer_size); | jack_log("JackAlsaDriver::SetBufferSize %ld", buffer_size); | ||||
| @@ -449,42 +446,6 @@ void JackAlsaDriver::WriteOutputAux(jack_nframes_t orig_nframes, snd_pcm_sframes | |||||
| } | } | ||||
| } | } | ||||
| void | |||||
| JackAlsaDriver::jack_driver_init (jack_driver_t *driver) | |||||
| { | |||||
| memset (driver, 0, sizeof (*driver)); | |||||
| driver->attach = 0; | |||||
| driver->detach = 0; | |||||
| driver->write = 0; | |||||
| driver->read = 0; | |||||
| driver->null_cycle = 0; | |||||
| driver->bufsize = 0; | |||||
| driver->start = 0; | |||||
| driver->stop = 0; | |||||
| } | |||||
| void | |||||
| JackAlsaDriver::jack_driver_nt_init (jack_driver_nt_t * driver) | |||||
| { | |||||
| memset (driver, 0, sizeof (*driver)); | |||||
| jack_driver_init ((jack_driver_t *) driver); | |||||
| driver->attach = 0; | |||||
| driver->detach = 0; | |||||
| driver->bufsize = 0; | |||||
| driver->stop = 0; | |||||
| driver->start = 0; | |||||
| driver->nt_bufsize = 0; | |||||
| driver->nt_start = 0; | |||||
| driver->nt_stop = 0; | |||||
| driver->nt_attach = 0; | |||||
| driver->nt_detach = 0; | |||||
| driver->nt_run_cycle = 0; | |||||
| } | |||||
| int JackAlsaDriver::is_realtime() const | int JackAlsaDriver::is_realtime() const | ||||
| { | { | ||||
| return fEngineControl->fRealTime; | return fEngineControl->fRealTime; | ||||
| @@ -752,7 +713,6 @@ dither_opt (char c, DitherAlgorithm* dither) | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| /* | |||||
| SERVER_EXPORT const jack_driver_desc_t* driver_get_descriptor () | SERVER_EXPORT const jack_driver_desc_t* driver_get_descriptor () | ||||
| { | { | ||||
| jack_driver_desc_t * desc; | jack_driver_desc_t * desc; | ||||
| @@ -931,7 +891,7 @@ SERVER_EXPORT const jack_driver_desc_t* driver_get_descriptor () | |||||
| desc->params = params; | desc->params = params; | ||||
| return desc; | return desc; | ||||
| } | } | ||||
| */ | |||||
| static Jack::JackAlsaDriver* g_alsa_driver; | static Jack::JackAlsaDriver* g_alsa_driver; | ||||
| @@ -1092,7 +1052,7 @@ void WriteOutput(jack_nframes_t orig_nframes, snd_pcm_sframes_t contiguous, snd_ | |||||
| { | { | ||||
| g_alsa_driver->WriteOutputAux(orig_nframes, contiguous, nwritten); | g_alsa_driver->WriteOutputAux(orig_nframes, contiguous, nwritten); | ||||
| } | } | ||||
| void SetTimet(jack_time_t time) | |||||
| void SetTime(jack_time_t time) | |||||
| { | { | ||||
| g_alsa_driver->SetTimetAux(time); | g_alsa_driver->SetTimetAux(time); | ||||
| } | } | ||||
| @@ -42,9 +42,6 @@ class JackAlsaDriver : public JackAudioDriver | |||||
| int fReservedCaptureDevice; | int fReservedCaptureDevice; | ||||
| int fReservedPlaybackDevice; | int fReservedPlaybackDevice; | ||||
| void jack_driver_init(jack_driver_t *driver); | |||||
| void jack_driver_nt_init(jack_driver_nt_t * driver); | |||||
| public: | public: | ||||
| JackAlsaDriver(const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table) | JackAlsaDriver(const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table) | ||||
| @@ -18,6 +18,7 @@ | |||||
| */ | */ | ||||
| #define __STDC_FORMAT_MACROS // For inttypes.h to work in C++ | #define __STDC_FORMAT_MACROS // For inttypes.h to work in C++ | ||||
| #include <math.h> | #include <math.h> | ||||
| @@ -81,6 +82,43 @@ extern void show_work_times (); | |||||
| /* Delay (in process calls) before jackd will report an xrun */ | /* Delay (in process calls) before jackd will report an xrun */ | ||||
| #define XRUN_REPORT_DELAY 0 | #define XRUN_REPORT_DELAY 0 | ||||
| void | |||||
| jack_driver_init (jack_driver_t *driver) | |||||
| { | |||||
| memset (driver, 0, sizeof (*driver)); | |||||
| driver->attach = 0; | |||||
| driver->detach = 0; | |||||
| driver->write = 0; | |||||
| driver->read = 0; | |||||
| driver->null_cycle = 0; | |||||
| driver->bufsize = 0; | |||||
| driver->start = 0; | |||||
| driver->stop = 0; | |||||
| } | |||||
| void | |||||
| jack_driver_nt_init (jack_driver_nt_t * driver) | |||||
| { | |||||
| memset (driver, 0, sizeof (*driver)); | |||||
| jack_driver_init ((jack_driver_t *) driver); | |||||
| driver->attach = 0; | |||||
| driver->detach = 0; | |||||
| driver->bufsize = 0; | |||||
| driver->stop = 0; | |||||
| driver->start = 0; | |||||
| driver->nt_bufsize = 0; | |||||
| driver->nt_start = 0; | |||||
| driver->nt_stop = 0; | |||||
| driver->nt_attach = 0; | |||||
| driver->nt_detach = 0; | |||||
| driver->nt_run_cycle = 0; | |||||
| } | |||||
| static void | static void | ||||
| alsa_driver_release_channel_dependent_memory (alsa_driver_t *driver) | alsa_driver_release_channel_dependent_memory (alsa_driver_t *driver) | ||||
| { | { | ||||
| @@ -1187,7 +1225,7 @@ alsa_driver_xrun_recovery (alsa_driver_t *driver, float *delayed_usecs) | |||||
| if (snd_pcm_status_get_state(status) == SND_PCM_STATE_SUSPENDED) | if (snd_pcm_status_get_state(status) == SND_PCM_STATE_SUSPENDED) | ||||
| { | { | ||||
| MESSAGE("\n\n**** alsa_pcm: pcm in suspended state, resuming it \n\n" ); | |||||
| jack_log("**** alsa_pcm: pcm in suspended state, resuming it" ); | |||||
| if (driver->capture_handle) { | if (driver->capture_handle) { | ||||
| if ((res = snd_pcm_prepare(driver->capture_handle)) | if ((res = snd_pcm_prepare(driver->capture_handle)) | ||||
| < 0) { | < 0) { | ||||
| @@ -1209,9 +1247,7 @@ alsa_driver_xrun_recovery (alsa_driver_t *driver, float *delayed_usecs) | |||||
| snd_pcm_status_get_trigger_tstamp(status, &tstamp); | snd_pcm_status_get_trigger_tstamp(status, &tstamp); | ||||
| timersub(&now, &tstamp, &diff); | timersub(&now, &tstamp, &diff); | ||||
| *delayed_usecs = diff.tv_sec * 1000000.0 + diff.tv_usec; | *delayed_usecs = diff.tv_sec * 1000000.0 + diff.tv_usec; | ||||
| MESSAGE("\n\n**** alsa_pcm: xrun of at least %.3f " | |||||
| "msecs\n\n", | |||||
| *delayed_usecs / 1000.0); | |||||
| jack_log("**** alsa_pcm: xrun of at least %.3f msecs",*delayed_usecs / 1000.0); | |||||
| } | } | ||||
| if (alsa_driver_restart (driver)) { | if (alsa_driver_restart (driver)) { | ||||
| @@ -2475,6 +2511,7 @@ dither_opt (char c, DitherAlgorithm* dither) | |||||
| const char driver_client_name[] = "alsa_pcm"; | const char driver_client_name[] = "alsa_pcm"; | ||||
| /* | |||||
| const jack_driver_desc_t * | const jack_driver_desc_t * | ||||
| driver_get_descriptor () | driver_get_descriptor () | ||||
| { | { | ||||
| @@ -2652,7 +2689,7 @@ driver_get_descriptor () | |||||
| return desc; | return desc; | ||||
| } | } | ||||
| */ | |||||
| /* | /* | ||||
| jack_driver_t * | jack_driver_t * | ||||
| driver_initialize (jack_client_t *client, const JSList * params) | driver_initialize (jack_client_t *client, const JSList * params) | ||||
| @@ -41,6 +41,11 @@ | |||||
| #include "memops.h" | #include "memops.h" | ||||
| #include "alsa_midi.h" | #include "alsa_midi.h" | ||||
| #ifdef __cplusplus | |||||
| extern "C" | |||||
| { | |||||
| #endif | |||||
| typedef void (*ReadCopyFunction) (jack_default_audio_sample_t *dst, char *src, | typedef void (*ReadCopyFunction) (jack_default_audio_sample_t *dst, char *src, | ||||
| unsigned long src_bytes, | unsigned long src_bytes, | ||||
| unsigned long src_skip_bytes); | unsigned long src_skip_bytes); | ||||
| @@ -264,10 +269,7 @@ alsa_driver_read (alsa_driver_t *driver, jack_nframes_t nframes); | |||||
| int | int | ||||
| alsa_driver_write (alsa_driver_t* driver, jack_nframes_t nframes); | alsa_driver_write (alsa_driver_t* driver, jack_nframes_t nframes); | ||||
| #ifdef __cplusplus | |||||
| extern "C" | |||||
| { | |||||
| #endif | |||||
| jack_time_t jack_get_microseconds(void); | |||||
| // Code implemented in JackAlsaDriver.cpp | // Code implemented in JackAlsaDriver.cpp | ||||
| @@ -275,7 +277,7 @@ void ReadInput(jack_nframes_t orig_nframes, snd_pcm_sframes_t contiguous, snd_pc | |||||
| void MonitorInput(); | void MonitorInput(); | ||||
| void ClearOutput(); | void ClearOutput(); | ||||
| void WriteOutput(jack_nframes_t orig_nframes, snd_pcm_sframes_t contiguous, snd_pcm_sframes_t nwritten); | void WriteOutput(jack_nframes_t orig_nframes, snd_pcm_sframes_t contiguous, snd_pcm_sframes_t nwritten); | ||||
| void SetTimet(jack_time_t time); | |||||
| void SetTime(jack_time_t time); | |||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| } | } | ||||
| @@ -54,8 +54,6 @@ extern "C" | |||||
| #define jack_frame_time JACK_frame_time | #define jack_frame_time JACK_frame_time | ||||
| #define jack_last_frame_time JACK_last_frame_time | #define jack_last_frame_time JACK_last_frame_time | ||||
| #define jack_get_microseconds GetMicroSecond | |||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| } // extern "C" | } // extern "C" | ||||
| #endif | #endif | ||||