diff options
Diffstat (limited to 'client')
| -rw-r--r-- | client/Makefile.am | 2 | ||||
| -rw-r--r-- | client/control.cc | 23 | ||||
| -rw-r--r-- | client/control.h | 6 | ||||
| -rw-r--r-- | client/decoder.cc | 8 | ||||
| -rw-r--r-- | client/mainwindow.cc | 52 | ||||
| -rw-r--r-- | client/mainwindow.h | 13 | ||||
| -rw-r--r-- | client/networksender.cc | 2 | ||||
| -rw-r--r-- | client/status.h | 2 | ||||
| -rw-r--r-- | client/xvaccelrenderer.cc | 2 | 
9 files changed, 47 insertions, 63 deletions
| diff --git a/client/Makefile.am b/client/Makefile.am index 4a49d35..07b217e 100644 --- a/client/Makefile.am +++ b/client/Makefile.am @@ -24,6 +24,7 @@ miav_client_SOURCES = $(shell ../tools/MocList cc ) \  	messagebox.cc \  	player.cc \  	splashscreen.cc \ +	statusbar.cc \  	svgloader.cc \  	videowidget.cc \  	yuv_draw.cc \ @@ -47,6 +48,7 @@ EXTRA_DIST = \  	messagebox.h \  	player.h \  	splashscreen.h \ +	statusbar.h \  	svgloader.h \  	videowidget.h \  	yuv_draw.h \ diff --git a/client/control.cc b/client/control.cc index d634039..4b5d2fa 100644 --- a/client/control.cc +++ b/client/control.cc @@ -33,6 +33,9 @@ Control::Control()    recording = false;    muted = false;    cpr = ""; + +  getfreeze = false; +  getshot = false;  }  Control::~Control() @@ -59,6 +62,7 @@ void Control::freeze()  {    mutex.lock();    frozen = true; +  getfreeze = true;    mutex.unlock();  } @@ -73,6 +77,7 @@ void Control::shoot()  {    mutex.lock();    frozen = false; +  getshot = true;    mutex.unlock();  } @@ -131,6 +136,24 @@ bool Control::isMuted()    return ismuted;  } +bool Control::getShot() +{ +  mutex.lock(); +  bool ret = getshot; +  getshot = false; +  mutex.unlock(); +  return ret; +} + +bool Control::getFreeze() +{ +  mutex.lock(); +  bool ret = getfreeze; +  getfreeze = false; +  mutex.unlock(); +  return ret; +} +  // Global control object  Control MIaV::control; diff --git a/client/control.h b/client/control.h index cdc8bc4..b2baba5 100644 --- a/client/control.h +++ b/client/control.h @@ -58,6 +58,9 @@ public:    //  bool isScreenshot();    //  void takeScreenshot(); +  bool getShot(); +  bool getFreeze(); +  private:    bool frozen;    bool recording; @@ -66,6 +69,9 @@ private:    QMutex mutex;    QString cpr; + +  bool getfreeze; +  bool getshot;  };  namespace MIaV { diff --git a/client/decoder.cc b/client/decoder.cc index d8bf430..11cee08 100644 --- a/client/decoder.cc +++ b/client/decoder.cc @@ -93,8 +93,8 @@ void Decoder::run()        sendersmutex.lock();        if(senders.isEmpty() == false)           senders.back()->pushFrame(frame, -                                  MIaV::control.isFrozen(), -                                  false); +                                  MIaV::control.getShot(), +                                  MIaV::control.getFreeze());        sendersmutex.unlock();      } else { @@ -171,8 +171,8 @@ Status Decoder::status()    // Get the server disk status etc.    if(senders.isEmpty() == false) senders.back()->getServerStatus(&s); -  fprintf(stderr, "Load: %d of %d - ", s.server_load, s.server_load_max); -  fprintf(stderr, "Space: %d of %d\n", s.server_diskspace, s.server_diskspace_max); +  //  fprintf(stderr, "Load: %d of %d - ", s.server_load, s.server_load_max); +  //  fprintf(stderr, "Space: %d of %d\n", s.server_diskspace, s.server_diskspace_max);    // Read out the queue sizes    QLinkedList<NetworkSender*>::iterator i; diff --git a/client/mainwindow.cc b/client/mainwindow.cc index a158c09..88eae63 100644 --- a/client/mainwindow.cc +++ b/client/mainwindow.cc @@ -131,25 +131,10 @@ MainWindow::MainWindow(Decoder *d)    layout->addWidget(history, 0,4, 3,1);    // Create statusbar -  statusbar = new QStatusBar(this); +  statusbar = new StatusBar(this, decoder);    outerlayout->addWidget(statusbar, 1,0, 1,1); -  server_diskspace = new QProgressBar(statusbar); -  server_diskspace->setRange(0, 100); -  server_diskspace->setValue(0); - -  server_load = new QProgressBar(statusbar); -  server_load->setRange(0, 100); -  server_load->setValue(0); -   -  messagefield = new QLabel(statusbar); - -  statusbar->addWidget(messagefield, 80); -  statusbar->addWidget(server_diskspace, 10); -  statusbar->addWidget(server_load, 10); -   -  //  statusbar->showMessage("Ready!"); -  startTimer(100); +  statusbar->message("Ready");    show();    //  setWindowState(Qt::WindowFullScreen); @@ -167,37 +152,6 @@ MainWindow::~MainWindow()    MIaV::info->log("MIaV is shut down.");  } -void MainWindow::timerEvent(QTimerEvent *event) -{ -  Status s = decoder->status(); -  QString statusmsg; - -  for(int cnt = 0; cnt < s.queue_sizes.size(); cnt++) { -    QString next; -    next.sprintf("(%d)", s.queue_sizes[cnt]); -    statusmsg.prepend(next); -  } - -  messagefield->setText(statusmsg); - -  if(s.server_diskspace_max != 0xffffffff) { -    server_diskspace->setRange(0, s.server_diskspace_max); -    server_diskspace->setValue(s.server_diskspace); -    server_diskspace->setEnabled(true); -  } else { -    server_diskspace->setRange(0, 0); -    server_diskspace->setEnabled(false); -  } - -  if(s.server_load_max != 0xffffffff) { -    server_load->setRange(0, s.server_load_max); -    server_load->setValue(s.server_load);   -    server_load->setEnabled(true); -  } else { -    server_load->setRange(0, 0); -    server_load->setEnabled(false); -  } -}  void MainWindow::about_clicked() @@ -220,9 +174,11 @@ void MainWindow::record_clicked()    if(MIaV::control.isRecording()) {      MIaV::control.stop();      btn_record->setIcon(*Icons::record); +    statusbar->message("Stopped");    } else {      MIaV::control.record();      btn_record->setIcon(*Icons::stop); +    statusbar->message("Recording");    }  } diff --git a/client/mainwindow.h b/client/mainwindow.h index 5b38397..250a8be 100644 --- a/client/mainwindow.h +++ b/client/mainwindow.h @@ -31,15 +31,14 @@  #include <QPushButton>  #include <QLabel> -#include <QStatusBar> - -#include <QProgressBar>  #include "historyframe.h"  #include "videowidget.h"  #include "decoder.h" +#include "statusbar.h" +  class MainWindow : public QWidget  {    Q_OBJECT @@ -49,9 +48,6 @@ public:    QWidget *getVideoWidget() { return video; } -protected: -  void timerEvent(QTimerEvent *event); -  public slots:    void cpr_clicked();    void clear_clicked(); @@ -82,10 +78,7 @@ private:    QLabel *lbl_name;    // Statusbar -  QStatusBar *statusbar; -  QLabel *messagefield; -  QProgressBar *server_diskspace; -  QProgressBar *server_load; +  StatusBar *statusbar;  };  #endif/*__MIAV_MAINWINDOW_H__*/ diff --git a/client/networksender.cc b/client/networksender.cc index dcb1919..11eb259 100644 --- a/client/networksender.cc +++ b/client/networksender.cc @@ -62,6 +62,8 @@ NetworkSender::~NetworkSender()  void NetworkSender::pushFrame(char* framedata, bool freeze, bool snapshot)  { +  printf("F: %d S %d\n", freeze, snapshot); +    Frame *frame = new Frame((unsigned char*)framedata);    frame->freeze = freeze;    frame->shoot = snapshot; diff --git a/client/status.h b/client/status.h index 6a7bca2..a3ccad7 100644 --- a/client/status.h +++ b/client/status.h @@ -27,6 +27,8 @@  #ifndef __MIAV_STATUS_H__  #define __MIAV_STATUS_H__ +#define UNKNOWN 0xffffffff +  class Status {  public:    QList<unsigned int> queue_sizes; diff --git a/client/xvaccelrenderer.cc b/client/xvaccelrenderer.cc index 984c57a..208ea04 100644 --- a/client/xvaccelrenderer.cc +++ b/client/xvaccelrenderer.cc @@ -208,7 +208,7 @@ uint8_t XvAccelRender::GUI_XvInit(QWidget * window, uint32_t w, uint32_t h)  			for (k = 0; (k < curai->num_ports) && !port; k++)  				{  					if (GUI_XvList(WDN, k + curai->base_id, &xv_format)) -						port = k + curai->base_id + 1; // FIXME: TODO: HACK: It works when +1 is applied! But why!? +						port = k + curai->base_id + 0; // FIXME: TODO: HACK: It works when +1 is applied! But why!?  				} | 
