git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@1691 0c269be4-1314-0410-8aa9-9f06e86f4224tags/0.68
@@ -13,6 +13,10 @@ Tom Szilagyi | |||||
Jackdmp changes log | Jackdmp changes log | ||||
--------------------------- | --------------------------- | ||||
2007-11-01 Stephane Letz <letz@grame.fr> | |||||
* Correct ALSA driver Attach method: internal driver may have changed the buffer_size and sample_rate values. | |||||
2007-10-31 Stephane Letz <letz@grame.fr> | 2007-10-31 Stephane Letz <letz@grame.fr> | ||||
* Server and user directory related code moved in a JackTools file. | * Server and user directory related code moved in a JackTools file. | ||||
@@ -57,6 +57,13 @@ int JackAudioDriver::SetBufferSize(jack_nframes_t buffer_size) | |||||
return 0; | return 0; | ||||
} | } | ||||
int JackAudioDriver::SetSampleRate(jack_nframes_t sample_rate) | |||||
{ | |||||
fEngineControl->fSampleRate = sample_rate; | |||||
fEngineControl->fPeriodUsecs = jack_time_t(1000000.f / fEngineControl->fSampleRate * fEngineControl->fBufferSize); // in microsec | |||||
return 0; | |||||
} | |||||
int JackAudioDriver::Open(jack_nframes_t nframes, | int JackAudioDriver::Open(jack_nframes_t nframes, | ||||
jack_nframes_t samplerate, | jack_nframes_t samplerate, | ||||
int capturing, | int capturing, | ||||
@@ -79,8 +79,8 @@ class EXPORT JackAudioDriver : public JackDriver | |||||
virtual int Detach(); | virtual int Detach(); | ||||
virtual int Write(); | virtual int Write(); | ||||
// sets up fEngineControl and fGraphManager, always succeeds | |||||
virtual int SetBufferSize(jack_nframes_t buffer_size); | |||||
virtual int SetBufferSize(jack_nframes_t buffer_size); | |||||
virtual int SetSampleRate(jack_nframes_t sample_rate); | |||||
virtual void NotifyXRun(jack_time_t callback_usecs); // XRun notification sent by the driver | virtual void NotifyXRun(jack_time_t callback_usecs); // XRun notification sent by the driver | ||||
@@ -2074,15 +2074,21 @@ int JackAlsaDriver::Attach() | |||||
JackPort* port; | JackPort* port; | ||||
int port_index; | int port_index; | ||||
unsigned long port_flags; | unsigned long port_flags; | ||||
char buf[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; | char buf[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; | ||||
port_flags = JackPortIsOutput | JackPortIsPhysical | JackPortIsTerminal; | |||||
assert(fCaptureChannels < PORT_NUM); | assert(fCaptureChannels < PORT_NUM); | ||||
assert(fPlaybackChannels < PORT_NUM); | assert(fPlaybackChannels < PORT_NUM); | ||||
port_flags = JackPortIsOutput | JackPortIsPhysical | JackPortIsTerminal; | |||||
alsa_driver_t* alsa_driver = (alsa_driver_t*)fDriver; | alsa_driver_t* alsa_driver = (alsa_driver_t*)fDriver; | ||||
if (alsa_driver->has_hw_monitoring) | |||||
port_flags |= JackPortCanMonitor; | |||||
// ALSA driver may have changed the values | |||||
JackAudioDriver::SetBufferSize(alsa_driver->frames_per_cycle); | |||||
JackAudioDriver::SetSampleRate(alsa_driver->frame_rate); | |||||
JackLog("JackAudioDriver::Attach fBufferSize %ld fSampleRate %ld\n", fEngineControl->fBufferSize, fEngineControl->fSampleRate); | JackLog("JackAudioDriver::Attach fBufferSize %ld fSampleRate %ld\n", fEngineControl->fBufferSize, fEngineControl->fSampleRate); | ||||