mirror of
https://github.com/odin-lang/Odin.git
synced 2026-06-05 10:14:05 +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 */
|
||||
|
||||
|
||||
WAVEFORMATEX :: struct {
|
||||
WAVEFORMATEX :: struct #packed {
|
||||
wFormatTag: WORD,
|
||||
nChannels: WORD,
|
||||
nSamplesPerSec: DWORD,
|
||||
@@ -603,7 +603,7 @@ LPCWAVEFORMATEX :: ^WAVEFORMATEX
|
||||
// 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.
|
||||
// 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,
|
||||
Samples: struct #raw_union {
|
||||
wValidBitsPerSample: WORD, /* bits of precision */
|
||||
|
||||
@@ -527,8 +527,10 @@ verify_winmm :: proc(t: ^testing.T) {
|
||||
// mmsyscom.h
|
||||
expect_size(t, win32.MMVERSION, 4)
|
||||
expect_size(t, win32.MMTIME, 12)
|
||||
// mmreg.h
|
||||
expect_size(t, win32.WAVEFORMATEX, 18)
|
||||
expect_size(t, win32.WAVEFORMATEXTENSIBLE, 40)
|
||||
// mmeapi.h
|
||||
expect_size(t, win32.WAVEFORMATEX, 20)
|
||||
expect_size(t, win32.WAVEHDR, 48)
|
||||
expect_size(t, win32.WAVEINCAPSW, 80)
|
||||
expect_size(t, win32.WAVEOUTCAPSW, 84)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
|
||||
#include <windows.h>
|
||||
#include <timeapi.h>
|
||||
#include <mmreg.h>
|
||||
#include <mmeapi.h>
|
||||
#include <windns.h>
|
||||
#include <commdlg.h>
|
||||
@@ -702,8 +703,10 @@ static void verify_winmm(ofstream& out) {
|
||||
test_proc_comment("mmsyscom.h");
|
||||
expect_size(MMVERSION);
|
||||
expect_size(MMTIME);
|
||||
test_proc_comment("mmeapi.h");
|
||||
test_proc_comment("mmreg.h");
|
||||
expect_size(WAVEFORMATEX);
|
||||
expect_size(WAVEFORMATEXTENSIBLE);
|
||||
test_proc_comment("mmeapi.h");
|
||||
expect_size(WAVEHDR);
|
||||
expect_size(WAVEINCAPSW);
|
||||
expect_size(WAVEOUTCAPSW);
|
||||
|
||||
Reference in New Issue
Block a user