#ifndef INCLUDED_QECHAINOPERATORINPUT_H #define INCLUDED_QECHAINOPERATORINPUT_H #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include #include #include #include "qeinput.h" class QLabel; class QTabWidget; class QEObjectMap; class QEOperatorConfiguration; /** * Null chain operator. */ class QEEmptyChainOperator : public CHAIN_OPERATOR { public: virtual std::string name(void) const { return(""); } virtual std::string parameter_names(void) const { return(""); } #if ECA_LIBECASOUND_VERSION > 7 virtual parameter_t get_parameter(int param) const { return(0.0f); } virtual void set_parameter(int param, CHAIN_OPERATOR::parameter_t value) { } #else virtual parameter_type get_parameter(int param) const { return(0.0f); } virtual void set_parameter(int param, CHAIN_OPERATOR::parameter_type value) { } #endif virtual void init(SAMPLE_BUFFER *insample) { } virtual void process(void) { } #if ECA_LIBECASOUND_VERSION > 7 QEEmptyChainOperator* clone(void) const { return new QEEmptyChainOperator(*this); } QEEmptyChainOperator* new_expr(void) const { return new QEEmptyChainOperator(); } #else QEEmptyChainOperator* clone(void) { return new QEEmptyChainOperator(*this); } QEEmptyChainOperator* new_expr(void) { return new QEEmptyChainOperator(); } #endif }; /** * Chain operator input widget */ class QEChainOperatorInput : public QEInput { Q_OBJECT public: QEChainOperatorInput (QWidget *parent = 0, const char *name = 0); ~QEChainOperatorInput (void); /** * Returns the resulting chain operator object instance */ const CHAIN_OPERATOR* result(void) const { return(chainop_repp); } public slots: virtual void update_results(void); private slots: void parameter_change_event(void); void operator_change_event(void); signals: void parameters_changed(void); void operator_changed(void); private: CHAIN_OPERATOR* chainop_repp; CHAIN_OPERATOR* default_chainop_repp; QEOperatorConfiguration* opconf_repp; QTabWidget* maptab_rep; std::vector omap_inputs; QLabel* cop_desc; std::vector paramlist; std::vector inputlist; /** * Creates and initializes widget layout */ void init_layout(void); }; #endif