time.c++ 2.5 KB
//====================================================================
// time.c++
//
// Synopsis:
//
// Author(s)
//  Steve Shepard
//
// 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.
//====================================================================

#include "time.h"

Time::Time(int t, int d)
{
    ticks = t;
    division = d;
}

Time::Time()
{
    ticks = 0;
    division = 0;
}

Time Time::operator+(const Time& t) const
{
    Time result;

    assert(division == t.division);
    
    result.division = division;
    result.ticks = ticks + t.ticks;

    return result;
}

Time Time::operator-(const Time& t) const
{
    Time result;

    assert(division == t.division);
    
    result.division = division;
    result.ticks = ticks - t.ticks;

    return result;
}

Time& Time::operator=(const Time& t) {
    ticks = t.ticks;
    division = t.division;
    return *this;
}

Time& Time::operator+=(const Time& t) {
    *this = *this + t;
    return *this;
}


Time& Time::operator-=(const Time& t) {
    *this = *this - t;
    return *this;
}

int Time::operator==(const Time& t) const {
    assert (division == t.division);
    
    return ticks == t.ticks;
}



int Time::operator!=(const Time& t) const {
    assert (division == t.division);
    
    return ticks != t.ticks;
}


Time::operator<(const Time &t) const {
    assert (division == t.division);
    
    return (ticks < t.ticks);
}

Time::operator>(const Time &t) const {
    assert (division == t.division);
    
    return (ticks > t.ticks);
}



Time::operator<=(const Time &t) const {
    assert (division == t.division);
    
    return (ticks <= t.ticks);
}

Time::operator>=(const Time &t) const {
    assert (division == t.division);
    
    return (ticks >= t.ticks);
}

void Time::Print()
{
    float beats = ((float)ticks)/((float)division);
    
    printf("%.3f\t", beats);
}