60 lines
1.9 KiB
C++
60 lines
1.9 KiB
C++
|
// Copyright (c) 1996 Microsoft Corporation. All Rights Reserved.
|
||
|
/**********************************************************************
|
||
|
Code to test timecode routines
|
||
|
**********************************************************************/
|
||
|
#include <stdio.h>
|
||
|
#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);
|
||
|
}
|