void NoDank::keys(int key) { switch (key) { case '1': addEllipse(); break; case '2': changeAddMirror(); break; case '3': for(int i=0; i<ellipses.size(); i++) { ellipses[i]->LFO_alpha = !ellipses[i]->LFO_alpha; } break; case '4': oneFrame(); break; case '5': oneFrameLarger(); break; case '6': halfTime(); break; default: break; } }
void NoDank::MidiFunc(ofxMidiMessage msg) { if(msg.status == MIDI_CONTROL_CHANGE) { if(msg.control == 1) visualizer->setAlpha(ofMap(msg.value, 0, 127, 8, 255)); } if(msg.status == 144) { switch (msg.pitch) { case 36: addEllipse(); break; case 37: break; case 38: break; case 39: break; case 40: LFO_alpha(); break; case 41: oneFrame(); break; case 42: oneFrameLarger(); break; case 44: changeAddMirror(); break; case 48: deleteCircles(); break; case 50: halfTime(); break; default: break; } } }
TimelineWidget::TimelineWidget(QWidget* parent) : QWidget(parent), m_timelineView(NULL), m_timeRate(1.0), m_paused(true) { m_timelineView = new TimelineView(this); connect(m_timelineView, SIGNAL(currentTimeChanged(double)), this, SIGNAL(currentTimeChanged(double))); QWidget* controls = new QWidget(this); controls->setContentsMargins(0, 0, 0, 0); QHBoxLayout* controlsLayout = new QHBoxLayout(controls); QLabel* zoomLabel = new QLabel(controls); zoomLabel->setText("Zoom: " "<a href=\"0.04167\">1h</a> " "<a href=\"0.08333\">6h</a> " "<a href=\"0.5\">12h</a> " "<a href=\"1\">1d</a> " "<a href=\"5\">5d</a> " "<a href=\"10\">10d</a> " "<a href=\"30\">1m</a> " "<a href=\"180\">6m</a> " "<a href=\"365\">1y</a> " "<a href=\"all\">all</a>"); QToolBar* toolbar = new QToolBar(controls); toolbar->setIconSize(QSize(24, 24)); toolbar->setMaximumHeight(24); toolbar->setMovable(false); toolbar->setFloatable(false); toolbar->setContentsMargins(0, 0, 0, 0); QAction* reverseTimeAction = new QAction(QIcon(":/icons/timeline-reverse.png"), tr("Reverse time"), toolbar); QAction* slowTimeAction = new QAction(QIcon(":/icons/timeline-slower.png"), tr("10x slower"), toolbar); QAction* halfTimeAction = new QAction(QIcon(":/icons/timeline-half.png"), tr("2x slower"), toolbar); QAction* pauseAction = new QAction(QIcon(":/icons/timeline-pause.png"), tr("Pause time"), toolbar); QAction* realTimeAction = new QAction(QIcon(":/icons/timeline-realtime.png"), tr("Real time"), toolbar); QAction* doubleTimeAction = new QAction(QIcon(":/icons/timeline-double.png"), tr("2x faster"), toolbar); QAction* fastTimeAction = new QAction(QIcon(":/icons/timeline-faster.png"), tr("10x faster"), toolbar); connect(reverseTimeAction, SIGNAL(triggered()), this, SLOT(reverseTime())); toolbar->addAction(reverseTimeAction); connect(slowTimeAction, SIGNAL(triggered()), this, SLOT(slowerTime())); toolbar->addAction(slowTimeAction); connect(halfTimeAction, SIGNAL(triggered()), this, SLOT(halfTime())); toolbar->addAction(halfTimeAction); connect(pauseAction, SIGNAL(triggered()), this, SLOT(togglePaused())); toolbar->addAction(pauseAction); connect(realTimeAction, SIGNAL(triggered()), this, SLOT(realTime())); toolbar->addAction(realTimeAction); connect(doubleTimeAction, SIGNAL(triggered()), this, SLOT(doubleTime())); toolbar->addAction(doubleTimeAction); connect(fastTimeAction, SIGNAL(triggered()), this, SLOT(fasterTime())); toolbar->addAction(fastTimeAction); controlsLayout->addWidget(toolbar); controlsLayout->addStretch(1); controlsLayout->addWidget(zoomLabel); controls->setLayout(controlsLayout); connect(zoomLabel, SIGNAL(linkActivated(const QString&)), this, SLOT(setZoom(const QString&))); QVBoxLayout* layout = new QVBoxLayout(this); layout->addWidget(m_timelineView); layout->addWidget(controls); //layout->addLayout(controlsLayout); layout->setContentsMargins(0, 0, 0, 0); this->setLayout(layout); this->show(); m_timelineView->setTimeRange(0.0, 5.0); }