Source: ../../../tse3/src/tse3/plt/Win32.h


Annotated List
Files
Globals
Hierarchy
Index
/*
 * @(#)plt/Win32.h 1.00 30 November 1999
 *
 * Copyright (c) 2000 Pete Goodliffe (pete@cthree.org)
 *
 * This file is part of TSE3 - the Trax Sequencer Engine version 3.00.
 *
 * This library is modifiable/redistributable under the terms of the GNU
 * General Public License.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; see the file COPYING. If not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 *
 */

#ifndef TSE3_PLT_WIN32_H
#define TSE3_PLT_WIN32_H

#include "tse3/MidiScheduler.h"
#include 

namespace TSE3
{
    namespace Plt
    {
        /**
         * This is the Win32 (Windows) @ref MidiScheduler implementation.
         *
         * @short   Win32 MidiScheduler implemtation
         * @author  Jose Maria Sanchez Saez
         * @author  Pete Goodliffe
         * @version 0.00
         * @see     MidiScheduler
         * @see     Win32MidiSchedulerFactory
         */
        class Win32MidiScheduler : public MidiScheduler
        {
            public:

                /**
                 * Creates the Win32MidiScheduler object.
                 */
                Win32MidiScheduler(); // throw (Win32MidiSchedulerException); 
                virtual ~Win32MidiScheduler();

            protected:

                /**
                 * @reimplemented
                 */
                virtual const char *impl_implementationName() const;
                /**
                 * @reimplemented
                 */
                virtual const char *impl_portName(int port) const;
                /**
                 * @reimplemented
                 */
                virtual const char *impl_portType(int port) const;
                /**
                 * @reimplemented
                 */
                virtual bool impl_portReadable(int port) const;
                /**
                 * @reimplemented
                 */
                virtual bool impl_portWriteable(int port) const;
                /**
                 * @reimplemented
                 */
                virtual void impl_start(Clock clock);
                /**
                 * @reimplemented
                 */
                virtual void impl_stop(Clock clock);
                /**
                 * @reimplemented
                 */
                virtual void impl_moveTo(Clock moveTime, Clock newTime);
                /**
                 * @reimplemented
                 */
                virtual Clock impl_clock();
                /**
                 * @reimplemented
                 */
                virtual int impl_msecs();
                /**
                 * @reimplemented
                 */
                virtual void impl_setTempo(int tempo, Clock changeTime);
                /**
                 * @reimplemented
                 */
                virtual bool impl_eventWaiting();
                /**
                 * @reimplemented
                 */
                virtual MidiEvent impl_rx();
                /**
                 * @reimplemented
                 */
                virtual void impl_tx(MidiCommand mc);
                /**
                 * @reimplemented
                 */
                virtual void impl_tx(MidiEvent mc);
                /**
                 * @reimplemented
                 */
                virtual void impl_txSysEx(int port,
                                          const unsigned char *data,
                                          size_t size);

            private:

              union HMIDI
              {
                  HMIDIOUT out;
                  HMIDIIN  in;
              };
              HMIDI   *hMidi;
              UINT     nMidi;

              void runMidiData(HMIDIOUT, MidiCommand);
              static void callback(UINT, UINT, DWORD, DWORD, DWORD); 
        };
    }
}

#endif

Generated by: pete on philemon on Wed May 25 14:39:52 2005, using kdoc 2.0a54.