mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-05 23:28:48 +00:00
Fix WAVEFORMATEX struct size (#5356)
* fix WAVEFORMATEX struct size * fix size test for WAVEFORMATEX * pack WAVEFORMATEXTENSIBLE
This commit is contained in:
@@ -589,7 +589,7 @@ WAVE_FORMAT_FLAC :: 0xF1AC /* flac.sourceforge.net */
|
|||||||
WAVE_FORMAT_EXTENSIBLE :: 0xFFFE /* Microsoft */
|
WAVE_FORMAT_EXTENSIBLE :: 0xFFFE /* Microsoft */
|
||||||
|
|
||||||
|
|
||||||
WAVEFORMATEX :: struct {
|
WAVEFORMATEX :: struct #packed {
|
||||||
wFormatTag: WORD,
|
wFormatTag: WORD,
|
||||||
nChannels: WORD,
|
nChannels: WORD,
|
||||||
nSamplesPerSec: DWORD,
|
nSamplesPerSec: DWORD,
|
||||||
@@ -603,7 +603,7 @@ LPCWAVEFORMATEX :: ^WAVEFORMATEX
|
|||||||
// New wave format development should be based on the WAVEFORMATEXTENSIBLE structure.
|
// New wave format development should be based on the WAVEFORMATEXTENSIBLE structure.
|
||||||
// WAVEFORMATEXTENSIBLE allows you to avoid having to register a new format tag with Microsoft.
|
// WAVEFORMATEXTENSIBLE allows you to avoid having to register a new format tag with Microsoft.
|
||||||
// Simply define a new GUID value for the WAVEFORMATEXTENSIBLE.SubFormat field and use WAVE_FORMAT_EXTENSIBLE in the WAVEFORMATEXTENSIBLE.Format.wFormatTag field.
|
// Simply define a new GUID value for the WAVEFORMATEXTENSIBLE.SubFormat field and use WAVE_FORMAT_EXTENSIBLE in the WAVEFORMATEXTENSIBLE.Format.wFormatTag field.
|
||||||
WAVEFORMATEXTENSIBLE :: struct {
|
WAVEFORMATEXTENSIBLE :: struct #packed {
|
||||||
using Format: WAVEFORMATEX,
|
using Format: WAVEFORMATEX,
|
||||||
Samples: struct #raw_union {
|
Samples: struct #raw_union {
|
||||||
wValidBitsPerSample: WORD, /* bits of precision */
|
wValidBitsPerSample: WORD, /* bits of precision */
|
||||||
|
|||||||
@@ -527,8 +527,10 @@ verify_winmm :: proc(t: ^testing.T) {
|
|||||||
// mmsyscom.h
|
// mmsyscom.h
|
||||||
expect_size(t, win32.MMVERSION, 4)
|
expect_size(t, win32.MMVERSION, 4)
|
||||||
expect_size(t, win32.MMTIME, 12)
|
expect_size(t, win32.MMTIME, 12)
|
||||||
|
// mmreg.h
|
||||||
|
expect_size(t, win32.WAVEFORMATEX, 18)
|
||||||
|
expect_size(t, win32.WAVEFORMATEXTENSIBLE, 40)
|
||||||
// mmeapi.h
|
// mmeapi.h
|
||||||
expect_size(t, win32.WAVEFORMATEX, 20)
|
|
||||||
expect_size(t, win32.WAVEHDR, 48)
|
expect_size(t, win32.WAVEHDR, 48)
|
||||||
expect_size(t, win32.WAVEINCAPSW, 80)
|
expect_size(t, win32.WAVEINCAPSW, 80)
|
||||||
expect_size(t, win32.WAVEOUTCAPSW, 84)
|
expect_size(t, win32.WAVEOUTCAPSW, 84)
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
|
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <timeapi.h>
|
#include <timeapi.h>
|
||||||
|
#include <mmreg.h>
|
||||||
#include <mmeapi.h>
|
#include <mmeapi.h>
|
||||||
#include <windns.h>
|
#include <windns.h>
|
||||||
#include <commdlg.h>
|
#include <commdlg.h>
|
||||||
@@ -702,8 +703,10 @@ static void verify_winmm(ofstream& out) {
|
|||||||
test_proc_comment("mmsyscom.h");
|
test_proc_comment("mmsyscom.h");
|
||||||
expect_size(MMVERSION);
|
expect_size(MMVERSION);
|
||||||
expect_size(MMTIME);
|
expect_size(MMTIME);
|
||||||
test_proc_comment("mmeapi.h");
|
test_proc_comment("mmreg.h");
|
||||||
expect_size(WAVEFORMATEX);
|
expect_size(WAVEFORMATEX);
|
||||||
|
expect_size(WAVEFORMATEXTENSIBLE);
|
||||||
|
test_proc_comment("mmeapi.h");
|
||||||
expect_size(WAVEHDR);
|
expect_size(WAVEHDR);
|
||||||
expect_size(WAVEINCAPSW);
|
expect_size(WAVEINCAPSW);
|
||||||
expect_size(WAVEOUTCAPSW);
|
expect_size(WAVEOUTCAPSW);
|
||||||
|
|||||||
Reference in New Issue
Block a user