/*************************************************************************** recording-monitor.h - description ------------------- begin : Mo Sep 1 2003 copyright : (C) 2003 by Martin Witte email : witte@kawo1.rwth-aachen.de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef KRADIO_RECORDING_MONITOR_H #define KRADIO_RECORDING_MONITOR_H #ifdef HAVE_CONFIG_H #include #endif #include #include "../../src/include/widgetplugins.h" #include "../../src/include/soundstreamclient_interfaces.h" //#include class TQLabel; class TQPushButton; class TQCheckBox; class RecordingDataMonitor; class KComboBox; class RecordingMonitor : public TQWidget, public WidgetPluginBase, public ISoundStreamClient //public IRecordingClient { TQ_OBJECT public: RecordingMonitor(const TQString &name); virtual ~RecordingMonitor(); const TQString &name() const { return PluginBase::name(); } TQString &name() { return PluginBase::name(); } virtual TQString pluginClassName() const { return "RecordingMonitor"; } // WidgetPluginBase public: virtual void saveState (TDEConfig *) const; virtual void restoreState (TDEConfig *); virtual bool connectI(Interface *i); virtual bool disconnectI(Interface *i); virtual ConfigPageInfo createConfigurationPage(); virtual AboutPageInfo createAboutPage(); // IRecordingClient void noticeConnectedI (ISoundStreamServer *s, bool pointer_valid); bool noticeSoundStreamCreated(SoundStreamID id); bool noticeSoundStreamClosed(SoundStreamID id); bool noticeSoundStreamChanged(SoundStreamID id); bool startRecordingWithFormat(SoundStreamID id, const SoundFormat &sf, SoundFormat &real_format); bool stopRecording(SoundStreamID id); bool noticeSoundStreamData(SoundStreamID id, const SoundFormat &sf, const char *data, size_t size, size_t &consumed_size, const SoundMetaData &md); public slots: void toggleShown() { WidgetPluginBase::pToggleShown(); } void showOnOrgDesktop(); void show(); void hide(); void slotStartStopRecording(); void slotStreamSelected(int idx); protected: virtual void updateRecordingButton(); virtual void showEvent(TQShowEvent *); virtual void hideEvent(TQHideEvent *); const TQWidget *getWidget() const { return this; } TQWidget *getWidget() { return this; } protected: TQLabel *m_labelSize; TQLabel *m_labelTime; TQLabel *m_labelRate; TQLabel *m_labelFileName; TQLabel *m_labelStatus; TQPushButton *m_btnStartStop; KComboBox *m_comboSoundStreamSelector; TQMap m_SoundStreamID2idx; TQMap m_idx2SoundStreamID; SoundStreamID m_currentStream; RecordingDataMonitor *m_dataMonitor; bool m_recording; TQString m_defaultStreamDescription; }; #endif