1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
|
/*************************************************************************
RecordController.h - controller/state matching for the audio recorder
-------------------
begin : Sat Oct 04 2003
copyright : (C) 2003 by Thomas Eschenbacher
email : Thomas.Eschenbacher@gmx.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 RECORD_CONTROLLER_H
#define RECORD_CONTROLLER_H
#include "config.h"
#include <QObject>
#include "RecordState.h"
namespace Kwave
{
class RecordController: public QObject
{
Q_OBJECT
public:
/** Constructor */
RecordController();
/** Destructor */
~RecordController() override;
/** returns the name of a state */
const char *stateName(const Kwave::RecordState state);
public slots:
/**
* Informs the controller whether the recording engine has been
* successfully been initialized or recording cannot be started.
* @param initialized if true, recording can be started
*/
void setInitialized(bool initialized);
/**
*Informs the controller whether the signal is empty or not
* @param empty if true, nothing has been recorded
*/
void setEmpty(bool empty);
/**
* Enable the prerecording. Has to be called before any status
* change to enable/disable the prerecording mode
*
* @param enable if true, enable prerecording
*/
void enablePrerecording(bool enable);
/** Clear all recorded data and prepare for new recording */
void actionReset();
/** Stop the recording */
void actionStop();
/** Pause the recording */
void actionPause();
/** Start the recording */
void actionStart();
/** The device has started recording */
void deviceRecordStarted();
/** The device buffer contains data */
void deviceBufferFull();
/** The record trigger has been reached */
void deviceTriggerReached();
/** The device has stopped recording */
void deviceRecordStopped(int);
/** The recording trigger has been enabled/disabled */
void enableTrigger(bool enable);
signals:
/** emitted when the state of the recording changed */
void stateChanged(Kwave::RecordState state);
/** All recorded data has to be cleared */
void sigReset(bool &accepted);
/** Recording should start */
void sigStartRecord();
/** Recording should stop */
void sigStopRecord(int errorcode);
private:
/** current state of the recording engine */
Kwave::RecordState m_state;
/**
* state of the recording engine after finishing the last action, not
* needed for all state changes.
*/
Kwave::RecordState m_next_state;
/** use a trigger */
bool m_trigger_set;
/** use prerecording */
bool m_enable_prerecording;
/** if true the current file is empty */
bool m_empty;
};
}
#endif /* RECORD_CONTROLLER_H */
//***************************************************************************
//***************************************************************************
|