// Copyright (c) 1996 Microsoft Corporation. All Rights Reserved. /********************************************************************** Code to test timecode routines **********************************************************************/ #include #include "timecode.h" #include "ltcdcode.h" __cdecl main(int argc) { LTCdecoder decoder; TimeCode timeCode(0,0,0,0); // LTCuserBits userBits; char string[TIMECODE_STRING_LENGTH]; const int BUFFERSIZE = 1024; short buffer[BUFFERSIZE]; int bufferSize; if(argc>1) _asm int 3; // XXX debug a program w/input from stdin! int done = 0; while(!done) { int index; // scoop up a buffer from stdin for(index = 0; (index < BUFFERSIZE) && (!done); index++) { done = (scanf("%d", &buffer[index])== -1); // printf("%d %d\n", index, buffer[index]); } short *ptr; for(bufferSize = index, ptr = buffer; bufferSize; ) { LONGLONG syncSample, endSample; // send buffer off to be decoded if(decoder.decodeBuffer(&ptr, &bufferSize)) { decoder.getStartStopSample(&syncSample, &endSample); decoder.getTimeCode(&timeCode); timeCode.GetString(string); printf("tc: %s (%d/%d)\n", string, (int)syncSample, (int)endSample); #ifdef PRINTUSERBITS if(decoder.getUserBits(&userBits)) { printf("%04x %04x %04x %04x %04x %04x %04x %04x\n", userBits.user1, userBits.user2, userBits.user3, userBits.user4, userBits.user5, userBits.user6, userBits.user7, userBits.user8); } #endif //printf("ptr= 0x%X (0x%X), bufferSize= %d\n", //ptr, buffer, bufferSize); } } } return(0); }