mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-17 03:25:14 -04:00
Windows: Better error message when no audio output device connected
This commit is contained in:
parent
1982a73be9
commit
f51d77e828
@ -332,6 +332,7 @@ cc_bool Audio_DescribeError(cc_result res, cc_string* dst) {
|
|||||||
#define CALLBACK_NULL 0x00000000l
|
#define CALLBACK_NULL 0x00000000l
|
||||||
typedef UINT MMRESULT;
|
typedef UINT MMRESULT;
|
||||||
#define WINMMAPI DECLSPEC_IMPORT
|
#define WINMMAPI DECLSPEC_IMPORT
|
||||||
|
#define MMSYSERR_BADDEVICEID 2
|
||||||
/* === BEGIN mmeapi.h === */
|
/* === BEGIN mmeapi.h === */
|
||||||
typedef struct WAVEHDR_ {
|
typedef struct WAVEHDR_ {
|
||||||
LPSTR lpData;
|
LPSTR lpData;
|
||||||
@ -367,6 +368,7 @@ WINMMAPI MMRESULT WINAPI waveOutUnprepareHeader(HWAVEOUT hwo, WAVEHDR* hdr, UINT
|
|||||||
WINMMAPI MMRESULT WINAPI waveOutWrite(HWAVEOUT hwo, WAVEHDR* hdr, UINT hdrSize);
|
WINMMAPI MMRESULT WINAPI waveOutWrite(HWAVEOUT hwo, WAVEHDR* hdr, UINT hdrSize);
|
||||||
WINMMAPI MMRESULT WINAPI waveOutReset(HWAVEOUT hwo);
|
WINMMAPI MMRESULT WINAPI waveOutReset(HWAVEOUT hwo);
|
||||||
WINMMAPI MMRESULT WINAPI waveOutGetErrorTextA(MMRESULT err, LPSTR text, UINT textLen);
|
WINMMAPI MMRESULT WINAPI waveOutGetErrorTextA(MMRESULT err, LPSTR text, UINT textLen);
|
||||||
|
WINMMAPI UINT WINAPI waveOutGetNumDevs(void);
|
||||||
/* === END mmeapi.h === */
|
/* === END mmeapi.h === */
|
||||||
|
|
||||||
struct AudioContext {
|
struct AudioContext {
|
||||||
@ -429,7 +431,12 @@ cc_result Audio_SetFormat(struct AudioContext* ctx, int channels, int sampleRate
|
|||||||
fmt.nBlockAlign = sampleSize;
|
fmt.nBlockAlign = sampleSize;
|
||||||
fmt.wBitsPerSample = 16;
|
fmt.wBitsPerSample = 16;
|
||||||
fmt.cbSize = 0;
|
fmt.cbSize = 0;
|
||||||
return waveOutOpen(&ctx->handle, WAVE_MAPPER, &fmt, 0, 0, CALLBACK_NULL);
|
|
||||||
|
res = waveOutOpen(&ctx->handle, WAVE_MAPPER, &fmt, 0, 0, CALLBACK_NULL);
|
||||||
|
/* Better error message for this particular case */
|
||||||
|
if (res == MMSYSERR_BADDEVICEID && waveOutGetNumDevs() == 0)
|
||||||
|
return ERR_NO_AUDIO_OUTPUT;
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
cc_result Audio_QueueData(struct AudioContext* ctx, void* data, cc_uint32 dataSize) {
|
cc_result Audio_QueueData(struct AudioContext* ctx, void* data, cc_uint32 dataSize) {
|
||||||
|
@ -54,6 +54,6 @@ enum ERRORS_ALL {
|
|||||||
INF_ERR_BLOCKTYPE, INF_ERR_LEN_VERIFY, INF_ERR_REPEAT_BEG, INF_ERR_REPEAT_END,
|
INF_ERR_BLOCKTYPE, INF_ERR_LEN_VERIFY, INF_ERR_REPEAT_BEG, INF_ERR_REPEAT_END,
|
||||||
INF_ERR_INVALID_CODE, INF_ERR_NUM_CODES,
|
INF_ERR_INVALID_CODE, INF_ERR_NUM_CODES,
|
||||||
/* Misc other errors */
|
/* Misc other errors */
|
||||||
ERR_DOWNLOAD_INVALID
|
ERR_DOWNLOAD_INVALID, ERR_NO_AUDIO_OUTPUT
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
@ -82,6 +82,7 @@ static const char* GetCCErrorDesc(cc_result res) {
|
|||||||
case CW_ERR_STRING_LEN: return "NBT string too long";
|
case CW_ERR_STRING_LEN: return "NBT string too long";
|
||||||
|
|
||||||
case ERR_DOWNLOAD_INVALID: return "Website denied download or doesn't exist";
|
case ERR_DOWNLOAD_INVALID: return "Website denied download or doesn't exist";
|
||||||
|
case ERR_NO_AUDIO_OUTPUT: return "No audio output devices plugged in";
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user