/* WinCycle.h
*
*
* this file is part of:
*
* Cyclone --- Loop Giant
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* Sergio Atzori, 2010
*
*
*/
#ifndef WINCYCLE_H
#define WINCYCLE_H
#include <QMainWindow>
#include <QList>
#include "AuxCycle.h"
#include "CyTab.h"
#include "CyUndo.h"
#include "CyMidi.h"
#include "CyUi.h"
#include "CyLoop.h"
#include "JackThread.h"
#include "MidiThread.h"
#include "Dialogs.h"
class QAction;
class QTableWidget;
class QString;
class QLabel;
class CyUndo;
class WinCycle : public QMainWindow
{
Q_OBJECT
public:
WinCycle(QString file);
void printOutput(QString string);
void refreshPaste();
bool closeProject();
void midiLearnButton(int x, int y, int type);
void shutdownJ();
void start();
QString focus; /* now fixed to 'Resources', in future will switch among various widgets */
CyTabWidget *sessions;
CyUndo *undo;
MidiThread mix;
JackThread jax;
midicmd globalmidifunctions[13];
/*
globalmidifuncions[0] = global volume
globalmidifuncions[1] = previous loop
globalmidifuncions[2] = transport play
globalmidifuncions[3] = next loop
globalmidifuncions[4] = next session
globalmidifuncions[5] = transport stop
globalmidifuncions[6] = previous session
globalmidifuncions[7] = transport first
globalmidifuncions[8] = transport previous
globalmidifuncions[9] = transport rec
globalmidifuncions[10] = transport next
globalmidifuncions[11] = transport last
globalmidifuncions[12] = ?????????????
*/
QSlider *volume;
QPushButton *ejectL;
QPushButton *rewL;
QPushButton *firstL;
QPushButton *fwdL;
QPushButton *lastL;
QPushButton *recL;
QPushButton *playL;
QPushButton *stopL;
QPushButton *moveUp;
QPushButton *moveDown;
QPushButton *moveLeft;
QPushButton *moveRight;
QPushButton *nextUp;
QPushButton *nextDown;
QPushButton *nextLeft;
QPushButton *nextRight;
QPushButton *mute;
QAction *newProjectAction;
QAction *openProjectAction;
QAction *addFilesAction;
QAction *preferencesAction;
QAction *connectSooperlooper;
QAction *stopJack;
QAction *startJack;
QAction *exitAction;
QAction *helpAction;
QAction *websiteAction;
QAction *aboutAction;
QAction *aboutQtAction;
QAction *moveUpAction;
QAction *moveDownAction;
QAction *moveLeftAction;
QAction *moveRightAction;
QAction *nextUpAction;
QAction *nextDownAction;
QAction *nextLeftAction;
QAction *nextRightAction;
QAction *muteAction;
QAction *copyLoop;
QAction *copySession;
QAction *pasteLoop;
QAction *pasteSession;
QAction *saveProjectAction;
QAction *saveAsProjectAction;
QAction *removeLoopAction;
QAction *removeSessionAction;
QAction *renameSessionAction;
QAction *addSessionAction;
QAction *undoAction;
QAction *redoAction;
QShortcut *mfS;
QShortcut *mbS;
QShortcut *nextS;
QShortcut *prevS;
QShortcut *pL;
QShortcut *sL;
QShortcut *mfL;
QShortcut *mbL;
QShortcut *nextL;
QShortcut *prevL;
int windebug;
AuxCycle *aux;
CyMidi *cymidi;
CyUi *ui;
QLabel *durLabel;
bool gvpress;
public slots:
void jackUp();
void jackDown();
void stop(bool clrow = true);
void preferences(bool forced = false);
void stopJ();
void startJ();
private slots:
void generalVolume(int vl);
void generalVolumeUndo();
void csl();
void newProject();
void about();
void winMod(bool mod);
void muteButton(bool mt);
void refreshTitle(QString title);
private:
bool okToContinue();
void closeEvent(QCloseEvent *event);
void modifyMidiButtons(bool playing);
bool fStart;
};
#endif