class KMidSimpleAPI

# class KMidSimpleAPI | A very simple API around the rest of libkmid. More...
Definition | `#include <libkmid.h>`
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

#### Public Static Methods

- static int kMidInit (void)
- static int kMidLoad (const char *filename)
- static int kMidPlay (int loop=0)
- static int kMidStop (void)
- static void kMidDestruct (void)
- static int kMidIsPlaying (void)
- static int kMidDevices (void)
- static const char * kMidName (int i)
- static const char * kMidType (int i)
- static void kMidSetDevice (int i)
- static void kMidSetMidiMapper (const char *mapfilename)
- static const char * kMidVersion (void)
- static const char * kMidCopyright (void)

## Detailed Description

Simple API covering most of the uses of libkmid.

You can use the members of this class in pure C applications, just by using the same name as the corresponding function member.

Suppose you're developing a game and you want to play some background music while the user is playing. You only have to call :

- kMidInit();
- kMidLoad("RideOfTheValkyries.mid");
- kMidPlay();

When the user decides to quit the game, use

- kMidStop();
- kMidDestruct();

to stop the music and release the memory allocated by libkmid.

int kMidInit (void) | ### kMidInit

[static]

Initializes libkmid. Creates the DeviceManager object, and initializes some variables that will be used later.

Returns: 0 if OK, and a positive number when there's any error (for example, because the /dev/sequencer device couldn't be opened, be it because it was already opened by another application, or because the sound card wasn't configured)

int kMidLoad (const char *filename) | ### kMidLoad

[static]

Loads a song that will be played with the next call to kMidPlay().

int kMidPlay (int loop=0) | ### kMidPlay

[static]

Plays the song currently loaded with kMidLoad(). kMidPlay forks in order to play the song in a different process, it exits inmediately, so that the application can follow the normal execution flow while the sone is played.

If loop is 0 the song is played once and then the child process finishes. If loop is 1, the song is played repeatedly until kMidStop() is called. You can call kMidStop() anytime you want (also if loop is 0) to stop the song and kill the child process.

See also: kMidStop, kMidIsPlaying

int kMidStop (void) | ### kMidStop

[static]

Stops playing a song inmediatly. It doesn't return until the child process that is playing the song is terminated.

See also: kMidPlay

void kMidDestruct (void) | ### kMidDestruct

[static]

Releases the memory allocated by libkmid. To continue playing, you must first make a(nother) call to kMidInit().

int kMidIsPlaying (void) | ### kMidIsPlaying

[static]

Returns 1 if the library is playing a song, and 0 if it's not.

See also: kMidPlay

int kMidDevices (void) | ### kMidDevices

[static]

Returns the number of MIDI devices ( MIDI ports + synthesizers )

See also: midiPorts, synthDevices, kMidName, kMidType

const char * kMidName (int i) | ### kMidName

[static]

Returns the name of the i-th device . In case libkmid wasn't yet initialized ( see kMidInit() ), the return value is NULL, and in case the parameter has a value out of the valid range ( see kMidDevices() ) it returns an empty string.

See also: kMidDevices, kMidType

const char * kMidType (int i) | ### kMidType

[static]

Returns the type of the i-th device . In case libkmid wasn't yet initialized ( see kMidInit() ), the return value is NULL, and in case the parameter has a value out of the valid range ( see kMidDevices() ) it returns an empty string.

See also: kMidDevices, kMidName

void kMidSetDevice (int i) | ### kMidSetDevice

[static]

Sets the MIDI device to use when playing a song.

See also: kMidDevices, kMidName, DeviceManager

void kMidSetMidiMapper (const char *mapfilename) | ### kMidSetMidiMapper

[static]

Sets the Midi Mapper to use. Most of the users won't need a midi mapper, but there're still non-General Midi synthesizers out there, and people with one of those will get much better sound quality by using a MIDI mapper.

Please have a look at KMid's documentation for more information about MIDI mappers and how to write a MIDI mapper for your keyboard.

const char * kMidVersion (void) | ### kMidVersion

[static]

Returns the version number of libkmid, i.e. "0.9.5" or "1.0 Beta"

const char * kMidCopyright (void) | ### kMidCopyright

[static]

Returns the copyright notice that applications using libkmid should print to the user in an about box or somewhere visible. I.e.

"LibKMid 0.9.5 (C) 1997-2000 Antonio Larrosa Jimenez . Spain"

- Version: 0.9.5 17/01/2000
- Author: Antonio Larrosa Jimenez
- Generated: root on macppc.ports.openbsd.org on Sat Sep 6 10:38:06 2003, using kdoc 2.0a54.