list.h 1.62 KB
//====================================================================
// list.h
//
// Copyright 1993, Silicon Graphics, Inc.
// All Rights Reserved.
//
// This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
// the contents of this file may not be disclosed to third parties, copied or
// duplicated in any form, in whole or in part, without the prior written
// permission of Silicon Graphics, Inc.
//
// RESTRICTED RIGHTS LEGEND:
// Use, duplication or disclosure by the Government is subject to restrictions
// as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
// and Computer Software clause at DFARS 252.227-7013, and/or in similar or
// successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
// rights reserved under the Copyright Laws of the United States.
//====================================================================

#define MIDI_TYPE 0
#define META_TYPE 1
#define SYSEX_TYPE 2

class Node
{ 							
  public:
    Node        *next;
    Node        *prev;
    
    int         type;
    long        time;     

    char        status;
    char        b1;             // for MIDI message types
    char        b2;
    
    int         subtype;        // for meta or sysex messages
    char        *data;  
    long        len;
    long        dur;

    Node();
};

class List
{
  protected:
    Node        *locate(Node *newNode);
    Node        *curNode;
    int         sortEvents;
    int         SortValue(Node *node);
  public: 
    Node        *head;
    Node        *tail;
    
    List();
    void        Insert(Node *node);
    void        OrderEvents(int orderFlag);
};