---
# System prepended metadata

title: MxMusicManager stuff

---

- lots of references to other ptr's and stuff, so im only analyzing whats in the vtable

# constructor
- offset 100c05a0
- there's a call to another function which may be a part of the ctor, but then it goes to stuff seeming to be shared by things like the video manager
## FUN_100c0690
- sets field_0x50 to 100 then calls
## FUN_100c06a0
- sets the following fields to 0:
    - 0x30
    - 0x34
    - 0x38
    - 0x3c
    - 0x40
    - 0x44
    - 0x48
    - 0x4c

# destructor
- vtable suggests it is here, offset 100c0640

# the vtable
- PTR_FUN_100dc930, at 100dc930
## 3rd entry: FUN_100b8790
- the param_1 could be MxCriticalSection*
- it returns 0; probably performing an operation of some kind
- FIXME: come back to this when we understand the fields of MxMusicManager

## 6th entry: FUN_100b8e40
- Most likely takes in MxCriticalSection* as a parameter, though i wonder if MxMusicManager could contain a critsect: that would make the most sense

## 7th entry: LAB_100c0930, which calls FUN_100c06c0
- Takes in a char parameter, though the LAB call puts in '\0'

## 8th entry: FUN_100b88c0
- another reference with the parameter being a critsect:
    - ```MxAutoLocker::MxAutoLocker(&local_14,(MxCriticalSection *)((int)this + 0x10));```
    - I'm here declaring that 0x10 is a MxCriticalSection, confirmed

# known member fields
field_0x8: maybe an int*
field_0x10: MxCriticalSection*
field_0x18: maybe an int* (src: FUN_100b8e40)
field_0xc: maybe an int* (src: FUN_100c06c0)

field_0x30: HMIDISTRM* or HMIDIOUT* (src: FUN_100c0b20)
field_0x4c: LPMIDIHR* (src: FUN_100c0b20)

# functions that may have relation/take in MxMusicManager as a param
- FUN_100b8d00: appears to mention another vtable.. 100dc6e0

---
# The real nitty gritty: other functions that likely use MxMusicManager

## FUN_100c0b20
- This is where we start to see calls to midi functions in WINMM
- the critsect parameter checks out at 0x10
- a call does go too FUN_100c06a0, part of the ctor
- this function might be where the music manager is initialized