diff options
author | Carlos J. Puga Medina <cpm@FreeBSD.org> | 2018-08-19 00:28:41 +0000 |
---|---|---|
committer | Carlos J. Puga Medina <cpm@FreeBSD.org> | 2018-08-19 00:28:41 +0000 |
commit | 21b280784c769623287dfb3a658b7dc45dd5835d (patch) | |
tree | cdfd0c915eab48f5d22901eb3a7923dd548ba1e5 | |
parent | Update to Wine 3.14. This includes the following changes: (diff) |
- Unbreak build with SNDIO option [1]
- Cosmetic fix
Reported by: starikarp@yandex.com via email [1]
Notes
Notes:
svn path=/head/; revision=477549
-rw-r--r-- | www/iridium/Makefile | 1 | ||||
-rw-r--r-- | www/iridium/files/audio_manager_openbsd.cc | 6 | ||||
-rw-r--r-- | www/iridium/files/sndio_input.cc | 17 | ||||
-rw-r--r-- | www/iridium/files/sndio_input.h | 1 | ||||
-rw-r--r-- | www/iridium/files/sndio_output.cc | 16 |
5 files changed, 18 insertions, 23 deletions
diff --git a/www/iridium/Makefile b/www/iridium/Makefile index 05c0a11e339e..5588f0f4f82b 100644 --- a/www/iridium/Makefile +++ b/www/iridium/Makefile @@ -60,6 +60,7 @@ RUN_DEPENDS= xdg-open:devel/xdg-utils \ noto-lite>0:x11-fonts/noto-lite ONLY_FOR_ARCHS= amd64 i386 + USES= bison desktop-file-utils jpeg ninja perl5 pkgconfig \ python:2.7,build shebangfix tar:xz USE_GL= gl diff --git a/www/iridium/files/audio_manager_openbsd.cc b/www/iridium/files/audio_manager_openbsd.cc index ee293b9d3791..1b021dd0833a 100644 --- a/www/iridium/files/audio_manager_openbsd.cc +++ b/www/iridium/files/audio_manager_openbsd.cc @@ -73,7 +73,7 @@ AudioParameters AudioManagerOpenBSD::GetInputStreamParameters( return AudioParameters( AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO, - kDefaultSampleRate, buffer_size); + kDefaultSampleRate, 16, buffer_size); } AudioManagerOpenBSD::AudioManagerOpenBSD(std::unique_ptr<AudioThread> audio_thread, @@ -130,8 +130,10 @@ AudioParameters AudioManagerOpenBSD::GetPreferredOutputStreamParameters( ChannelLayout channel_layout = CHANNEL_LAYOUT_STEREO; int sample_rate = kDefaultSampleRate; int buffer_size = kDefaultOutputBufferSize; + int bits_per_sample = 16; if (input_params.IsValid()) { sample_rate = input_params.sample_rate(); + bits_per_sample = input_params.bits_per_sample(); channel_layout = input_params.channel_layout(); buffer_size = std::min(buffer_size, input_params.frames_per_buffer()); } @@ -142,7 +144,7 @@ AudioParameters AudioManagerOpenBSD::GetPreferredOutputStreamParameters( return AudioParameters( AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, - sample_rate, buffer_size); + sample_rate, bits_per_sample, buffer_size); } AudioInputStream* AudioManagerOpenBSD::MakeInputStream( diff --git a/www/iridium/files/sndio_input.cc b/www/iridium/files/sndio_input.cc index 4a00d8ac1083..3cf19a8a2d6d 100644 --- a/www/iridium/files/sndio_input.cc +++ b/www/iridium/files/sndio_input.cc @@ -15,13 +15,11 @@ namespace media { -static const SampleFormat kSampleFormat = kSampleFormatS16; - void sndio_in_onmove(void *arg, int delta) { NOTIMPLEMENTED(); SndioAudioInputStream* self = static_cast<SndioAudioInputStream*>(arg); - self->hw_delay_ = delta - self->params_.GetBytesPerFrame(kSampleFormat); + self->hw_delay_ = delta - self->params_.GetBytesPerFrame(); } void *sndio_in_threadstart(void *arg) { @@ -38,7 +36,9 @@ SndioAudioInputStream::SndioAudioInputStream(AudioManagerBase* audio_manager, : audio_manager_(audio_manager), device_name_(device_name), params_(params), - bytes_per_buffer_(params.GetBytesPerBuffer(kSampleFormat)), + bytes_per_buffer_(params.frames_per_buffer() * + (params.channels() * params.bits_per_sample()) / + 8), buffer_duration_(base::TimeDelta::FromMicroseconds( params.frames_per_buffer() * base::Time::kMicrosecondsPerSecond / static_cast<float>(params.sample_rate()))), @@ -66,7 +66,7 @@ bool SndioAudioInputStream::Open() { sio_initpar(&par); par.rate = params_.sample_rate(); par.pchan = params_.channels(); - par.bits = SampleFormatToBytesPerChannel(kSampleFormat); + par.bits = params_.bits_per_sample(); par.bps = par.bits / 8; par.sig = sig = par.bits != 8 ? 1 : 0; par.le = SIO_LE_NATIVE; @@ -88,7 +88,7 @@ bool SndioAudioInputStream::Open() { if (par.rate != (unsigned int)params_.sample_rate() || par.pchan != (unsigned int)params_.channels() || - par.bits != (unsigned int)SampleFormatToBytesPerChannel(kSampleFormat) || + par.bits != (unsigned int)params_.bits_per_sample() || par.sig != (unsigned int)sig || (par.bps > 1 && par.le != SIO_LE_NATIVE) || (par.bits != par.bps * 8)) { @@ -162,9 +162,4 @@ bool SndioAudioInputStream::IsMuted() { return false; } -void SndioAudioInputStream::SetOutputDeviceForAec( - const std::string& output_device_id) { -// Not supported. Do nothing. -} - } // namespace media diff --git a/www/iridium/files/sndio_input.h b/www/iridium/files/sndio_input.h index 2f3fca97a3a3..b354f66fd55a 100644 --- a/www/iridium/files/sndio_input.h +++ b/www/iridium/files/sndio_input.h @@ -59,7 +59,6 @@ class SndioAudioInputStream : public AgcAudioStream<AudioInputStream> { void SetVolume(double volume) override; double GetVolume() override; bool IsMuted() override; - void SetOutputDeviceForAec(const std::string& output_device_id) override; // C-linkage call-backs are friends to access private data friend void sndio_in_onmove(void *arg, int delta); diff --git a/www/iridium/files/sndio_output.cc b/www/iridium/files/sndio_output.cc index e9053d34b8aa..27c6c1db285a 100644 --- a/www/iridium/files/sndio_output.cc +++ b/www/iridium/files/sndio_output.cc @@ -11,8 +11,6 @@ namespace media { -static const SampleFormat kSampleFormat = kSampleFormatS16; - void sndio_onmove(void *arg, int delta) { SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg); @@ -37,7 +35,7 @@ SndioAudioOutputStream::SndioAudioOutputStream(const AudioParameters& params, : manager(manager), params(params), audio_bus(AudioBus::Create(params)), - bytes_per_frame(params.GetBytesPerFrame(kSampleFormat)), + bytes_per_frame(params.GetBytesPerFrame()), state(kClosed), mutex(PTHREAD_MUTEX_INITIALIZER) { } @@ -59,7 +57,7 @@ bool SndioAudioOutputStream::Open() { sio_initpar(&par); par.rate = params.sample_rate(); par.pchan = params.channels(); - par.bits = SampleFormatToBitsPerChannel(kSampleFormat); + par.bits = params.bits_per_sample(); par.bps = par.bits / 8; par.sig = sig = par.bits != 8 ? 1 : 0; par.le = SIO_LE_NATIVE; @@ -76,7 +74,7 @@ bool SndioAudioOutputStream::Open() { } if (par.rate != (unsigned int)params.sample_rate() || par.pchan != (unsigned int)params.channels() || - par.bits != (unsigned int)SampleFormatToBitsPerChannel(kSampleFormat) || + par.bits != (unsigned int)params.bits_per_sample() || par.sig != (unsigned int)sig || (par.bps > 1 && par.le != SIO_LE_NATIVE) || (par.bits != par.bps * 8)) { @@ -86,7 +84,7 @@ bool SndioAudioOutputStream::Open() { state = kStopped; volpending = 0; vol = 0; - buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)]; + buffer = new char[audio_bus->frames() * params.GetBytesPerFrame()]; sio_onmove(hdl, sndio_onmove, this); sio_onvol(hdl, sndio_onvol, this); return true; @@ -155,16 +153,16 @@ void SndioAudioOutputStream::RealTimeThread(void) { // Get data to play const base::TimeDelta delay = AudioTimestampHelper::FramesToTime(hw_delay, params.sample_rate() * 1000); count = source->OnMoreData(delay, base::TimeTicks::Now(), 0, audio_bus.get()); - audio_bus->ToInterleaved(count, SampleFormatToBytesPerChannel(kSampleFormat), buffer); + audio_bus->ToInterleaved(count, params.bits_per_sample() / 8, buffer); if (count == 0) { // We have to submit something to the device count = audio_bus->frames(); - memset(buffer, 0, count * params.GetBytesPerFrame(kSampleFormat)); + memset(buffer, 0, count * params.GetBytesPerFrame()); LOG(WARNING) << "No data to play, running empty cycle."; } // Submit data to the device - avail = count * params.GetBytesPerFrame(kSampleFormat); + avail = count * params.GetBytesPerFrame(); count = sio_write(hdl, buffer, avail); if (count == 0) { LOG(WARNING) << "Audio device disconnected."; |