Program Listing for File python_cmd.h

Return to documentation for file (/data/pc/git/control/controller-app/src/python_cmd.h)

#ifndef PEEL_PYTHON_CMD_H
#define PEEL_PYTHON_CMD_H

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

#include "taketreemodel.h"
#include "slate.h"
#include "pysideproperty.h"
#include "python_device.h"
#include "loadPlugins.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();

    void saveAs(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(QStringList);

    void addShot(QString, QString);


    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);


    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);

    QMap<QString, QString> getMetaValues();

    void setMetaValue(QString, QString);

    void clearMetaValues();

    void showLightbulb(bool);

    void lightbulbOn(bool);

    void writeLog(QString);

    QStringList takes();

    void setTakes(const QStringList&);

    void setTakeModel(TakeTreeModel*);

    int createDevice(const QString& idenifier);

    bool configureDevice(int deviceId, const QString& settings);

    QString deviceCommand(int deviceId, const QString& cmd);

    void setDeviceEnabled(int deviceId, int state);

    int getDeviceEnabled(int deviceId);

    bool deleteDevice(int deviceId);

    QStringList getPluginDevices();

    void setUserData(QString take, QString data);

    int getTakeCount();

    QMap <QString, QString> getTakeData(int id);

    Plugins* plugins;

    TakeTreeModel* takeModel;

    void record();

    void play();

    void stop();

    void createMark(QString);

    void prev();

    void next();

    void prevShot();

    void nextShot();

    void gotoShot(int);

    void setShot(QString);

    void setTakeNumber(int);

    void setTag(QString);

    QWidget* timecodeWidget(QWidget *parent, QString fontName, QString fontStyle);

    QString getTimecode();

    void notifySlateClosed();

private:
    QString audioDevice;

    QString deviceData;

    QList <Device> devices;

    QString currentFile;

    QString dataDirectory;

    const QObject* mainWindow;

    QStringList takeList;

    QList<TimecodeWidget*> timecodeWidgets;

    QString currentTimecode;


public Q_SLOTS:
    void setCurrentTakes(QStringList);
    void setTimecode(QString);
    void setRecording(bool);

Q_SIGNALS:
    void doWrite(QString);
    void doDeviceTypes(QStringList);
    void doSetDevices(QList<Device>);
    void doUpdateDevice(Device);
    void doSetSubjects(QStringList);
    void doClearShotList();
    void doAddShot(QStringList);
    void changeAudioSettings(int sampleRate, int sampleSize);
    void doStartAudioRecording(QString, QString);
    void doStopAudioRecording();
    void doChangeDataDirectory(QString);
    void doLoadFile(QString);
    void doSave();
    void doSaveFile(QString);
    void doShowLightbulb(bool);
    void doLightbulbOn(bool);
    void doWriteLog(QString);
    void devicesChanged();
    void doRecord();
    void doPlay();
    void doStop();
    void doCreateMark(QString);
    void doPrev();
    void doNext();
    void doPrevShot();
    void doNextShot();
    void doGotoShot(int);
    void doSetShot(QString);
    void doSetTakeNumber(int);
    void doSetTag(QString);
    void doSlateClosed();





public:
    QList<QString> currentSelectedTakes;

    QMap <QString, QString> meta;

};


#endif // PEEL_PYTHON_CMD_H