// Copyright (c) 2002, Peter Bentley // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in the // documentation and/or other materials provided with the distribution. // // The name Peter Bentley may not be used to endorse or promote // products derived from this software without specific prior // written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // // $Id: OmdTime.m,v 1.6 2002/11/21 18:45:11 pete Exp $ #import "OmdTime.h" CVSID( "$Id: OmdTime.m,v 1.6 2002/11/21 18:45:11 pete Exp $" ); @implementation OmdTime - (id) init { return [self initWithTime: NULL]; } - (id) initWithTime: (omd_time_t *) t { if( (self = [super init]) != nil ) { if( t ) { memcpy( &value, t, sizeof( omd_time_t )); } else { memset( &value, 0, sizeof( omd_time_t )); } } return self; } - (id) copyWithZone: (NSZone *) zone { OmdTime *copy = [[OmdTime allocWithZone: zone] initWithTime: &value]; return copy; } - (double) doubleValue { return omd_time_to_double( &value ); } - (void) setDoubleValue: (double) t { omd_time_from_double( &value, t ); } - (NSString *) stringValue { char *str = omd_time_to_string( &value, NULL ); NSString *string = [[NSString alloc] initWithCString: str ]; [string autorelease]; return string; } - (BOOL) isSameTimeAs: (OmdTime *) t { return ( [self doubleValue] == [t doubleValue] ); } @end