diff --git a/README b/README index 5e746d3d..88278c31 100644 --- a/README +++ b/README @@ -42,7 +42,6 @@ Known problems, limitations - use of POSIX named semaphore is currently unstable and not recommended yet. - ---------------- Solaris version ---------------- diff --git a/solaris/oss/JackBoomerDriver.cpp b/solaris/oss/JackBoomerDriver.cpp index c5eeaf7d..14cb7b98 100644 --- a/solaris/oss/JackBoomerDriver.cpp +++ b/solaris/oss/JackBoomerDriver.cpp @@ -233,7 +233,7 @@ void JackBoomerDriver::DisplayDeviceInfo() JackBoomerDriver::JackBoomerDriver(const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table) : JackAudioDriver(name, alias, engine, table), fInFD(-1), fOutFD(-1), fBits(0), - fSampleFormat(0), fNperiods(0), fRWMode(0), fExcl(false), fIgnoreHW(true), + fSampleFormat(0), fNperiods(0), fRWMode(0) fInputBufferSize(0), fOutputBufferSize(0), fInputBuffer(NULL), fOutputBuffer(NULL), fInputThread(&fInputHandler), fOutputThread(&fOutputHandler), @@ -260,20 +260,13 @@ int JackBoomerDriver::OpenInput() if (fCaptureChannels == 0) fCaptureChannels = 2; - if ((fInFD = open(fCaptureDriverName, O_RDONLY | ((fExcl) ? O_EXCL : 0))) < 0) { + if ((fInFD = open(fCaptureDriverName, O_RDONLY)) < 0) { jack_error("JackBoomerDriver::OpenInput failed to open device : %s@%i, errno = %d", __FILE__, __LINE__, errno); return -1; } jack_log("JackBoomerDriver::OpenInput input fInFD = %d", fInFD); - if (fExcl) { - if (ioctl(fInFD, SNDCTL_DSP_COOKEDMODE, &flags) == -1) { - jack_error("JackBoomerDriver::OpenInput failed to set cooked mode : %s@%i, errno = %d", __FILE__, __LINE__, errno); - goto error; - } - } - gFragFormat = (2 << 16) + int2pow2(fEngineControl->fBufferSize * fSampleSize * fCaptureChannels); if (ioctl(fInFD, SNDCTL_DSP_SETFRAGMENT, &gFragFormat) == -1) { jack_error("JackBoomerDriver::OpenInput failed to set fragments : %s@%i, errno = %d", __FILE__, __LINE__, errno); @@ -329,19 +322,12 @@ int JackBoomerDriver::OpenOutput() if (fPlaybackChannels == 0) fPlaybackChannels = 2; - if ((fOutFD = open(fPlaybackDriverName, O_WRONLY | ((fExcl) ? O_EXCL : 0))) < 0) { + if ((fOutFD = open(fPlaybackDriverName, O_WRONLY)) < 0) { jack_error("JackBoomerDriver::OpenOutput failed to open device : %s@%i, errno = %d", __FILE__, __LINE__, errno); return -1; } jack_log("JackBoomerDriver::OpenOutput output fOutFD = %d", fOutFD); - - if (fExcl) { - if (ioctl(fOutFD, SNDCTL_DSP_COOKEDMODE, &flags) == -1) { - jack_error("JackBoomerDriver::OpenOutput failed to set cooked mode : %s@%i, errno = %d", __FILE__, __LINE__, errno); - goto error; - } - } gFragFormat = (2 << 16) + int2pow2(fEngineControl->fBufferSize * fSampleSize * fPlaybackChannels); if (ioctl(fOutFD, SNDCTL_DSP_SETFRAGMENT, &gFragFormat) == -1) { @@ -395,14 +381,12 @@ int JackBoomerDriver::Open(jack_nframes_t nframes, bool playing, int inchannels, int outchannels, - bool excl, bool monitor, const char* capture_driver_uid, const char* playback_driver_uid, jack_nframes_t capture_latency, jack_nframes_t playback_latency, - int bits, - bool ignorehwbuf) + int bits) { // Generic JackAudioDriver Open if (JackAudioDriver::Open(nframes, samplerate, capturing, playing, inchannels, outchannels, monitor, @@ -418,10 +402,8 @@ int JackBoomerDriver::Open(jack_nframes_t nframes, fRWMode |= ((capturing) ? kRead : 0); fRWMode |= ((playing) ? kWrite : 0); fBits = bits; - fIgnoreHW = ignorehwbuf; fNperiods = user_nperiods; - fExcl = excl; - + #ifdef JACK_MONITOR // Force memory page in memset(&gCycleTable, 0, sizeof(gCycleTable)); @@ -822,14 +804,6 @@ SERVER_EXPORT jack_driver_desc_t* driver_get_descriptor() strcpy(desc->params[i].short_desc, "Playback channels"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); - i++; - strcpy(desc->params[i].name, "excl"); - desc->params[i].character = 'e'; - desc->params[i].type = JackDriverParamBool; - desc->params[i].value.i = false; - strcpy(desc->params[i].short_desc, "Exclusif (O_EXCL) access mode"); - strcpy(desc->params[i].long_desc, desc->params[i].short_desc); - i++; strcpy(desc->params[i].name, "capture"); desc->params[i].character = 'C'; @@ -853,15 +827,7 @@ SERVER_EXPORT jack_driver_desc_t* driver_get_descriptor() strcpy(desc->params[i].value.str, OSS_DRIVER_DEF_DEV); strcpy(desc->params[i].short_desc, "OSS device name"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); - - i++; - strcpy(desc->params[i].name, "ignorehwbuf"); - desc->params[i].character = 'b'; - desc->params[i].type = JackDriverParamBool; - desc->params[i].value.i = false; - strcpy(desc->params[i].short_desc, "Ignore hardware period size"); - strcpy(desc->params[i].long_desc, desc->params[i].short_desc); - + i++; strcpy(desc->params[i].name, "input-latency"); desc->params[i].character = 'I'; @@ -893,11 +859,9 @@ EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine int chan_in = 0; int chan_out = 0; bool monitor = false; - bool excl = false; unsigned int nperiods = OSS_DRIVER_DEF_NPERIODS; const JSList *node; const jack_driver_param_t *param; - bool ignorehwbuf = false; jack_nframes_t systemic_input_latency = 0; jack_nframes_t systemic_output_latency = 0; @@ -949,14 +913,6 @@ EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine playback_pcm_name = strdup (param->value.str); capture_pcm_name = strdup (param->value.str); break; - - case 'b': - ignorehwbuf = true; - break; - - case 'e': - excl = true; - break; case 'I': systemic_input_latency = param->value.ui; @@ -978,7 +934,7 @@ EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine // Special open for Boomer driver... if (boomer_driver->Open(frames_per_interrupt, nperiods, srate, capture, playback, chan_in, chan_out, - excl, monitor, capture_pcm_name, playback_pcm_name, systemic_input_latency, systemic_output_latency, bits, ignorehwbuf) == 0) { + monitor, capture_pcm_name, playback_pcm_name, systemic_input_latency, systemic_output_latency, bits) == 0) { return boomer_driver; } else { delete boomer_driver; // Delete the driver diff --git a/solaris/oss/JackBoomerDriver.h b/solaris/oss/JackBoomerDriver.h index 2b9c4c1a..e488ec69 100644 --- a/solaris/oss/JackBoomerDriver.h +++ b/solaris/oss/JackBoomerDriver.h @@ -30,7 +30,7 @@ namespace Jack typedef jack_default_audio_sample_t jack_sample_t; -#define OSS_DRIVER_N_PARAMS 13 +#define OSS_DRIVER_N_PARAMS 11 #define OSS_DRIVER_DEF_DEV "/dev/dsp" #define OSS_DRIVER_DEF_FS 48000 #define OSS_DRIVER_DEF_BLKSIZE 1024 @@ -92,8 +92,6 @@ class JackBoomerDriver : public JackAudioDriver int fNperiods; unsigned int fSampleSize; int fRWMode; - bool fExcl; - bool fIgnoreHW; unsigned int fInputBufferSize; unsigned int fOutputBufferSize; @@ -131,14 +129,12 @@ class JackBoomerDriver : public JackAudioDriver bool playing, int chan_in, int chan_out, - bool vmix, bool monitor, const char* capture_driver_name, const char* playback_driver_name, jack_nframes_t capture_latency, jack_nframes_t playback_latency, - int bits, - bool ignorehwbuf); + int bits); int Close(); diff --git a/solaris/oss/JackOSSAdapter.cpp b/solaris/oss/JackOSSAdapter.cpp index 7bdfec96..3fffe425 100644 --- a/solaris/oss/JackOSSAdapter.cpp +++ b/solaris/oss/JackOSSAdapter.cpp @@ -309,8 +309,6 @@ int JackOSSAdapter::OpenInput() return -1; } -jack_log("JackOSSAdapter::OpenInput input fInFD = %d", fInFD); - if (fExcl) { if (ioctl(fInFD, SNDCTL_DSP_COOKEDMODE, &flags) == -1) { jack_error("JackOSSAdapter::OpenInput failed to set cooked mode : %s@%i, errno = %d", __FILE__, __LINE__, errno); @@ -318,8 +316,6 @@ jack_log("JackOSSAdapter::OpenInput input fInFD = %d", fInFD); } } -printf("fAdaptedBufferSize %d %d %d %d %s\n", fExcl, fAdaptedBufferSize, fSampleSize, fCaptureChannels, fCaptureDriverName); - gFragFormat = (2 << 16) + int2pow2(fAdaptedBufferSize * fSampleSize * fCaptureChannels); if (ioctl(fInFD, SNDCTL_DSP_SETFRAGMENT, &gFragFormat) == -1) { jack_error("JackOSSAdapter::OpenInput failed to set fragments : %s@%i, errno = %d", __FILE__, __LINE__, errno); @@ -406,9 +402,6 @@ int JackOSSAdapter::OpenOutput() } } -printf("fAdaptedBufferSize %d %d %d %d %s\n", fExcl, fAdaptedBufferSize, fSampleSize, fPlaybackChannels, fPlaybackDriverName); - - gFragFormat = (2 << 16) + int2pow2(fAdaptedBufferSize * fSampleSize * fPlaybackChannels); if (ioctl(fOutFD, SNDCTL_DSP_SETFRAGMENT, &gFragFormat) == -1) { jack_error("JackOSSAdapter::OpenOutput failed to set fragments : %s@%i, errno = %d", __FILE__, __LINE__, errno);