/*
  mffm Time Code
  Time Code for multimedia systems

  Copyright (C) 2000, 2001 Matt R. Flax <flatmax@ieee.org>
  
  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.
  
  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.
  
  You have received a copy of the GNU Lesser General Public License
  along with this library.
*/
#include "timeCodeInterface.H"
#include "XPMDigits.H"

#define ATYPE short int
#define CNTERTYPE int
#define FLDCOUNTERTYPE int
#define FLDCOUNT 3
#define MASTERCNTERTYPE MasterCounterInterface<FieldInterface, FLDCOUNT>

/*int updateCheck(TimeCodeInterface<MASTERCNTERTYPE, ATYPE>* t){
  cout<<"updateCheck"<<endl;
  //  d->audio.timeCode.updateISR();
  (*t)+=10;
  //cout << *m<<endl;
  return 1;
}
*/

static void quit(void *wid, gpointer data){
  gtk_main_quit();
}

int main(int argc, char *argv[]){
  gtk_init( &argc, &argv );

  GtkInterface topWindow;
  XPMDigits temp(&topWindow);
  
  TimeCodeInterface<MASTERCNTERTYPE, ATYPE> *timeCode= new TimeCodeInterface<MASTERCNTERTYPE, ATYPE>(0, 74, 60, 75);
  timeCode->setBeginning(2*75);
  timeCode->setEnd(20*75);
  //  cout << timeCode<<endl;

  // Quit button
  Buttons buttons; buttons<<BUTTONLABELSTRUCT{"Quit", quit, NULL};
  HBox hBox;
  hBox<< buttons.grab(1);
  hBox<< timeCode->VBox::getWidget();
  hBox.show();

  topWindow<< hBox.getWidget();

  //  gtk_timeout_add(500 /* 500 ms */, updateCheck, &timeCode);

  gtk_main();

  topWindow>> hBox.getWidget();

  delete timeCode;
  timeCode=NULL;

  timeCode= new TimeCodeInterface<MASTERCNTERTYPE, ATYPE>(0, 74, 60, 75);
  timeCode->setBeginning(2*75);
  timeCode->setEnd(20*75);
  Buttons buttons1; buttons1<<BUTTONLABELSTRUCT{"Quit", quit, NULL};
  HBox hBox1;
  hBox1<< buttons1.grab(1);
  hBox1<< timeCode->VBox::getWidget();
  hBox1.show();

  topWindow<< hBox1.getWidget();
  gtk_main();
  delete timeCode;
  timeCode=NULL;
  
  return 0;  
}


