Program Listing for File python_cmd.h

Return to documentation for file (src\python_cmd.h)

#ifndef PEEL_PYTHON_CMD_H
#define PEEL_PYTHON_CMD_H

#include <QString>
#include <QObject>
#include <QThread>

#include <QMap>

#include "pysideproperty.h"
#include "python_device.h"

class PeelPython : public QObject
{
    Q_OBJECT

public:

    PeelPython(QObject* parent = nullptr);

    ~PeelPython();

    // API CALLS

    QList<QString> selectedTakes();


    void write(const QString&);

    void flush();

    void load(QString);

    void save(QString);

    void setDevices(QList<Device*>);

    void updateDevice(Device*);

    void setDeviceData(QString);

    QString getDeviceData();

    void clearDevices();

    void addDevice(Device);

    Device* newDevice() { return new Device(); }

    void setSubjects(const QStringList& subjects);

    void clearShotList();

    void addShot(QString name, QString description);


    QMap<QString, QString> currentConfig;

    //QList<int> sampleRates();
    //QList<int> sampleSizes();

    void setAudioSettings(int sampleRate, int sampleSize);

    void startAudioRecording(QString deviceName, QString takeName);

    void stopAudioRecording();

    QString currentAudioDevice();

    void setCurrentAudioDevice(QString);

    void motiveCommand(QString);

    const QObject* getMainWindow();

    // Set the value of mainWindow, used by getMainWindow (not exposed to python)
    void setMainWindowValue(const QObject*);

    QString getCurrentFile();

    // Set the current peelcap file (not exposed to python)
    void setCurrentFileValue(QString);

    QString getDataDirectory();

    void setDataDirectory(QString);

    // Set the value of dataDirectory, used by getDataDirectory (not exposed to python)
    void setDataDirectoryValue(QString);

    // Get a list of custom name=value attributes saved in the .peelcap file
    QMap<QString, QString> getMetaValues();

    // Set a name=value to save in the peelcap fiel.
    void setMetaValue(QString, QString);

    // Clear the custom attributes
    void clearMetaValues();

private:
    QString audioDevice;

    QString deviceData;

    QList <Device> devices;

    QString currentFile;

    QString dataDirectory;

    const QObject* mainWindow;


public Q_SLOTS:
    void setCurrentTakes(QStringList);

Q_SIGNALS:
    void doWrite(QString);
    void doDeviceTypes(QStringList);
    void doSetDevices(QList<Device>);
    void doUpdateDevice(Device);
    void doSetSubjects(QStringList);
    void doClearShotList();
    void doAddShot(QString, QString);
    void changeAudioSettings(int sampleRate, int sampleSize);
    void doStartAudioRecording(QString, QString);
    void doStopAudioRecording();
    void doMotiveCommand(QString);
    void doChangeDataDirectory(QString);
    void doLoadFile(QString);
    void doSaveFile(QString);


public:
    QList<QString> currentSelectedTakes;

    QMap <QString, QString> meta;

};


#endif // PEEL_PYTHON_CMD_H