munt / munt

A multi-platform software synthesiser emulating pre-GM MIDI devices such as the Roland MT-32, CM-32L, CM-64 and LAPC-I. In no way endorsed by or affiliated with Roland Corp.

Home Page:http://munt.sourceforge.net/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Add general support for implementation of emulated MT-32 LCD

sergm opened this issue · comments

Currently, libmt32emu only provides limited possibility for a consumer application to implement an emulated MT-32 LCD. There are several pretty low-level callbacks in ReportHandler class available, so that rather a good knowledge of MT-32 internals is required to facilitate emulation of the MT-32 LCD further.

Instead, the library shall hide the complexity from the consumer application by providing a few high-level easy-to-use functions and callbacks, as well as implementing a good deal of common code that is specific to MT-32 LCD.

From the functional PoV, the library shall:

  • largely emulate the internal state of the MT-32 LCD unit (leaving aside some minor detail like usage of certain special characters, cursor blinking, etc.);
  • provide access to the text representation of the current state of the emulated LCD for the consumer application;
  • notify the consumer application about each change of the LCD state.

Providing a function for rendering the text representation of the LCD state to some graphical format does not seem feasible and reasonable due to variety of available LCD hardware implementations, yet the widely used facilities of communication with the hardware LCDs like LCD Smartie and lcdproc currently foresee displaying textual data only via their standard API.