# modules/opl3/opl3.c File Reference

`#include <mios32.h>`
`#include "opl3.h"`

## Defines
#define | OPL3_PIN_RS_0 { MIOS32_SYS_STM_PINSET(OPL3_RS_PORT, OPL3_RS_PIN, 0); }
#define | OPL3_PIN_RS_1 { MIOS32_SYS_STM_PINSET(OPL3_RS_PORT, OPL3_RS_PIN, 1); }
## Functions
s32 | OPL3_SendAddrData (u8 chip, u8 addrhigh, u8 addr, u8 data)
s32 | OPL3_RefreshOperator (u8 op, u8 reg)
s32 | OPL3_RefreshChannel (u8 chan, u8 reg)
s32 | OPL3_RefreshChip (u8 chip, u8 reg)
s32 | OPL3_Reset ()
s32 | OPL3_Init ()
s32 | OPL3_RefreshAll ()
void | OPL3_SendDemoPatch ()
s32 | OPL3_OnFrame ()
s32 | OPL3_AddOperQueue (u8 op, u8 reg)
s32 | OPL3_AddChanQueue (u8 chan, u8 reg)
s32 | OPL3_AddChipQueue (u8 chip, u8 reg)
s32 | OPL3_SetFMult (u8 op, u8 value)
s32 | OPL3_SetWaveform (u8 op, u8 value)
s32 | OPL3_SetVibrato (u8 op, u8 value)
s32 | OPL3_SetVolume (u8 op, u8 value)
s32 | OPL3_SetTremelo (u8 op, u8 value)
s32 | OPL3_SetKSL (u8 op, u8 value)
s32 | OPL3_SetAttack (u8 op, u8 value)
s32 | OPL3_SetDecay (u8 op, u8 value)
s32 | OPL3_DoSustain (u8 op, u8 value)
s32 | OPL3_SetSustain (u8 op, u8 value)
s32 | OPL3_SetRelease (u8 op, u8 value)
s32 | OPL3_SetKSR (u8 op, u8 value)
s32 | OPL3_Gate (u8 chan, u8 value)
s32 | OPL3_SetFrequency (u8 chan, u16 fnum, u8 block)
s32 | OPL3_SetFeedback (u8 chan, u8 value)
s32 | OPL3_SetAlgorithm (u8 chan, u8 value)
s32 | OPL3_OutLeft (u8 chan, u8 value)
s32 | OPL3_OutRight (u8 chan, u8 value)
s32 | OPL3_Out3 (u8 chan, u8 value)
s32 | OPL3_Out4 (u8 chan, u8 value)
s32 | OPL3_SetDest (u8 chan, u8 value)
s32 | OPL3_SetFourOp (u8 chan, u8 value)
s32 | OPL3_SetOpl3Mode (u8 chip, u8 value)
s32 | OPL3_SetNoteSel (u8 chip, u8 value)
s32 | OPL3_SetCSW (u8 chip, u8 value)
s32 | OPL3_SetVibratoDepth (u8 chip, u8 value)
s32 | OPL3_SetTremeloDepth (u8 chip, u8 value)
s32 | OPL3_SetPercussionMode (u8 chip, u8 value)
s32 | OPL3_TriggerBD (u8 chip, u8 value)
s32 | OPL3_TriggerSD (u8 chip, u8 value)
s32 | OPL3_TriggerTT (u8 chip, u8 value)
s32 | OPL3_TriggerHH (u8 chip, u8 value)
s32 | OPL3_TriggerCY (u8 chip, u8 value)
u8 | OPL3_IsChannel4Op (u8 chan)
u8 | OPL3_IsChannelPerc (u8 chan)
u8 | OPL3_IsOperatorCarrier (u8 op)
u8 | OPL3_GetAlgorithm (u8 chan)
## Variables
opl3_operator_t | opl3_operators [36 *OPL3_COUNT]
opl3_channel_t | opl3_channels [18 *OPL3_COUNT]
opl3_chip_t | opl3_chip [OPL3_COUNT]
u8 | toggle

## Define Documentation

#define OPL3_PIN_RS_0 { MIOS32_SYS_STM_PINSET(OPL3_RS_PORT, OPL3_RS_PIN, 0); }

#define OPL3_PIN_RS_1 { MIOS32_SYS_STM_PINSET(OPL3_RS_PORT, OPL3_RS_PIN, 1); }

## Function Documentation

s32 OPL3_AddChanQueue | ( | u8 | chan,
|  | u8 | reg |
| ) |  |  |

s32 OPL3_AddChipQueue | ( | u8 | chip,
|  | u8 | reg |
| ) |  |  |

s32 OPL3_AddOperQueue | ( | u8 | op,
|  | u8 | reg |
| ) |  |  |

s32 OPL3_DoSustain | ( | u8 | op,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_Gate | ( | u8 | chan,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

u8 OPL3_GetAlgorithm | ( | u8 | chan | ) |

Here is the call graph for this function:

s32 OPL3_Init | ( | void |  | ) |

Here is the call graph for this function:

u8 OPL3_IsChannel4Op | ( | u8 | chan | ) |

Here is the call graph for this function:

u8 OPL3_IsChannelPerc | ( | u8 | chan | ) |

u8 OPL3_IsOperatorCarrier | ( | u8 | op | ) |

Here is the call graph for this function:

s32 OPL3_OnFrame | ( | void |  | ) |

Here is the call graph for this function:

s32 OPL3_Out3 | ( | u8 | chan,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_Out4 | ( | u8 | chan,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_OutLeft | ( | u8 | chan,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_OutRight | ( | u8 | chan,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_RefreshAll | ( | void |  | ) |

Here is the call graph for this function:

s32 OPL3_RefreshChannel | ( | u8 | chan,
|  | u8 | reg |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_RefreshChip | ( | u8 | chip,
|  | u8 | reg |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_RefreshOperator | ( | u8 | op,
|  | u8 | reg |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_Reset | ( | void |  | ) |

Here is the call graph for this function:

s32 OPL3_SendAddrData | ( | u8 | chip,
|  | u8 | addrhigh,
|  | u8 | addr,
|  | u8 | data |
| ) |  |  |

Here is the call graph for this function:

void OPL3_SendDemoPatch | ( | void |  | ) |

Here is the call graph for this function:

s32 OPL3_SetAlgorithm | ( | u8 | chan,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_SetAttack | ( | u8 | op,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_SetCSW | ( | u8 | chip,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_SetDecay | ( | u8 | op,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_SetDest | ( | u8 | chan,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_SetFeedback | ( | u8 | chan,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_SetFMult | ( | u8 | op,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_SetFourOp | ( | u8 | chan,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_SetFrequency | ( | u8 | chan,
|  | u16 | fnum,
|  | u8 | block |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_SetKSL | ( | u8 | op,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_SetKSR | ( | u8 | op,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_SetNoteSel | ( | u8 | chip,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_SetOpl3Mode | ( | u8 | chip,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_SetPercussionMode | ( | u8 | chip,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_SetRelease | ( | u8 | op,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_SetSustain | ( | u8 | op,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_SetTremelo | ( | u8 | op,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_SetTremeloDepth | ( | u8 | chip,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_SetVibrato | ( | u8 | op,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_SetVibratoDepth | ( | u8 | chip,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_SetVolume | ( | u8 | op,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_SetWaveform | ( | u8 | op,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_TriggerBD | ( | u8 | chip,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_TriggerCY | ( | u8 | chip,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_TriggerHH | ( | u8 | chip,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_TriggerSD | ( | u8 | chip,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

s32 OPL3_TriggerTT | ( | u8 | chip,
|  | u8 | value |
| ) |  |  |

Here is the call graph for this function:

## Variable Documentation

opl3_channel_t opl3_channels[18 *OPL3_COUNT]

opl3_chip_t opl3_chip[OPL3_COUNT]

opl3_operator_t opl3_operators[36 *OPL3_COUNT]

u8 toggle