X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fview%2Fdecodesignal.h;h=c1b53d5711fc87a9abefe8fcd5bd85db5c8896aa;hp=e52c7947c1259571d3f997acb3c0812ba3953197;hb=38db1a87b23e84068c7f176d5a189564078a6260;hpb=82c7f64018db2a90f44704e55ba469151522762f diff --git a/pv/view/decodesignal.h b/pv/view/decodesignal.h index e52c7947..c1b53d57 100644 --- a/pv/view/decodesignal.h +++ b/pv/view/decodesignal.h @@ -18,53 +18,70 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef PULSEVIEW_PV_DECODESIGNAL_H -#define PULSEVIEW_PV_DECODESIGNAL_H +#ifndef PULSEVIEW_PV_VIEW_DECODESIGNAL_H +#define PULSEVIEW_PV_VIEW_DECODESIGNAL_H #include "trace.h" #include namespace pv { + +namespace data { +class Decoder; +} + namespace view { class DecodeSignal : public Trace { -public: - DecodeSignal(pv::SigSession &session, srd_decoder *const dec); + Q_OBJECT - void init_context_bar_actions(QWidget *parent); +private: + static const QColor DecodeColours[4]; + +public: + DecodeSignal(pv::SigSession &session, + boost::shared_ptr decoder, int index); bool enabled() const; + const boost::shared_ptr& decoder() const; + + void set_view(pv::view::View *view); + /** - * Paints the trace with a QPainter + * Paints the background layer of the trace with a QPainter + * @param p the QPainter to paint into. + * @param left the x-coordinate of the left edge of the signal. + * @param right the x-coordinate of the right edge of the signal. + **/ + void paint_back(QPainter &p, int left, int right); + + /** + * Paints the mid-layer of the trace with a QPainter * @param p the QPainter to paint into. - * @param y the y-coordinate to draw the signal at * @param left the x-coordinate of the left edge of the signal * @param right the x-coordinate of the right edge of the signal - * @param scale the scale in seconds per pixel. - * @param offset the time to show at the left hand edge of - * the view in seconds. **/ - void paint(QPainter &p, int y, int left, int right, - double scale, double offset); + void paint_mid(QPainter &p, int left, int right); - const std::list get_context_bar_actions(); + QMenu* create_context_menu(QWidget *parent); -private: + void delete_pressed(); - /** - * When painting into the rectangle, calculate the y - * offset of the zero point. - **/ - int get_nominal_offset(const QRect &rect) const; +private slots: + void on_new_decode_data(); + + void on_delete(); private: - srd_decoder *const _decoder; + boost::shared_ptr _decoder; + + uint64_t _decode_start, _decode_end; }; } // namespace view } // namespace pv -#endif // PULSEVIEW_PV_DECODESIGNAL_H +#endif // PULSEVIEW_PV_VIEW_DECODESIGNAL_H