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); | ||||