GNU Radio's TEST Package
qt_sink_c_impl.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2013-2014 Sylvain Munaut <tnt@246tNt.com>
4  *
5  * This is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 3, or (at your option)
8  * any later version.
9  *
10  * This software is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this software; see the file COPYING. If not, write to
17  * the Free Software Foundation, Inc., 51 Franklin Street,
18  * Boston, MA 02110-1301, USA.
19  */
20 
21 
22 #ifndef INCLUDED_GR_FOSPHOR_QT_SINK_C_IMPL_H
23 #define INCLUDED_GR_FOSPHOR_QT_SINK_C_IMPL_H
24 
26 
27 #include "base_sink_c_impl.h"
28 
29 namespace gr {
30  namespace fosphor {
31 
32  class QGLSurface;
33 
34  /*!
35  * \brief Qt version of fosphor sink (implementation)
36  * \ingroup fosphor
37  */
38  class qt_sink_c_impl : public qt_sink_c, public base_sink_c_impl
39  {
40  friend class QGLSurface;
41 
42  private:
43  QGLSurface *d_gui;
44 
45  protected:
46  /* Delegated implementation of GL context management */
47  void glctx_init();
48  void glctx_swap();
49  void glctx_poll();
50  void glctx_fini();
51  void glctx_update();
52 
53  public:
54  qt_sink_c_impl(QWidget *parent=NULL);
55 
56  void exec_();
57  QWidget* qwidget();
58 
59 #if defined(PY_VERSION) || defined(SWIGPYTHON)
60  PyObject* pyqwidget();
61 #else
62  void* pyqwidget();
63 #endif
64  };
65 
66  } // namespace fosphor
67 } // namespace gr
68 
69 #endif /* INCLUDED_GR_FOSPHOR_QT_SINK_C_IMPL_H */
70 
gr::fosphor::QGLSurface
Definition: QGLSurface.h:33
gr::fosphor::qt_sink_c_impl
Qt version of fosphor sink (implementation)
Definition: qt_sink_c_impl.h:38
gr::fosphor::qt_sink_c_impl::qt_sink_c_impl
qt_sink_c_impl(QWidget *parent=NULL)
gr::fosphor::qt_sink_c_impl::glctx_swap
void glctx_swap()
fosphor
Definition: private.h:43
gr::fosphor::qt_sink_c_impl::glctx_update
void glctx_update()
gr::fosphor::qt_sink_c_impl::glctx_fini
void glctx_fini()
gr::fosphor::qt_sink_c_impl::qwidget
QWidget * qwidget()
gr::fosphor::base_sink_c_impl
Base class for fosphor sink implementation.
Definition: base_sink_c_impl.h:43
gr::fosphor::qt_sink_c_impl::glctx_init
void glctx_init()
gr::fosphor::qt_sink_c_impl::pyqwidget
void * pyqwidget()
gr::fosphor::qt_sink_c_impl::glctx_poll
void glctx_poll()
base_sink_c_impl.h
gr::fosphor::qt_sink_c
Qt version of fosphor sink.
Definition: qt_sink_c.h:40
gr::fosphor::qt_sink_c_impl::exec_
void exec_()
gr
Definition: base_sink_c.h:30
qt_sink_c.h