Skip to content

replace fmod on linux with openal, merge linux and win32 into desktop #20419

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: v4
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions cocos/audio/AudioEngine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,8 @@
#include "audio/android/AudioEngine-inl.h"
#elif CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_MAC
#include "audio/apple/AudioEngine-inl.h"
#elif CC_TARGET_PLATFORM == CC_PLATFORM_WIN32
#include "audio/win32/AudioEngine-win32.h"
#elif CC_TARGET_PLATFORM == CC_PLATFORM_LINUX
#include "audio/linux/AudioEngine-linux.h"
#elif CC_TARGET_PLATFORM == CC_PLATFORM_WIN32 || CC_TARGET_PLATFORM == CC_PLATFORM_LINUX
#include "audio/desktop/AudioEngine-desktop.h"
#endif

#define TIME_DELAY_PRECISION 0.0001
Expand Down
53 changes: 27 additions & 26 deletions cocos/audio/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,41 @@ set(COCOS_AUDIO_SRC
audio/AudioEngine.cpp
)

if(WINDOWS OR LINUX)

set(COCOS_AUDIO_PLATFORM_HEADER
audio/desktop/AudioDecoderManager.h
audio/desktop/AudioDecoder.h
audio/desktop/AudioPlayer.h
audio/desktop/AudioDecoderOgg.h
audio/desktop/AudioMacros.h
audio/desktop/AudioEngine-desktop.h
audio/desktop/AudioDecoderMp3.h
audio/desktop/AudioCache.h
)

set(COCOS_AUDIO_PLATFORM_SRC
audio/desktop/AudioEngine-desktop.cpp
audio/desktop/AudioCache.cpp
audio/desktop/AudioPlayer.cpp
audio/desktop/AudioDecoder.cpp
audio/desktop/AudioDecoderManager.cpp
audio/desktop/AudioDecoderMp3.cpp
audio/desktop/AudioDecoderOgg.cpp
)

endif()

if(WINDOWS)

set(COCOS_AUDIO_PLATFORM_HEADER
audio/win32/AudioDecoderManager.h
audio/win32/AudioDecoder.h
${COCOS_AUDIO_PLATFORM_HEADER}
audio/win32/MciPlayer.h
audio/win32/AudioPlayer.h
audio/win32/AudioDecoderOgg.h
audio/win32/AudioMacros.h
audio/win32/AudioEngine-win32.h
audio/win32/AudioDecoderMp3.h
audio/win32/AudioCache.h
)

set(COCOS_AUDIO_PLATFORM_SRC
${COCOS_AUDIO_PLATFORM_SRC}
audio/win32/MciPlayer.cpp
audio/win32/MciPlayer.h
audio/win32/AudioEngine-win32.cpp
audio/win32/AudioCache.cpp
audio/win32/AudioPlayer.cpp
audio/win32/AudioDecoder.cpp
audio/win32/AudioDecoderManager.cpp
audio/win32/AudioDecoderMp3.cpp
audio/win32/AudioDecoderOgg.cpp
)

elseif(ANDROID)
Expand Down Expand Up @@ -105,16 +116,6 @@ elseif(ANDROID)
audio/android/tinysndfile.cpp
)

elseif(LINUX)
set(COCOS_AUDIO_PLATFORM_HEADER
audio/linux/AudioEngine-linux.h
)

set(COCOS_AUDIO_PLATFORM_SRC
audio/linux/AudioEngine-linux.h
audio/linux/AudioEngine-linux.cpp
)

elseif(APPLE)
# common
set(COCOS_AUDIO_PLATFORM_HEADER
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,15 @@

#include "platform/CCPlatformConfig.h"

#if CC_TARGET_PLATFORM == CC_PLATFORM_WIN32
#if CC_TARGET_PLATFORM == CC_PLATFORM_WIN32 || CC_TARGET_PLATFORM == CC_PLATFORM_LINUX

#include "audio/win32/AudioCache.h"
#include "audio/desktop/AudioCache.h"
#include <thread>
#include "base/CCDirector.h"
#include "base/CCScheduler.h"

#include "audio/win32/AudioDecoderManager.h"
#include "audio/win32/AudioDecoder.h"
#include "audio/desktop/AudioDecoderManager.h"
#include "audio/desktop/AudioDecoder.h"

#define VERY_VERY_VERBOSE_LOGGING
#ifdef VERY_VERY_VERBOSE_LOGGING
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@

#include "platform/CCPlatformConfig.h"

#if CC_TARGET_PLATFORM == CC_PLATFORM_WIN32
#if CC_TARGET_PLATFORM == CC_PLATFORM_WIN32 || CC_TARGET_PLATFORM == CC_PLATFORM_LINUX

#include <functional>
#include <memory>
Expand All @@ -40,7 +40,7 @@
#include <AL/al.h>
#endif
#include "platform/CCPlatformMacros.h"
#include "audio/win32/AudioMacros.h"
#include "audio/desktop/AudioMacros.h"

NS_CC_BEGIN

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
THE SOFTWARE.
****************************************************************************/

#include "audio/win32/AudioDecoder.h"
#include "audio/win32/AudioMacros.h"
#include "audio/desktop/AudioDecoder.h"
#include "audio/desktop/AudioMacros.h"
#include "platform/CCFileUtils.h"

#define LOG_TAG "AudioDecoder"
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ THE SOFTWARE.

#define LOG_TAG "AudioDecoderManager"

#include "audio/win32/AudioDecoderManager.h"
#include "audio/win32/AudioDecoderOgg.h"
#include "audio/win32/AudioDecoderMp3.h"
#include "audio/win32/AudioMacros.h"
#include "audio/desktop/AudioDecoderManager.h"
#include "audio/desktop/AudioDecoderOgg.h"
#include "audio/desktop/AudioDecoderMp3.h"
#include "audio/desktop/AudioMacros.h"
#include "platform/CCFileUtils.h"
#include "base/CCConsole.h"
#include "mpg123.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
THE SOFTWARE.
****************************************************************************/

#include "audio/win32/AudioDecoderMp3.h"
#include "audio/win32/AudioMacros.h"
#include "audio/desktop/AudioDecoderMp3.h"
#include "audio/desktop/AudioMacros.h"
#include "platform/CCFileUtils.h"

#include "base/CCConsole.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

#pragma once

#include "audio/win32/AudioDecoder.h"
#include "audio/desktop/AudioDecoder.h"

struct mpg123_handle_struct;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
THE SOFTWARE.
****************************************************************************/

#include "audio/win32/AudioDecoderOgg.h"
#include "audio/win32/AudioMacros.h"
#include "audio/desktop/AudioDecoderOgg.h"
#include "audio/desktop/AudioMacros.h"
#include "platform/CCFileUtils.h"

#define LOG_TAG "AudioDecoderOgg"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

#pragma once

#include "audio/win32/AudioDecoder.h"
#include "audio/desktop/AudioDecoder.h"

#include "vorbis/vorbisfile.h"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
****************************************************************************/
#include "audio/win32/AudioEngine-win32.h"
#include "audio/desktop/AudioEngine-desktop.h"

#ifdef OPENAL_PLAIN_INCLUDES
#include "alc.h"
Expand All @@ -35,18 +35,20 @@
#include "base/CCDirector.h"
#include "base/CCScheduler.h"
#include "platform/CCFileUtils.h"
#include "audio/win32/AudioDecoderManager.h"
#include "audio/desktop/AudioDecoderManager.h"

#if CC_TARGET_PLATFORM == CC_PLATFORM_WIN32
#include <windows.h>
#endif

#define LOG_TAG "AudioEngine-Win32"
#define LOG_TAG "AudioEngine-Desktop"

// log, CCLOG aren't threadsafe, since we uses sub threads for parsing pcm data, threadsafe log output
// is needed. Define the following macros (ALOGV, ALOGD, ALOGI, ALOGW, ALOGE) for threadsafe log output.

//FIXME: Move _winLog, winLog to a separated file
static void _winLog(const char *format, va_list args)
static void _desktopLog(const char *format, va_list args)
{
#if CC_TARGET_PLATFORM == CC_PLATFORM_WIN32
static const int MAX_LOG_LENGTH = 16 * 1024;
int bufferSize = MAX_LOG_LENGTH;
char* buf = nullptr;
Expand Down Expand Up @@ -90,13 +92,17 @@ static void _winLog(const char *format, va_list args)
} while (pos < len);

delete[] buf;

#elif CC_TARGET_PLATFORM == CC_PLATFORM_LINUX
// TODO: Implement log output
#endif
}

void audioLog(const char * format, ...)
{
va_list args;
va_start(args, format);
_winLog(format, args);
_desktopLog(format, args);
va_end(args);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@
#include <unordered_map>

#include "base/CCRef.h"
#include "audio/win32/AudioCache.h"
#include "audio/win32/AudioPlayer.h"
#include "audio/desktop/AudioCache.h"
#include "audio/desktop/AudioPlayer.h"

NS_CC_BEGIN

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
****************************************************************************/
#include "audio/win32/AudioPlayer.h"
#include "audio/win32/AudioCache.h"
#include "audio/desktop/AudioPlayer.h"
#include "audio/desktop/AudioCache.h"
#include "platform/CCFileUtils.h"
#include "audio/win32/AudioDecoderManager.h"
#include "audio/win32/Audiodecoder.h"
#include "audio/desktop/AudioDecoderManager.h"
#include "audio/desktop/AudioDecoder.h"

#define VERY_VERY_VERBOSE_LOGGING
#ifdef VERY_VERY_VERBOSE_LOGGING
Expand Down
File renamed without changes.
Loading