diff options
| -rw-r--r-- | Makefile.am | 4 | ||||
| -rw-r--r-- | TODO | 12 | ||||
| -rw-r--r-- | configure.in | 4 | ||||
| -rw-r--r-- | src/Makefile.am | 30 | ||||
| -rw-r--r-- | src/cprquerydialog.cc | 36 | ||||
| -rw-r--r-- | src/cprquerydialog.h | 6 | ||||
| -rw-r--r-- | src/mainwindow.cc | 59 | ||||
| -rw-r--r-- | src/mainwindow.h | 9 | 
8 files changed, 89 insertions, 71 deletions
| diff --git a/Makefile.am b/Makefile.am index bd780f0..1353b08 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,3 +1,3 @@  AUTOMAKE_OPTIONS = gnu -SUBDIRS = src -DISTDIRS = pixmaps ffmpeg src
\ No newline at end of file +SUBDIRS = pixmaps tools src +DISTDIRS = pixmaps tools src @@ -14,7 +14,7 @@ SplashScreen:  Mainwindow:   [x]	- Clean out mgui code.   [x]	- Make generic gui layout code. - [/]	- Make icons. + [x]	- Make icons.   [x]	- Make statusbar.   [ ]	- Show network connection in statusbar.   [ ]	- Show camera connection in statusbar. @@ -22,9 +22,11 @@ Mainwindow:  CPRQueryDialog:   [x]	- Make it! - [ ]	- Clean out unnessecary code. + [x]	- Clean out unnesessary code.   [ ]	- Make cancel posibility (return code 0 should do something useful) - [ ]	- Make icons. + [x]	- Insert timer for network connection timeout. + [x]	- Send connection status info to mainwindow. + [ ]	- Make icons?   [ ]	- Test it.  Decoder: @@ -61,8 +63,8 @@ MiavConfig:  ErrorObject:   [x]	- Make it. - [ ]	- Maintain error string stack, instead of appending. - [ ]	- Make thread safe. + [x]	- Maintain error string stack, instead of appending. + [x]	- Make it thread safe.  FFMpegWrapper:   [ ]	- Make it. diff --git a/configure.in b/configure.in index 1df3ba6..3932dd6 100644 --- a/configure.in +++ b/configure.in @@ -150,7 +150,9 @@ AC_SUBST(LDFLAGS)  AC_OUTPUT(  	Makefile  -	src/Makefile) +	src/Makefile +	tools/Makefile +	pixmaps/Makefile)  #	ffmpeg/Makefile  #	ffmpeg/libavformat/Makefile  #	ffmpeg/libavcodec/Makefile diff --git a/src/Makefile.am b/src/Makefile.am index 9d574e4..24c6972 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -2,8 +2,8 @@  ## TODO: Move ffmpeg, libxml and libsdl into configure.in  AM_CXXFLAGS := $(CXXFLAGS) $(EXTRA_CXXFLAGS) -I../include $(QT_CXXFLAGS) \ +	-DPIXMAPS=\"$(datadir)/pixmaps\" \  	-I/usr/include/ffmpeg  -#	-I/usr/include/SDL  bin_PROGRAMS = miav @@ -30,9 +30,35 @@ miav_SOURCES = $(shell  if [ $QT_CXXFLAGS ] ; then ../tools/MocList cc; fi ) \  	server.cc \  	error.cc +EXTRA_DIST = \ +	miav.conf \ +	cprquery.conf \ +	aboutwindow.h \ +	camera.h \ +	cprquerydialog.h \ +	decoder.h \ +	dvframe.h \ +	encoder.h \ +	error.h \ +	ffframe.h \ +	img_encoder.h \ +	mainwindow.h \ +	messagebox.h \ +	miav.h \ +	miav_config.h \ +	mov_encoder.h \ +	network.h \ +	package.h \ +	player.h \ +	queue.h \ +	server.h \ +	socket.h \ +	thread.h \ +	util.h \ +	videowidget.h +  miav_LDADD := $(shell  if [ $QT_CXXFLAGS ] ; then ../tools/MocList o; fi ) \  	-lavcodec -lavformat -#	-lSDL  miav_MOC = $(shell  if [ $QT_CXXFLAGS ] ; then ../tools/MocList cc; fi ) diff --git a/src/cprquerydialog.cc b/src/cprquerydialog.cc index e5a722f..14b7950 100644 --- a/src/cprquerydialog.cc +++ b/src/cprquerydialog.cc @@ -34,13 +34,15 @@  CPRQueryDialog::CPRQueryDialog(QLabel *lcpr,                                 QLabel *lname,                                 QWidget *parent,  -                               const char *name) +                               const char *name,  +                               QStatusBar *status)  	: QDialog(parent, name, TRUE)  {    MiavConfig cfg("cprquery.conf");    lbl_name = lname;    lbl_cpr = lcpr; +  statusbar = status;    //Read configuration    CPR_HOST = cfg.readString("cpr_host"); @@ -317,6 +319,7 @@ int CPRQueryDialog::test_cpr(const char *s)   */  void CPRQueryDialog::cprSocket_error(int errnum)  { +  QString msg = QString("cprSocket encountered an error: ");    timer->stop();    lbl_name->setText(NAME_NOT_AVAILABLE); @@ -324,16 +327,18 @@ void CPRQueryDialog::cprSocket_error(int errnum)    // Print error message    switch(errnum) {    case QSocket::ErrConnectionRefused: // if the connection was refused -    printf("ErrConnectionRefused\n"); +    msg.append("ErrConnectionRefused");      break;    case QSocket::ErrHostNotFound: // if the host was not found -    printf("ErrHostNotFound\n"); +    msg.append("ErrHostNotFound");      break;    case QSocket::ErrSocketRead: // if a read from the socket failed  -    printf("ErrSocketRead\n"); +    msg.append("ErrSocketRead");      break;    } +  if(statusbar) statusbar->message(msg); +  MessageBox(this, "Fejl", msg, TYPE_OK, ICON_ERROR).exec();    accept();  } @@ -350,10 +355,12 @@ void CPRQueryDialog::cprSocket_readyRead()    QString lastname;    int timeout = 0; -  timer->stop(); -    if (!cprSocket->canReadLine()) return; +  QString msg = QString("Recieving name from cpr database..."); +  if(statusbar) statusbar->message(msg); +  timer->stop(); +    while(cprSocket->canReadLine()) {      QString s = cprSocket->readLine();      if (s.startsWith("0001")) { @@ -391,7 +398,10 @@ void CPRQueryDialog::cprSocket_readyRead()   */  void CPRQueryDialog::cprSocket_connected()   {	 +  QString msg = QString("Connected to cpr database, sending cpr number..."); +  if(statusbar) statusbar->message(msg);    timer->stop(); +    cprSocket->writeBlock(internalCpr, 10);    cprSocket->writeBlock("\n", 1);  } @@ -402,31 +412,33 @@ void CPRQueryDialog::cprSocket_connected()   */  void CPRQueryDialog::cprSocket_timeout()  { +  QString msg = QString("cprSocket timed out doing: ");    timer->stop();    lbl_name->setText(NAME_NOT_AVAILABLE); -  printf("cprSocket timed out tryning to:\n");    // Print connection status    switch(cprSocket->state()) {    case QSocket::Idle:       // if there is no connection -    printf("Idle\n"); +    msg.append("Idle");      break;    case QSocket::HostLookup: // during a DNS lookup -    printf("HostLookup\n"); +    msg.append("HostLookup");      break;    case QSocket::Connecting: // during TCP connection establishment -    printf("Connecting\n"); +    msg.append("Connecting");      break;    case QSocket::Connected:  // when there is an operational connection -    printf("Conected\n"); +    msg.append("Conected");      break;    case QSocket::Closing:    // if the socket is closing down, but is not yet closed. -    printf("Closing\n"); +    msg.append("Closing");      break;    } +  if(statusbar) statusbar->message(msg); +  MessageBox(this, "Fejl", msg, TYPE_OK, ICON_ERROR).exec();    accept();  } diff --git a/src/cprquerydialog.h b/src/cprquerydialog.h index 2f492f1..dfba59b 100644 --- a/src/cprquerydialog.h +++ b/src/cprquerydialog.h @@ -69,6 +69,7 @@ using namespace std;  #include <qlabel.h>  #include <qsocket.h>  #include <qtimer.h> +#include <qstatusbar.h>  #include "messagebox.h" @@ -78,7 +79,8 @@ public:    CPRQueryDialog(QLabel *lcpr,                    QLabel *lname,                    QWidget * parent = 0,  -                 const char * name = 0); +                 const char * name = 0, +                 QStatusBar *status = NULL);    ~CPRQueryDialog();  public slots: @@ -93,6 +95,8 @@ public slots:    void cprSocket_timeout();  private: +  QStatusBar *statusbar; +    QLabel *lbl_cpr;    QLabel *lbl_name; diff --git a/src/mainwindow.cc b/src/mainwindow.cc index 8164981..dc5b5e2 100644 --- a/src/mainwindow.cc +++ b/src/mainwindow.cc @@ -50,10 +50,6 @@  MainWindow::MainWindow( QWidget* parent, const char* name )  	: QWidget( parent, name, WStyle_Customize | WStyle_NoBorder )  { -  //  statusBar(); -  // statusBar()->message("fisk"); -  // statusBar()->setSizeGripEnabled(false); -    MiavConfig cfg("miav.conf");    int resolution_w = cfg.readInt("pixel_width");    int resolution_h = cfg.readInt("pixel_height"); @@ -64,7 +60,7 @@ MainWindow::MainWindow( QWidget* parent, const char* name )    // Load images    pix_record = new QPixmap(); -  pix_record->load( "record.png" ); +  pix_record->load( PIXMAPS"/record.png" );  /*  	QPainter *paint = new QPainter();  	QPicture *pic = new QPicture(); @@ -76,16 +72,16 @@ MainWindow::MainWindow( QWidget* parent, const char* name )   */    pix_stop = new QPixmap(); -  pix_stop->load( "stop.png" ); +  pix_stop->load( PIXMAPS"/stop.png" );    pix_camera = new QPixmap(); -  pix_camera->load( "camera.png" ); +  pix_camera->load( PIXMAPS"/camera.png" );    pix_dummy = new QPixmap(); -  pix_dummy->load( "dummy.png" ); +  pix_dummy->load( PIXMAPS"/dummy.png" );    pix_logo = new QPixmap(); -  pix_logo->load( "miav-logo-64x64.png" ); +  pix_logo->load( PIXMAPS"/miav-logo-64x64.png" );    createGui();    show(); @@ -102,8 +98,6 @@ MainWindow::MainWindow( QWidget* parent, const char* name )    recording = false;    frozen = false; -  aboutwindow = NULL; -    // Open the CPR Dialog    cpr_clicked();  } @@ -112,7 +106,6 @@ MainWindow::~MainWindow()  {    if(camera) delete camera;    delete btn_cpr; -  if(aboutwindow) delete aboutwindow;  }  void MainWindow::createGui() @@ -157,7 +150,7 @@ void MainWindow::createGui()    g1->addMultiCellWidget ( img_recedge, 0, 0, 0, 2, Qt::AlignHCenter);    // CPR/NAME LABEL + CPR button -  lbl_cpr = createLabel("200379-1613", 18, 3); +  lbl_cpr = createLabel("", 18, 3);    g1->addMultiCellWidget ( lbl_cpr, 1, 1, 0, 1);    btn_cpr = createButton("NYT CPR", 8, 3); @@ -166,7 +159,7 @@ void MainWindow::createGui()    // Will also be connected in the MGUI code    g1->addWidget(btn_cpr, 1, 2); -  lbl_name = createLabel("Bent Bisballe Kjær Nyeng Jensen", 18, 2); +  lbl_name = createLabel("", 18, 2);    g1->addMultiCellWidget ( lbl_name, 2, 2, 0, 2);    // Rec + Shot + Freeze buttons @@ -194,29 +187,15 @@ void MainWindow::createGui()    }    // Statusbar -  lbl_status = createLabel("STATUS", 18, 1); -	lbl_status->setFrameStyle(QFrame::TabWidgetPanel | QFrame::Sunken); -	lbl_status->setLineWidth(1); -  g0->addWidget(lbl_status, 4, 0); +  status = new QStatusBar(this); +  status->setSizeGripEnabled(FALSE); +  g0->addMultiCellWidget(status, 4, 4, 0, 1);    lbl_version = createLabel("MIaV-Grab v" VERSION, 18, 1); -	lbl_version->setFrameStyle(QFrame::TabWidgetPanel | QFrame::Sunken); -	lbl_version->setLineWidth(1); -  lbl_version->setFixedHeight((int)unit); -  g0->addWidget(lbl_version, 4, 1); - -  /* // About icon -  btn_logo = new QPushButton("", this); -  btn_logo->setPixmap(*pix_logo); -  btn_logo->setFixedSize(74,74); -  btn_logo->move(940,10); -  btn_logo->setFlat(true); -  QObject::connect( btn_logo, SIGNAL(clicked()), this, SLOT(logo_clicked()) ); -  */ -  //lbl_version->setFont( QFont( "Arial", 8, QFont::Light ) ); -  //lbl_version->setFixedSize(90,10); -  //lbl_version->move(928,81); +  lbl_version->setFixedWidth(300); +  status->addWidget(lbl_version, 0, TRUE); +  status->message("Klar...");  }  QPushButton *MainWindow::createButton(char *caption, int width, int height) @@ -237,14 +216,8 @@ QLabel *MainWindow::createLabel(char *caption, int width, int height)  void MainWindow::message(char *msg)  { -  lbl_status->setText(msg); -} - -void MainWindow::logo_clicked() -{ -  if(aboutwindow) -    delete aboutwindow; -  aboutwindow = new AboutWindow(0, "About MIAV-Grab"); +  //  lbl_status->setText(msg); +  status->message(msg);  }  void MainWindow::cpr_clicked() @@ -254,7 +227,7 @@ void MainWindow::cpr_clicked()    }    // Create and call the CPRQueryDialog. -  CPRQueryDialog dlg(lbl_cpr, lbl_name, this, "CPRQueryDialog"); +  CPRQueryDialog dlg(lbl_cpr, lbl_name, this, "CPRQueryDialog", status);    if(dlg.exec() == 0) {      printf("Cancel!\n"); diff --git a/src/mainwindow.h b/src/mainwindow.h index 9955cb4..88e924e 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -34,8 +34,8 @@ using namespace std;  #include <qwidget.h>  #include <qlabel.h>  #include <qpushbutton.h> +#include <qstatusbar.h> -#include "aboutwindow.h"  #include "videowidget.h"  #include "camera.h"  #include "cprquerydialog.h" @@ -55,7 +55,6 @@ public:  public slots:    void cpr_clicked(); -  void logo_clicked();    void rec_clicked();    void shoot_clicked();    void freeze_clicked(); @@ -66,8 +65,6 @@ private:    Camera *camera;    Error *cam_error; -  AboutWindow *aboutwindow; -      QPixmap *pix_camera;    QPixmap *pix_record;    QPixmap *pix_stop; @@ -75,7 +72,7 @@ private:    QPixmap *pix_logo;    QLabel *lbl_version; -  QLabel *lbl_status; +  //  QLabel *lbl_status;    QLabel *lbl_cpr;    QLabel *lbl_name; @@ -87,6 +84,8 @@ private:    QPushButton *btn_rec;    QPushButton *btn_shoot;    QPushButton *btn_freeze; + +  QStatusBar *status;    VideoWidget *img_live; | 
