diff options
author | pvalchev@google.com <pvalchev@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-26 00:00:31 +0000 |
---|---|---|
committer | pvalchev@google.com <pvalchev@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-26 00:00:31 +0000 |
commit | de654e242cd46f57c373abe05f058fe094dc6410 (patch) | |
tree | 98f83ca04242e7f9afe1f1b6df3c70dd07abeddc /media | |
parent | 65b55352703972ebea34907e652fdd8a8d3f085d (diff) | |
download | chromium_src-de654e242cd46f57c373abe05f058fe094dc6410.zip chromium_src-de654e242cd46f57c373abe05f058fe094dc6410.tar.gz chromium_src-de654e242cd46f57c373abe05f058fe094dc6410.tar.bz2 |
- OpenBSD media/audio support stub
- FreeBSD has ALSA, add it to media.gyp
Review URL: http://codereview.chromium.org/1301003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42699 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/audio/openbsd/audio_manager_openbsd.cc | 57 | ||||
-rw-r--r-- | media/audio/openbsd/audio_manager_openbsd.h | 34 | ||||
-rw-r--r-- | media/base/yuv_row.h | 4 | ||||
-rw-r--r-- | media/media.gyp | 27 |
4 files changed, 115 insertions, 7 deletions
diff --git a/media/audio/openbsd/audio_manager_openbsd.cc b/media/audio/openbsd/audio_manager_openbsd.cc new file mode 100644 index 0000000..41dc93bb --- /dev/null +++ b/media/audio/openbsd/audio_manager_openbsd.cc @@ -0,0 +1,57 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "media/audio/openbsd/audio_manager_openbsd.h" + +#include "base/at_exit.h" +#include "base/logging.h" + +namespace { +AudioManagerOpenBSD* g_audio_manager = NULL; +} // namespace + +// Implementation of AudioManager. +bool AudioManagerOpenBSD::HasAudioDevices() { + NOTIMPLEMENTED(); + return false; +} + +AudioOutputStream* AudioManagerOpenBSD::MakeAudioStream(Format format, + int channels, + int sample_rate, + char bits_per_sample) { + NOTIMPLEMENTED(); + return NULL; +} + +AudioManagerOpenBSD::AudioManagerOpenBSD() { +} + +AudioManagerOpenBSD::~AudioManagerOpenBSD() { +} + +void AudioManagerOpenBSD::Init() { +} + +void AudioManagerOpenBSD::MuteAll() { + NOTIMPLEMENTED(); +} + +void AudioManagerOpenBSD::UnMuteAll() { + NOTIMPLEMENTED(); +} + +void DestroyAudioManagerOpenBSD(void* not_used) { + delete g_audio_manager; + g_audio_manager = NULL; +} + +AudioManager* AudioManager::GetAudioManager() { + if (!g_audio_manager) { + g_audio_manager = new AudioManagerOpenBSD(); + g_audio_manager->Init(); + base::AtExitManager::RegisterCallback(&DestroyAudioManagerOpenBSD, NULL); + } + return g_audio_manager; +} diff --git a/media/audio/openbsd/audio_manager_openbsd.h b/media/audio/openbsd/audio_manager_openbsd.h new file mode 100644 index 0000000..1766a77d --- /dev/null +++ b/media/audio/openbsd/audio_manager_openbsd.h @@ -0,0 +1,34 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef MEDIA_AUDIO_OPENBSD_AUDIO_MANAGER_OPENBSD_H_ +#define MEDIA_AUDIO_OPENBSD_AUDIO_MANAGER_OPENBSD_H_ + +#include "media/audio/audio_output.h" + +class AudioManagerOpenBSD : public AudioManager { + public: + AudioManagerOpenBSD(); + + // Call before using a newly created AudioManagerOpenBSD instance. + virtual void Init(); + + // Implementation of AudioManager. + virtual bool HasAudioDevices(); + virtual AudioOutputStream* MakeAudioStream(Format format, int channels, + int sample_rate, + char bits_per_sample); + virtual void MuteAll(); + virtual void UnMuteAll(); + + protected: + // Friend function for invoking the destructor at exit. + friend void DestroyAudioManagerOpenBSD(void*); + virtual ~AudioManagerOpenBSD(); + + private: + DISALLOW_COPY_AND_ASSIGN(AudioManagerOpenBSD); +}; + +#endif // MEDIA_AUDIO_OPENBSD_AUDIO_MANAGER_OPENBSD_H_ diff --git a/media/base/yuv_row.h b/media/base/yuv_row.h index ac5c6fd..9c36337 100644 --- a/media/base/yuv_row.h +++ b/media/base/yuv_row.h @@ -63,8 +63,8 @@ void ScaleYUVToRGB32Row(const uint8* y_buf, } // extern "C" #if !defined(USE_MMX) -// Windows, Mac and Linux use MMX -#if defined(ARCH_CPU_X86) || (defined(ARCH_CPU_X86_64) && defined(OS_LINUX)) +// Windows, Mac and Linux/BSD use MMX +#if defined(ARCH_CPU_X86) || (defined(ARCH_CPU_X86_64) && defined(OS_POSIX) && !defined(OS_MACOSX)) #define USE_MMX 1 #else #define USE_MMX 0 diff --git a/media/media.gyp b/media/media.gyp index 08c2f2b..cf86fc3 100644 --- a/media/media.gyp +++ b/media/media.gyp @@ -32,6 +32,8 @@ 'audio/linux/alsa_output.h', 'audio/linux/alsa_wrapper.cc', 'audio/linux/alsa_wrapper.h', + 'audio/openbsd/audio_manager_openbsd.cc', + 'audio/openbsd/audio_manager_openbsd.h', 'audio/mac/audio_manager_mac.cc', 'audio/mac/audio_manager_mac.h', 'audio/mac/audio_output_mac.cc', @@ -131,14 +133,29 @@ ], }, 'conditions': [ - ['OS =="linux"', { + ['OS=="linux" or OS=="freebsd"', { 'link_settings': { 'libraries': [ '-lasound', ], }, }], - ['OS =="mac"', { + ['OS=="openbsd"', { + 'sources/': [ ['exclude', 'alsa_' ], + ['exclude', 'audio_manager_linux' ], + ['exclude', '\\.mm?$' ] ], + 'link_settings': { + 'libraries': [ + ], + }, + }], + ['OS!="openbsd"', { + 'sources!': [ + 'audio/openbsd/audio_manager_openbsd.cc', + 'audio/openbsd/audio_manager_openbsd.h', + ], + }], + ['OS=="mac"', { 'link_settings': { 'libraries': [ '$(SDKROOT)/System/Library/Frameworks/AudioToolbox.framework', @@ -203,7 +220,7 @@ 'omx/omx_input_buffer_unittest.cc', ], 'conditions': [ - ['OS=="linux" or OS=="freebsd" or OS=="solaris"', { + ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', { 'dependencies': [ # Needed for the following #include chain: # base/run_all_unittests.cc @@ -292,7 +309,7 @@ '../testing/gtest.gyp:gtest', ], 'conditions': [ - ['OS=="linux" or OS=="freebsd" or OS=="solaris"', { + ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', { 'dependencies': [ '../build/linux/system.gyp:gtk', ], @@ -362,7 +379,7 @@ }, ], }], - ['OS=="linux"', { + ['OS=="linux" or OS=="freebsd" or OS=="openbsd"', { 'targets': [ { 'target_name': 'player_x11', |