OpenTTD Source 20260109-master-g241b5fcdfe
midifile.cpp File Reference

Parser for standard MIDI files. More...

#include "../stdafx.h"
#include "midifile.hpp"
#include "../fileio_func.h"
#include "../fileio_type.h"
#include "../string_func.h"
#include "../core/endian_func.hpp"
#include "../base_media_base.h"
#include "../base_media_music.h"
#include "midi.h"
#include "../console_func.h"
#include "../console_internal.h"
#include "table/strings.h"
#include "../safeguards.h"

Go to the source code of this file.

Data Structures

class  ByteBuffer
 Owning byte buffer readable as a stream. More...
 
struct  MpsMachine
 Decoder for "MPS MIDI" format data. More...
 
struct  MpsMachine::Channel
 Starting parameter and playback status for one channel/track. More...
 

Functions

const uint8_t * MidiGetStandardSysexMessage (MidiSysexMessage msg, size_t &length)
 Retrieve a well-known MIDI system exclusive message.
 
static bool ReadTrackChunk (FileHandle &file, MidiFile &target)
 
template<typename T >
bool TicktimeAscending (const T &a, const T &b)
 
static bool FixupMidiData (MidiFile &target)
 
static void WriteVariableLen (FileHandle &f, uint32_t value)
 
static bool CmdDumpSMF (std::span< std::string_view > argv)
 
static void RegisterConsoleMidiCommands ()
 

Variables

static MidiFile_midifile_instance = nullptr
 

Detailed Description

Parser for standard MIDI files.

Definition in file midifile.cpp.

Function Documentation

◆ CmdDumpSMF()

static bool CmdDumpSMF ( std::span< std::string_view >  argv)
static

Definition at line 1085 of file midifile.cpp.

◆ FixupMidiData()

static bool FixupMidiData ( MidiFile target)
static

Definition at line 349 of file midifile.cpp.

◆ MidiGetStandardSysexMessage()

const uint8_t * MidiGetStandardSysexMessage ( MidiSysexMessage  msg,
size_t &  length 
)

Retrieve a well-known MIDI system exclusive message.

Parameters
msgWhich sysex message to retrieve
[out]lengthReceives the length of the returned buffer
Returns
Pointer to byte buffer with sysex message

Definition at line 39 of file midifile.cpp.

References lengthof, ResetGM, ResetGS, ResetXG, and RolandSetReverb.

◆ ReadTrackChunk()

static bool ReadTrackChunk ( FileHandle file,
MidiFile target 
)
static

Definition at line 193 of file midifile.cpp.

◆ RegisterConsoleMidiCommands()

static void RegisterConsoleMidiCommands ( )
static

Definition at line 1113 of file midifile.cpp.

◆ TicktimeAscending()

template<typename T >
bool TicktimeAscending ( const T &  a,
const T &  b 
)

Definition at line 344 of file midifile.cpp.

◆ WriteVariableLen()

static void WriteVariableLen ( FileHandle f,
uint32_t  value 
)
static

Definition at line 875 of file midifile.cpp.

Variable Documentation

◆ _midifile_instance

MidiFile* _midifile_instance = nullptr
static

Definition at line 31 of file midifile.cpp.