mirror of
https://github.com/dgis/emu48android
synced 2025-01-17 18:11:37 +01:00
Improve the traces in the log.
This commit is contained in:
parent
fc0ebbd7c0
commit
54e366cf64
5 changed files with 74 additions and 13 deletions
|
@ -6,6 +6,14 @@
|
||||||
cmake_minimum_required(VERSION 3.4.1)
|
cmake_minimum_required(VERSION 3.4.1)
|
||||||
|
|
||||||
#add_compile_options(-D DEBUG_DISPLAY)
|
#add_compile_options(-D DEBUG_DISPLAY)
|
||||||
|
#add_compile_options(-D DEBUG_SOUND)
|
||||||
|
#add_compile_options(-D DEBUG_DEBUGGER)
|
||||||
|
#add_compile_options(-D DEBUG_FLASH)
|
||||||
|
#add_compile_options(-D DEBUG_IO)
|
||||||
|
#add_compile_options(-D DEBUG_SERIAL)
|
||||||
|
#add_compile_options(-D DEBUG_ANDROID_WAVE_OUT)
|
||||||
|
#add_compile_options(-D DEBUG_ANDROID_TIMER)
|
||||||
|
#add_compile_options(-D DEBUG_ANDROID_PAINT)
|
||||||
|
|
||||||
include_directories(src/main/cpp/win32)
|
include_directories(src/main/cpp/win32)
|
||||||
|
|
||||||
|
|
|
@ -90,6 +90,8 @@ static LRESULT OnPaint(HWND hWindow)
|
||||||
PAINTSTRUCT Paint;
|
PAINTSTRUCT Paint;
|
||||||
HDC hPaintDC;
|
HDC hPaintDC;
|
||||||
|
|
||||||
|
PAINT_LOGD("Emu48-PAINT OnPaint()");
|
||||||
|
|
||||||
//UpdateWindowBars(); // update visibility of title and menu bar
|
//UpdateWindowBars(); // update visibility of title and menu bar
|
||||||
|
|
||||||
hPaintDC = BeginPaint(hWindow, &Paint);
|
hPaintDC = BeginPaint(hWindow, &Paint);
|
||||||
|
@ -106,6 +108,7 @@ static LRESULT OnPaint(HWND hWindow)
|
||||||
UINT nLines = MAINSCREENHEIGHT;
|
UINT nLines = MAINSCREENHEIGHT;
|
||||||
|
|
||||||
// redraw background bitmap
|
// redraw background bitmap
|
||||||
|
PAINT_LOGD("Emu48-PAINT OnPaint() BitBlt()");
|
||||||
BitBlt(hPaintDC, Paint.rcPaint.left, Paint.rcPaint.top,
|
BitBlt(hPaintDC, Paint.rcPaint.left, Paint.rcPaint.top,
|
||||||
Paint.rcPaint.right-Paint.rcPaint.left, Paint.rcPaint.bottom-Paint.rcPaint.top,
|
Paint.rcPaint.right-Paint.rcPaint.left, Paint.rcPaint.bottom-Paint.rcPaint.top,
|
||||||
hMainDC, rcMainPaint.left, rcMainPaint.top, SRCCOPY);
|
hMainDC, rcMainPaint.left, rcMainPaint.top, SRCCOPY);
|
||||||
|
|
|
@ -803,9 +803,8 @@ BOOL GetSystemPowerStatus(LPSYSTEM_POWER_STATUS status)
|
||||||
|
|
||||||
// Wave API
|
// Wave API
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void onPlayerDone() {
|
void onPlayerDone() {
|
||||||
|
WAVE_OUT_LOGD("waveOut onPlayerDone()");
|
||||||
//PostThreadMessage(0, MM_WOM_DONE, hwo, hwo->pWaveHeaderNext);
|
//PostThreadMessage(0, MM_WOM_DONE, hwo, hwo->pWaveHeaderNext);
|
||||||
// Artificially replace the post message MM_WOM_DONE
|
// Artificially replace the post message MM_WOM_DONE
|
||||||
bSoundSlow = FALSE; // no sound slow down
|
bSoundSlow = FALSE; // no sound slow down
|
||||||
|
@ -814,6 +813,7 @@ void onPlayerDone() {
|
||||||
|
|
||||||
// this callback handler is called every time a buffer finishes playing
|
// this callback handler is called every time a buffer finishes playing
|
||||||
void bqPlayerCallback(SLAndroidSimpleBufferQueueItf bq, void *context) {
|
void bqPlayerCallback(SLAndroidSimpleBufferQueueItf bq, void *context) {
|
||||||
|
WAVE_OUT_LOGD("waveOut bqPlayerCallback()");
|
||||||
HWAVEOUT hwo = context;
|
HWAVEOUT hwo = context;
|
||||||
if (hwo->pWaveHeaderNext != NULL) {
|
if (hwo->pWaveHeaderNext != NULL) {
|
||||||
LPWAVEHDR pWaveHeaderNext = hwo->pWaveHeaderNext->lpNext;
|
LPWAVEHDR pWaveHeaderNext = hwo->pWaveHeaderNext->lpNext;
|
||||||
|
@ -821,23 +821,30 @@ void bqPlayerCallback(SLAndroidSimpleBufferQueueItf bq, void *context) {
|
||||||
free(hwo->pWaveHeaderNext);
|
free(hwo->pWaveHeaderNext);
|
||||||
hwo->pWaveHeaderNext = pWaveHeaderNext;
|
hwo->pWaveHeaderNext = pWaveHeaderNext;
|
||||||
if(pWaveHeaderNext != NULL) {
|
if(pWaveHeaderNext != NULL) {
|
||||||
|
WAVE_OUT_LOGD("waveOut bqPlayerCallback() bqPlayerBufferQueue->Enqueue");
|
||||||
SLresult result = (*hwo->bqPlayerBufferQueue)->Enqueue(hwo->bqPlayerBufferQueue, pWaveHeaderNext->lpData, pWaveHeaderNext->dwBufferLength);
|
SLresult result = (*hwo->bqPlayerBufferQueue)->Enqueue(hwo->bqPlayerBufferQueue, pWaveHeaderNext->lpData, pWaveHeaderNext->dwBufferLength);
|
||||||
if (SL_RESULT_SUCCESS != result) {
|
if (SL_RESULT_SUCCESS != result) {
|
||||||
|
WAVE_OUT_LOGD("waveOut bqPlayerCallback() Enqueue Error %d", result);
|
||||||
onPlayerDone();
|
onPlayerDone();
|
||||||
// Error
|
// Error
|
||||||
//pthread_mutex_unlock(&hwo->audioEngineLock);
|
//pthread_mutex_unlock(&hwo->audioEngineLock);
|
||||||
// return;
|
// return;
|
||||||
}
|
}
|
||||||
// return;
|
// return;
|
||||||
} else
|
} else {
|
||||||
|
WAVE_OUT_LOGD("waveOut bqPlayerCallback() Nothing next, so, this is the end");
|
||||||
onPlayerDone();
|
onPlayerDone();
|
||||||
} else
|
}
|
||||||
|
} else {
|
||||||
|
WAVE_OUT_LOGD("waveOut bqPlayerCallback() Nothing to play? So, this is the end");
|
||||||
onPlayerDone();
|
onPlayerDone();
|
||||||
|
}
|
||||||
// pthread_mutex_unlock(&hwo->audioEngineLock);
|
// pthread_mutex_unlock(&hwo->audioEngineLock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
MMRESULT waveOutOpen(LPHWAVEOUT phwo, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen) {
|
MMRESULT waveOutOpen(LPHWAVEOUT phwo, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen) {
|
||||||
|
WAVE_OUT_LOGD("waveOutOpen()");
|
||||||
|
|
||||||
HWAVEOUT handle = (HWAVEOUT)malloc(sizeof(struct _HWAVEOUT));
|
HWAVEOUT handle = (HWAVEOUT)malloc(sizeof(struct _HWAVEOUT));
|
||||||
memset(handle, 0, sizeof(struct _HWAVEOUT));
|
memset(handle, 0, sizeof(struct _HWAVEOUT));
|
||||||
|
@ -850,6 +857,7 @@ MMRESULT waveOutOpen(LPHWAVEOUT phwo, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWOR
|
||||||
result = slCreateEngine(&handle->engineObject, 0, NULL, 0, NULL, NULL);
|
result = slCreateEngine(&handle->engineObject, 0, NULL, 0, NULL, NULL);
|
||||||
//_ASSERT(SL_RESULT_SUCCESS == result);
|
//_ASSERT(SL_RESULT_SUCCESS == result);
|
||||||
if(result != SL_RESULT_SUCCESS) {
|
if(result != SL_RESULT_SUCCESS) {
|
||||||
|
WAVE_OUT_LOGD("waveOutOpen() slCreateEngine error: %d", result);
|
||||||
waveOutClose(handle);
|
waveOutClose(handle);
|
||||||
return MMSYSERR_ERROR;
|
return MMSYSERR_ERROR;
|
||||||
}
|
}
|
||||||
|
@ -857,6 +865,7 @@ MMRESULT waveOutOpen(LPHWAVEOUT phwo, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWOR
|
||||||
// realize the engine
|
// realize the engine
|
||||||
result = (*handle->engineObject)->Realize(handle->engineObject, SL_BOOLEAN_FALSE);
|
result = (*handle->engineObject)->Realize(handle->engineObject, SL_BOOLEAN_FALSE);
|
||||||
if(result != SL_RESULT_SUCCESS) {
|
if(result != SL_RESULT_SUCCESS) {
|
||||||
|
WAVE_OUT_LOGD("waveOutOpen() engineObject->Realize error: %d", result);
|
||||||
waveOutClose(handle);
|
waveOutClose(handle);
|
||||||
return MMSYSERR_ERROR;
|
return MMSYSERR_ERROR;
|
||||||
}
|
}
|
||||||
|
@ -864,6 +873,7 @@ MMRESULT waveOutOpen(LPHWAVEOUT phwo, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWOR
|
||||||
// get the engine interface, which is needed in order to create other objects
|
// get the engine interface, which is needed in order to create other objects
|
||||||
result = (*handle->engineObject)->GetInterface(handle->engineObject, SL_IID_ENGINE, &handle->engineEngine);
|
result = (*handle->engineObject)->GetInterface(handle->engineObject, SL_IID_ENGINE, &handle->engineEngine);
|
||||||
if(result != SL_RESULT_SUCCESS) {
|
if(result != SL_RESULT_SUCCESS) {
|
||||||
|
WAVE_OUT_LOGD("waveOutOpen() engineObject->GetInterface error: %d", result);
|
||||||
waveOutClose(handle);
|
waveOutClose(handle);
|
||||||
return MMSYSERR_ERROR;
|
return MMSYSERR_ERROR;
|
||||||
}
|
}
|
||||||
|
@ -873,12 +883,14 @@ MMRESULT waveOutOpen(LPHWAVEOUT phwo, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWOR
|
||||||
const SLboolean req[1] = { SL_BOOLEAN_FALSE };
|
const SLboolean req[1] = { SL_BOOLEAN_FALSE };
|
||||||
result = (*handle->engineEngine)->CreateOutputMix(handle->engineEngine, &handle->outputMixObject, 1, ids, req);
|
result = (*handle->engineEngine)->CreateOutputMix(handle->engineEngine, &handle->outputMixObject, 1, ids, req);
|
||||||
if(result != SL_RESULT_SUCCESS) {
|
if(result != SL_RESULT_SUCCESS) {
|
||||||
|
WAVE_OUT_LOGD("waveOutOpen() engineObject->CreateOutputMix error: %d", result);
|
||||||
waveOutClose(handle);
|
waveOutClose(handle);
|
||||||
return MMSYSERR_ERROR;
|
return MMSYSERR_ERROR;
|
||||||
}
|
}
|
||||||
// realize the output mix
|
// realize the output mix
|
||||||
result = (*handle->outputMixObject)->Realize(handle->outputMixObject, SL_BOOLEAN_FALSE);
|
result = (*handle->outputMixObject)->Realize(handle->outputMixObject, SL_BOOLEAN_FALSE);
|
||||||
if(result != SL_RESULT_SUCCESS) {
|
if(result != SL_RESULT_SUCCESS) {
|
||||||
|
WAVE_OUT_LOGD("waveOutOpen() outputMixObject->Realize error: %d", result);
|
||||||
waveOutClose(handle);
|
waveOutClose(handle);
|
||||||
return MMSYSERR_ERROR;
|
return MMSYSERR_ERROR;
|
||||||
}
|
}
|
||||||
|
@ -940,6 +952,7 @@ MMRESULT waveOutOpen(LPHWAVEOUT phwo, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWOR
|
||||||
|
|
||||||
result = (*handle->engineEngine)->CreateAudioPlayer(handle->engineEngine, &handle->bqPlayerObject, &audioSrc, &audioSnk, 2, ids2, req2);
|
result = (*handle->engineEngine)->CreateAudioPlayer(handle->engineEngine, &handle->bqPlayerObject, &audioSrc, &audioSnk, 2, ids2, req2);
|
||||||
if(result != SL_RESULT_SUCCESS) {
|
if(result != SL_RESULT_SUCCESS) {
|
||||||
|
WAVE_OUT_LOGD("waveOutOpen() engineEngine->CreateAudioPlayer error: %d", result);
|
||||||
waveOutClose(handle);
|
waveOutClose(handle);
|
||||||
return MMSYSERR_ERROR;
|
return MMSYSERR_ERROR;
|
||||||
}
|
}
|
||||||
|
@ -947,6 +960,7 @@ MMRESULT waveOutOpen(LPHWAVEOUT phwo, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWOR
|
||||||
// realize the player
|
// realize the player
|
||||||
result = (*handle->bqPlayerObject)->Realize(handle->bqPlayerObject, SL_BOOLEAN_FALSE);
|
result = (*handle->bqPlayerObject)->Realize(handle->bqPlayerObject, SL_BOOLEAN_FALSE);
|
||||||
if(result != SL_RESULT_SUCCESS) {
|
if(result != SL_RESULT_SUCCESS) {
|
||||||
|
WAVE_OUT_LOGD("waveOutOpen() bqPlayerObject->Realize error: %d", result);
|
||||||
waveOutClose(handle);
|
waveOutClose(handle);
|
||||||
return MMSYSERR_ERROR;
|
return MMSYSERR_ERROR;
|
||||||
}
|
}
|
||||||
|
@ -954,6 +968,7 @@ MMRESULT waveOutOpen(LPHWAVEOUT phwo, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWOR
|
||||||
// get the play interface
|
// get the play interface
|
||||||
result = (*handle->bqPlayerObject)->GetInterface(handle->bqPlayerObject, SL_IID_PLAY, &handle->bqPlayerPlay);
|
result = (*handle->bqPlayerObject)->GetInterface(handle->bqPlayerObject, SL_IID_PLAY, &handle->bqPlayerPlay);
|
||||||
if(result != SL_RESULT_SUCCESS) {
|
if(result != SL_RESULT_SUCCESS) {
|
||||||
|
WAVE_OUT_LOGD("waveOutOpen() bqPlayerObject->GetInterface SL_IID_PLAY error: %d", result);
|
||||||
waveOutClose(handle);
|
waveOutClose(handle);
|
||||||
return MMSYSERR_ERROR;
|
return MMSYSERR_ERROR;
|
||||||
}
|
}
|
||||||
|
@ -961,6 +976,7 @@ MMRESULT waveOutOpen(LPHWAVEOUT phwo, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWOR
|
||||||
// get the buffer queue interface
|
// get the buffer queue interface
|
||||||
result = (*handle->bqPlayerObject)->GetInterface(handle->bqPlayerObject, SL_IID_BUFFERQUEUE, &handle->bqPlayerBufferQueue);
|
result = (*handle->bqPlayerObject)->GetInterface(handle->bqPlayerObject, SL_IID_BUFFERQUEUE, &handle->bqPlayerBufferQueue);
|
||||||
if(result != SL_RESULT_SUCCESS) {
|
if(result != SL_RESULT_SUCCESS) {
|
||||||
|
WAVE_OUT_LOGD("waveOutOpen() bqPlayerObject->GetInterface SL_IID_BUFFERQUEUE error: %d", result);
|
||||||
waveOutClose(handle);
|
waveOutClose(handle);
|
||||||
return MMSYSERR_ERROR;
|
return MMSYSERR_ERROR;
|
||||||
}
|
}
|
||||||
|
@ -968,6 +984,7 @@ MMRESULT waveOutOpen(LPHWAVEOUT phwo, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWOR
|
||||||
// register callback on the buffer queue
|
// register callback on the buffer queue
|
||||||
result = (*handle->bqPlayerBufferQueue)->RegisterCallback(handle->bqPlayerBufferQueue, bqPlayerCallback, handle);
|
result = (*handle->bqPlayerBufferQueue)->RegisterCallback(handle->bqPlayerBufferQueue, bqPlayerCallback, handle);
|
||||||
if(result != SL_RESULT_SUCCESS) {
|
if(result != SL_RESULT_SUCCESS) {
|
||||||
|
WAVE_OUT_LOGD("waveOutOpen() bqPlayerBufferQueue->RegisterCallback error: %d", result);
|
||||||
waveOutClose(handle);
|
waveOutClose(handle);
|
||||||
return MMSYSERR_ERROR;
|
return MMSYSERR_ERROR;
|
||||||
}
|
}
|
||||||
|
@ -975,6 +992,7 @@ MMRESULT waveOutOpen(LPHWAVEOUT phwo, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWOR
|
||||||
// get the volume interface
|
// get the volume interface
|
||||||
result = (*handle->bqPlayerObject)->GetInterface(handle->bqPlayerObject, SL_IID_VOLUME, &handle->bqPlayerVolume);
|
result = (*handle->bqPlayerObject)->GetInterface(handle->bqPlayerObject, SL_IID_VOLUME, &handle->bqPlayerVolume);
|
||||||
if(result != SL_RESULT_SUCCESS) {
|
if(result != SL_RESULT_SUCCESS) {
|
||||||
|
WAVE_OUT_LOGD("waveOutOpen() bqPlayerObject->GetInterface SL_IID_VOLUME error: %d", result);
|
||||||
waveOutClose(handle);
|
waveOutClose(handle);
|
||||||
return MMSYSERR_ERROR;
|
return MMSYSERR_ERROR;
|
||||||
}
|
}
|
||||||
|
@ -982,6 +1000,7 @@ MMRESULT waveOutOpen(LPHWAVEOUT phwo, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWOR
|
||||||
// set the player's state to playing
|
// set the player's state to playing
|
||||||
result = (*handle->bqPlayerPlay)->SetPlayState(handle->bqPlayerPlay, SL_PLAYSTATE_PLAYING);
|
result = (*handle->bqPlayerPlay)->SetPlayState(handle->bqPlayerPlay, SL_PLAYSTATE_PLAYING);
|
||||||
if(result != SL_RESULT_SUCCESS) {
|
if(result != SL_RESULT_SUCCESS) {
|
||||||
|
WAVE_OUT_LOGD("waveOutOpen() bqPlayerObject->SetPlayState error: %d", result);
|
||||||
waveOutClose(handle);
|
waveOutClose(handle);
|
||||||
return MMSYSERR_ERROR;
|
return MMSYSERR_ERROR;
|
||||||
}
|
}
|
||||||
|
@ -992,11 +1011,13 @@ MMRESULT waveOutOpen(LPHWAVEOUT phwo, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWOR
|
||||||
}
|
}
|
||||||
|
|
||||||
MMRESULT waveOutReset(HWAVEOUT hwo) {
|
MMRESULT waveOutReset(HWAVEOUT hwo) {
|
||||||
|
WAVE_OUT_LOGD("waveOutReset()");
|
||||||
//TODO
|
//TODO
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
MMRESULT waveOutClose(HWAVEOUT handle) {
|
MMRESULT waveOutClose(HWAVEOUT handle) {
|
||||||
|
WAVE_OUT_LOGD("waveOutClose()");
|
||||||
|
|
||||||
// destroy buffer queue audio player object, and invalidate all associated interfaces
|
// destroy buffer queue audio player object, and invalidate all associated interfaces
|
||||||
if (handle->bqPlayerObject != NULL) {
|
if (handle->bqPlayerObject != NULL) {
|
||||||
|
@ -1021,7 +1042,7 @@ MMRESULT waveOutClose(HWAVEOUT handle) {
|
||||||
}
|
}
|
||||||
|
|
||||||
//pthread_mutex_destroy(&handle->audioEngineLock);
|
//pthread_mutex_destroy(&handle->audioEngineLock);
|
||||||
|
onPlayerDone();
|
||||||
|
|
||||||
memset(handle, 0, sizeof(struct _HWAVEOUT));
|
memset(handle, 0, sizeof(struct _HWAVEOUT));
|
||||||
free(handle);
|
free(handle);
|
||||||
|
@ -1029,17 +1050,19 @@ MMRESULT waveOutClose(HWAVEOUT handle) {
|
||||||
}
|
}
|
||||||
|
|
||||||
MMRESULT waveOutPrepareHeader(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh) {
|
MMRESULT waveOutPrepareHeader(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh) {
|
||||||
|
WAVE_OUT_LOGD("waveOutPrepareHeader()");
|
||||||
//TODO
|
//TODO
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
MMRESULT waveOutUnprepareHeader(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh) {
|
MMRESULT waveOutUnprepareHeader(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh) {
|
||||||
|
WAVE_OUT_LOGD("waveOutUnprepareHeader()");
|
||||||
//TODO
|
//TODO
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
MMRESULT waveOutWrite(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh) {
|
MMRESULT waveOutWrite(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh) {
|
||||||
|
WAVE_OUT_LOGD("waveOutWrite()");
|
||||||
// if (pthread_mutex_trylock(&hwo->audioEngineLock)) {
|
// if (pthread_mutex_trylock(&hwo->audioEngineLock)) {
|
||||||
// // If we could not acquire audio engine lock, reject this request and client should re-try
|
// // If we could not acquire audio engine lock, reject this request and client should re-try
|
||||||
// return MMSYSERR_ERROR;
|
// return MMSYSERR_ERROR;
|
||||||
|
@ -1047,8 +1070,11 @@ MMRESULT waveOutWrite(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh) {
|
||||||
pwh->lpNext = NULL;
|
pwh->lpNext = NULL;
|
||||||
if(hwo->pWaveHeaderNext == NULL) {
|
if(hwo->pWaveHeaderNext == NULL) {
|
||||||
hwo->pWaveHeaderNext = pwh;
|
hwo->pWaveHeaderNext = pwh;
|
||||||
|
WAVE_OUT_LOGD("waveOutWrite() bqPlayerBufferQueue->Enqueue() play right now");
|
||||||
SLresult result = (*hwo->bqPlayerBufferQueue)->Enqueue(hwo->bqPlayerBufferQueue, pwh->lpData, pwh->dwBufferLength);
|
SLresult result = (*hwo->bqPlayerBufferQueue)->Enqueue(hwo->bqPlayerBufferQueue, pwh->lpData, pwh->dwBufferLength);
|
||||||
if (SL_RESULT_SUCCESS != result) {
|
if (SL_RESULT_SUCCESS != result) {
|
||||||
|
WAVE_OUT_LOGD("waveOutWrite() bqPlayerBufferQueue->Enqueue() error: %d", result);
|
||||||
|
onPlayerDone();
|
||||||
// SL_RESULT_BUFFER_INSUFFICIENT?
|
// SL_RESULT_BUFFER_INSUFFICIENT?
|
||||||
//pthread_mutex_unlock(&hwo->audioEngineLock);
|
//pthread_mutex_unlock(&hwo->audioEngineLock);
|
||||||
return MMSYSERR_ERROR;
|
return MMSYSERR_ERROR;
|
||||||
|
@ -1057,6 +1083,7 @@ MMRESULT waveOutWrite(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh) {
|
||||||
LPWAVEHDR pWaveHeaderNext = hwo->pWaveHeaderNext;
|
LPWAVEHDR pWaveHeaderNext = hwo->pWaveHeaderNext;
|
||||||
while (pWaveHeaderNext->lpNext)
|
while (pWaveHeaderNext->lpNext)
|
||||||
pWaveHeaderNext = pWaveHeaderNext->lpNext;
|
pWaveHeaderNext = pWaveHeaderNext->lpNext;
|
||||||
|
WAVE_OUT_LOGD("waveOutWrite() play when finishing the current one");
|
||||||
pWaveHeaderNext->lpNext = pwh;
|
pWaveHeaderNext->lpNext = pwh;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1064,6 +1091,7 @@ MMRESULT waveOutWrite(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh) {
|
||||||
}
|
}
|
||||||
|
|
||||||
MMRESULT waveOutGetDevCaps(UINT_PTR uDeviceID, LPWAVEOUTCAPS pwoc, UINT cbwoc) {
|
MMRESULT waveOutGetDevCaps(UINT_PTR uDeviceID, LPWAVEOUTCAPS pwoc, UINT cbwoc) {
|
||||||
|
WAVE_OUT_LOGD("waveOutGetDevCaps()");
|
||||||
if(pwoc) {
|
if(pwoc) {
|
||||||
pwoc->dwFormats = WAVE_FORMAT_4M08;
|
pwoc->dwFormats = WAVE_FORMAT_4M08;
|
||||||
}
|
}
|
||||||
|
@ -1071,6 +1099,7 @@ MMRESULT waveOutGetDevCaps(UINT_PTR uDeviceID, LPWAVEOUTCAPS pwoc, UINT cbwoc) {
|
||||||
}
|
}
|
||||||
|
|
||||||
MMRESULT waveOutGetID(HWAVEOUT hwo, LPUINT puDeviceID) {
|
MMRESULT waveOutGetID(HWAVEOUT hwo, LPUINT puDeviceID) {
|
||||||
|
WAVE_OUT_LOGD("waveOutGetID()");
|
||||||
//TODO
|
//TODO
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1396,6 +1425,9 @@ int SetStretchBltMode(HDC hdc, int mode) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
BOOL StretchBlt(HDC hdcDest, int xDest, int yDest, int wDest, int hDest, HDC hdcSrc, int xSrc, int ySrc, int wSrc, int hSrc, DWORD rop) {
|
BOOL StretchBlt(HDC hdcDest, int xDest, int yDest, int wDest, int hDest, HDC hdcSrc, int xSrc, int ySrc, int wSrc, int hSrc, DWORD rop) {
|
||||||
|
// PAINT_LOGD("Emu48-PAINT StretchBlt(hdcDest: 0x%08x, xDest: %d, yDest: %d, wDest: %d, hDest: %d, hdcSrc: 0x%08x, xSrc: %d, ySrc: %d, wSrc: %d, hSrc: %d, rop: 0x%08x)",
|
||||||
|
// hdcDest, xDest, yDest, wDest, hDest, hdcSrc, xSrc, ySrc, wSrc, hSrc, rop);
|
||||||
|
|
||||||
if(hdcDest && hdcSrc
|
if(hdcDest && hdcSrc
|
||||||
&& (hdcDest->selectedBitmap || hdcDest->hdcCompatible == NULL)
|
&& (hdcDest->selectedBitmap || hdcDest->hdcCompatible == NULL)
|
||||||
&& hdcSrc->selectedBitmap && hDest && hSrc) {
|
&& hdcSrc->selectedBitmap && hDest && hSrc) {
|
||||||
|
@ -1552,6 +1584,8 @@ UINT SetDIBColorTable(HDC hdc, UINT iStart, UINT cEntries, CONST RGBQUAD *prgbq
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
HBITMAP CreateDIBitmap( HDC hdc, CONST BITMAPINFOHEADER *pbmih, DWORD flInit, CONST VOID *pjBits, CONST BITMAPINFO *pbmi, UINT iUsage) {
|
HBITMAP CreateDIBitmap( HDC hdc, CONST BITMAPINFOHEADER *pbmih, DWORD flInit, CONST VOID *pjBits, CONST BITMAPINFO *pbmi, UINT iUsage) {
|
||||||
|
PAINT_LOGD("Emu48-PAINT CreateDIBitmap()");
|
||||||
|
|
||||||
HGDIOBJ newHBITMAP = (HGDIOBJ)malloc(sizeof(_HGDIOBJ));
|
HGDIOBJ newHBITMAP = (HGDIOBJ)malloc(sizeof(_HGDIOBJ));
|
||||||
memset(newHBITMAP, 0, sizeof(_HGDIOBJ));
|
memset(newHBITMAP, 0, sizeof(_HGDIOBJ));
|
||||||
newHBITMAP->handleType = HGDIOBJ_TYPE_BITMAP;
|
newHBITMAP->handleType = HGDIOBJ_TYPE_BITMAP;
|
||||||
|
@ -1571,6 +1605,8 @@ HBITMAP CreateDIBitmap( HDC hdc, CONST BITMAPINFOHEADER *pbmih, DWORD flInit, CO
|
||||||
return newHBITMAP;
|
return newHBITMAP;
|
||||||
}
|
}
|
||||||
HBITMAP CreateDIBSection(HDC hdc, CONST BITMAPINFO *pbmi, UINT usage, VOID **ppvBits, HANDLE hSection, DWORD offset) {
|
HBITMAP CreateDIBSection(HDC hdc, CONST BITMAPINFO *pbmi, UINT usage, VOID **ppvBits, HANDLE hSection, DWORD offset) {
|
||||||
|
PAINT_LOGD("Emu48-PAINT CreateDIBitmap()");
|
||||||
|
|
||||||
HGDIOBJ newHBITMAP = (HGDIOBJ)malloc(sizeof(_HGDIOBJ));
|
HGDIOBJ newHBITMAP = (HGDIOBJ)malloc(sizeof(_HGDIOBJ));
|
||||||
memset(newHBITMAP, 0, sizeof(_HGDIOBJ));
|
memset(newHBITMAP, 0, sizeof(_HGDIOBJ));
|
||||||
newHBITMAP->handleType = HGDIOBJ_TYPE_BITMAP;
|
newHBITMAP->handleType = HGDIOBJ_TYPE_BITMAP;
|
||||||
|
@ -1592,6 +1628,8 @@ HBITMAP CreateDIBSection(HDC hdc, CONST BITMAPINFO *pbmi, UINT usage, VOID **ppv
|
||||||
return newHBITMAP;
|
return newHBITMAP;
|
||||||
}
|
}
|
||||||
HBITMAP CreateCompatibleBitmap( HDC hdc, int cx, int cy) {
|
HBITMAP CreateCompatibleBitmap( HDC hdc, int cx, int cy) {
|
||||||
|
PAINT_LOGD("Emu48-PAINT CreateDIBitmap()");
|
||||||
|
|
||||||
HGDIOBJ newHBITMAP = (HGDIOBJ)malloc(sizeof(_HGDIOBJ));
|
HGDIOBJ newHBITMAP = (HGDIOBJ)malloc(sizeof(_HGDIOBJ));
|
||||||
memset(newHBITMAP, 0, sizeof(_HGDIOBJ));
|
memset(newHBITMAP, 0, sizeof(_HGDIOBJ));
|
||||||
newHBITMAP->handleType = HGDIOBJ_TYPE_BITMAP;
|
newHBITMAP->handleType = HGDIOBJ_TYPE_BITMAP;
|
||||||
|
@ -1687,9 +1725,6 @@ HANDLE WINAPI GetClipboardData(UINT uFormat) {
|
||||||
return szText;
|
return szText;
|
||||||
}
|
}
|
||||||
|
|
||||||
//#define TIMER_LOGD LOGD
|
|
||||||
#define TIMER_LOGD
|
|
||||||
|
|
||||||
void deleteTimeEvent(UINT uTimerID) {
|
void deleteTimeEvent(UINT uTimerID) {
|
||||||
timer_delete(timerEvents[uTimerID - 1].timer);
|
timer_delete(timerEvents[uTimerID - 1].timer);
|
||||||
timerEvents[uTimerID - 1].valid = FALSE;
|
timerEvents[uTimerID - 1].valid = FALSE;
|
||||||
|
|
|
@ -13,8 +13,24 @@
|
||||||
#define LOGD(...) ((void)__android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__))
|
#define LOGD(...) ((void)__android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__))
|
||||||
#define LOGE(...) ((void)__android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__))
|
#define LOGE(...) ((void)__android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__))
|
||||||
|
|
||||||
//#define DEBUG_DISPLAY 1
|
|
||||||
|
|
||||||
|
#if defined DEBUG_ANDROID_TIMER
|
||||||
|
# define TIMER_LOGD LOGD
|
||||||
|
#else
|
||||||
|
# define TIMER_LOGD
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined DEBUG_ANDROID_WAVE_OUT
|
||||||
|
# define WAVE_OUT_LOGD LOGD
|
||||||
|
#else
|
||||||
|
# define WAVE_OUT_LOGD
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined DEBUG_ANDROID_PAINT
|
||||||
|
# define PAINT_LOGD LOGD
|
||||||
|
#else
|
||||||
|
# define PAINT_LOGD
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef __OBJC__
|
#ifndef __OBJC__
|
||||||
|
|
|
@ -238,15 +238,14 @@ public class MainScreenView extends SurfaceView {
|
||||||
int updateCallback(int type, int param1, int param2, String param3, String param4) {
|
int updateCallback(int type, int param1, int param2, String param3, String param4) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case CALLBACK_TYPE_INVALIDATE:
|
case CALLBACK_TYPE_INVALIDATE:
|
||||||
|
//Log.d(TAG, "Emu48-PAINT updateCallback() postInvalidate()");
|
||||||
postInvalidate();
|
postInvalidate();
|
||||||
break;
|
break;
|
||||||
case CALLBACK_TYPE_WINDOW_RESIZE:
|
case CALLBACK_TYPE_WINDOW_RESIZE:
|
||||||
// New Bitmap size
|
// New Bitmap size
|
||||||
if(bitmapMainScreen == null || bitmapMainScreen.getWidth() != param1 || bitmapMainScreen.getHeight() != param2) {
|
if(bitmapMainScreen == null || bitmapMainScreen.getWidth() != param1 || bitmapMainScreen.getHeight() != param2) {
|
||||||
|
//Log.d(TAG, "Emu48-PAINT updateCallback() Bitmap.createBitmap()");
|
||||||
Bitmap oldBitmapMainScreen = bitmapMainScreen;
|
Bitmap oldBitmapMainScreen = bitmapMainScreen;
|
||||||
|
|
||||||
//bitmapMainScreen.reconfigure(/* x */ Math.max(1, param1), /* y */ Math.max(1, param2), Bitmap.Config.ARGB_8888);
|
|
||||||
bitmapMainScreen = Bitmap.createBitmap(Math.max(1, param1), Math.max(1, param2), Bitmap.Config.ARGB_8888);
|
bitmapMainScreen = Bitmap.createBitmap(Math.max(1, param1), Math.max(1, param2), Bitmap.Config.ARGB_8888);
|
||||||
int globalColor = NativeLib.getGlobalColor();
|
int globalColor = NativeLib.getGlobalColor();
|
||||||
backgroundColor = Color.argb(255, (globalColor & 0x00FF0000) >> 16, (globalColor & 0x0000FF00) >> 8, globalColor & 0x000000FF);
|
backgroundColor = Color.argb(255, (globalColor & 0x00FF0000) >> 16, (globalColor & 0x0000FF00) >> 8, globalColor & 0x000000FF);
|
||||||
|
|
Loading…
Reference in a new issue