jdkmidi class library documentation

Copyright © 2004 J.D. Koftinoff Software, Ltd.

Released under the GNU General Public License (GPL)




Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

jdkmidi::MIDIQueue Class Reference

#include <queue.h>

List of all members.

Public Member Functions

 MIDIQueue (int num_msgs)
virtual ~MIDIQueue ()
void Clear ()
bool CanPut () const
bool CanGet () const
bool IsFull () const
void Put (const MIDITimedBigMessage &msg)
MIDITimedBigMessage Get () const
void Next ()
const MIDITimedBigMessagePeek () const

Protected Attributes

MIDITimedBigMessagebuf
int bufsize
volatile int next_in
volatile int next_out


Constructor & Destructor Documentation

jdkmidi::MIDIQueue::MIDIQueue int  num_msgs  ) 
 

Definition at line 31 of file jdkmidi_queue.cpp.

00032     :
00033     buf( new MIDITimedBigMessage[ num_msgs ] ),
00034     bufsize( num_msgs ),
00035     next_in(0),
00036     next_out(0)
00037   {
00038     
00039   }

jdkmidi::MIDIQueue::~MIDIQueue  )  [virtual]
 

Definition at line 42 of file jdkmidi_queue.cpp.

References buf.

00043   {
00044     delete [] buf;
00045   }


Member Function Documentation

bool jdkmidi::MIDIQueue::CanGet  )  const
 

Definition at line 58 of file jdkmidi_queue.cpp.

References next_in, and next_out.

00059   {
00060     return next_in != next_out;
00061   }

bool jdkmidi::MIDIQueue::CanPut  )  const
 

Definition at line 53 of file jdkmidi_queue.cpp.

References bufsize, next_in, and next_out.

00054   {
00055     return next_out != ((next_in+1)%bufsize);
00056   }

void jdkmidi::MIDIQueue::Clear  ) 
 

Definition at line 47 of file jdkmidi_queue.cpp.

References next_in, and next_out.

00048   {
00049     next_in=0; 
00050     next_out=0;   
00051   }

MIDITimedBigMessage jdkmidi::MIDIQueue::Get  )  const [inline]
 

Definition at line 58 of file queue.h.

References buf, and next_out.

00059         {
00060           return MIDITimedBigMessage( buf[next_out] );
00061         } 

bool jdkmidi::MIDIQueue::IsFull  )  const [inline]
 

Definition at line 45 of file queue.h.

References CanPut().

00046         {
00047           return !CanPut();
00048         } 

void jdkmidi::MIDIQueue::Next  )  [inline]
 

Definition at line 63 of file queue.h.

References bufsize, and next_out.

00064         {
00065           next_out = (next_out+1) % bufsize;
00066         } 

const MIDITimedBigMessage* jdkmidi::MIDIQueue::Peek  )  const [inline]
 

Definition at line 68 of file queue.h.

References buf, and next_out.

00069         {
00070           return &buf[next_out];
00071         } 

void jdkmidi::MIDIQueue::Put const MIDITimedBigMessage msg  )  [inline]
 

Definition at line 51 of file queue.h.

References buf, bufsize, and next_in.

00052         {
00053           buf[next_in] = msg;
00054           
00055           next_in = (next_in+1)%bufsize;
00056         } 


Member Data Documentation

MIDITimedBigMessage* jdkmidi::MIDIQueue::buf [protected]
 

Definition at line 74 of file queue.h.

int jdkmidi::MIDIQueue::bufsize [protected]
 

Definition at line 75 of file queue.h.

volatile int jdkmidi::MIDIQueue::next_in [protected]
 

Definition at line 76 of file queue.h.

volatile int jdkmidi::MIDIQueue::next_out [protected]
 

Definition at line 77 of file queue.h.


The documentation for this class was generated from the following files: