• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • libtdemid
 

libtdemid

Public Member Functions | List of all members
MidiPlayer Class Reference

#include <player.h>

Public Member Functions

 MidiPlayer (DeviceManager *midi_, PlayerController *pctl)
 
 ~MidiPlayer ()
 
int loadSong (const char *filename)
 
void removeSong (void)
 
int isSongLoaded (void)
 
SpecialEvent * specialEvents ()
 
NoteArray * noteArray (void)
 
void play (bool calloutput=false, void output(void)=0)
 
void setParseSong (bool b=true)
 
void setGenerateBeats (bool b=false)
 
MidiFileInfo * information (void)
 
void setPos (ulong gotomsec, class MidiStatus *midistat)
 
void setTempoRatio (double ratio)
 

Detailed Description

MIDI file player routines .

This class reads a MIDI file and play it using a DeviceManager object.

To use it, just call loadSong() with the filename you want to play, and then play().

Please have a look at the note in the play() documentation.

MidiPlayer will write information about the playing process on a PlayerController() structure that you must supply to the constructor

Alternatively, if everything you want is to play a midi file in a game or any other application that doesn't need to fine tune the midi playing, just use the tdemidplay() function.

See also
KMidSimpleAPI

The MIDI file player engine

Version
0.9.5 17/01/2000
Author
Antonio Larrosa Jimenez larro.nosp@m.sa@k.nosp@m.de.or.nosp@m.g

Definition at line 260 of file player.h.

Constructor & Destructor Documentation

◆ MidiPlayer()

MidiPlayer::MidiPlayer ( DeviceManager *  midi_,
PlayerController *  pctl 
)

Constructor .

You must construct and pass a DeviceManager object and a PlayerController structure. None of them will be destroyed by this object, so you should do it after destroying the MidiPlayer object.

Definition at line 46 of file player.cpp.

◆ ~MidiPlayer()

MidiPlayer::~MidiPlayer ( )

Destructor.

Definition at line 59 of file player.cpp.

Member Function Documentation

◆ information()

MidiFileInfo * MidiPlayer::information ( void  )
inline

Returns information about the current MIDI file.

See also
loadSong

Definition at line 375 of file player.h.

◆ isSongLoaded()

int MidiPlayer::isSongLoaded ( void  )
inline

Returns true if there's a song already loaded (with a previous call to loadSong() ) and false if not.

Definition at line 317 of file player.h.

◆ loadSong()

int MidiPlayer::loadSong ( const char *  filename)

Loads a Song, and parses it (it the parse wasn't disabled with setParseSong() ) .

It also generates the Beat events (see SpecialEvent::type() ) if you enabled this by using setGenerateBeats() .

Definition at line 89 of file player.cpp.

◆ noteArray()

NoteArray * MidiPlayer::noteArray ( void  )
inline

Returns and array with the notes playen through the song .

MidiPlayer must parse the song to get the notes, so be sure not to disable the parsing of the song.

Returns an array of notes, (just note on and note off events), in the form of a NoteArray object

Definition at line 333 of file player.h.

◆ play()

void MidiPlayer::play ( bool  calloutput = false,
void   outputvoid = 0 
)

Plays the song using the DeviceManager object supplied in the constructor.

It should be already configured, as play doesn't change the volume, nor midi mapper, for example.

Note: Calling this function will block the execution of your application until the song finishes playing. The solution for this is simple, fork before calling it, and create the PlayerController object on shared memory.

As alternative, if everything you want is playing a midi file in a game or any other application that doesn't need to fine tune the midi playing, just use the KMidSimpleAPI::kMidPlay() function.

See also
KMidSimpleAPI::kMidInit
KMidSimpleAPI::kMidPlay
KMidSimpleAPI::kMidStop
KMidSimpleAPI::kMidDestruct

Definition at line 531 of file player.cpp.

◆ removeSong()

void MidiPlayer::removeSong ( void  )

Unloads the current song, so that every internal variable is empty and clean for further usage.

Definition at line 65 of file player.cpp.

◆ setGenerateBeats()

void MidiPlayer::setGenerateBeats ( bool  b = false)

Enables or disables the generation of beats event in a song when loading it.

Definition at line 932 of file player.cpp.

◆ setParseSong()

void MidiPlayer::setParseSong ( bool  b = true)

Enables or disables the parsing of the song when loading it.

This affects the SpecialEvents ( specialEvents() ) and the NoteArray ( noteArray() ).

Definition at line 927 of file player.cpp.

◆ setPos()

void MidiPlayer::setPos ( ulong  gotomsec,
class MidiStatus *  midistat 
)

Sets the position in a song.

Parameters
gotomsecthe number of milliseconds to go to . A subsequent call to play() will start playing the song from that moment, instead of the beginning.
midistata MidiStatus object that will contain the status in which the MIDI device would be if it would have arrived to this situation by a normal playing of the song.

Definition at line 795 of file player.cpp.

◆ setTempoRatio()

void MidiPlayer::setTempoRatio ( double  ratio)

Changes the speed at which a song is played.

The song's tempo is multiplied by the specified ratio.

Definition at line 937 of file player.cpp.

◆ specialEvents()

SpecialEvent * MidiPlayer::specialEvents ( )
inline

Returns the linked list of SpecialEvents objects .

For this to work, the parse should be enabled (the default), by using setParseSong().

Definition at line 323 of file player.h.


The documentation for this class was generated from the following files:
  • player.h
  • player.cpp

libtdemid

Skip menu "libtdemid"
  • Main Page
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Class Members
  • Related Pages

libtdemid

Skip menu "libtdemid"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for libtdemid by doxygen 1.9.4
This website is maintained by Timothy Pearson.