本文整理汇总了C++中WaveformWidgetAbstract类的典型用法代码示例。如果您正苦于以下问题:C++ WaveformWidgetAbstract类的具体用法?C++ WaveformWidgetAbstract怎么用?C++ WaveformWidgetAbstract使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了WaveformWidgetAbstract类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: t
void WaveformWidgetFactory::swap() {
ScopedTimer t(QString("WaveformWidgetFactory::swap() %1waveforms")
.arg(m_waveformWidgetHolders.size()));
// Do this in an extra slot to be sure to hit the desired interval
if (!m_skipRender) {
if (m_type) { // no regular updates for an empty waveform
// Show rendered buffer from last render() run
//qDebug() << "swap() start" << m_vsyncThread->elapsed();
for (int i = 0; i < m_waveformWidgetHolders.size(); i++) {
WaveformWidgetAbstract* pWaveformWidget = m_waveformWidgetHolders[i].m_waveformWidget;
if (pWaveformWidget->getWidth() > 0) {
QGLWidget* glw = dynamic_cast<QGLWidget*>(pWaveformWidget->getWidget());
if (glw) {
m_vsyncThread->swapGl(glw, i);
}
}
//qDebug() << "swap x" << m_vsyncThread->elapsed();
}
}
}
//qDebug() << "swap end" << m_vsyncThread->elapsed();
m_vsyncThread->vsyncSlotFinished();
}
开发者ID:rsc449,项目名称:mixxx,代码行数:25,代码来源:waveformwidgetfactory.cpp
示例2: t
void WaveformWidgetFactory::swap() {
ScopedTimer t("WaveformWidgetFactory::swap() %1waveforms", m_waveformWidgetHolders.size());
// Do this in an extra slot to be sure to hit the desired interval
if (!m_skipRender) {
if (m_type) { // no regular updates for an empty waveform
// Show rendered buffer from last render() run
//qDebug() << "swap() start" << m_vsyncThread->elapsed();
for (int i = 0; i < m_waveformWidgetHolders.size(); i++) {
WaveformWidgetAbstract* pWaveformWidget = m_waveformWidgetHolders[i].m_waveformWidget;
if (pWaveformWidget->getWidth() > 0) {
QGLWidget* glw = dynamic_cast<QGLWidget*>(pWaveformWidget->getWidget());
// Don't swap invalid or invisible widgets. Prevents
// continuous log spew of "QOpenGLContext::swapBuffers()
// called with non-exposed window, behavior is undefined" on
// Qt5.
if (glw && glw->isValid() && glw->isVisible()) {
VSyncThread::swapGl(glw, i);
}
}
//qDebug() << "swap x" << m_vsyncThread->elapsed();
}
}
}
//qDebug() << "swap end" << m_vsyncThread->elapsed();
m_vsyncThread->vsyncSlotFinished();
}
开发者ID:MK-42,项目名称:mixxx,代码行数:28,代码来源:waveformwidgetfactory.cpp
示例3: createWaveformWidget
WaveformWidgetAbstract* WaveformWidgetFactory::createWaveformWidget(
WaveformWidgetType::Type type, WWaveformViewer* viewer) {
WaveformWidgetAbstract* widget = NULL;
if (viewer) {
if (CmdlineArgs::Instance().getSafeMode()) {
type = WaveformWidgetType::EmptyWaveform;
}
switch(type) {
case WaveformWidgetType::SoftwareWaveform:
widget = new SoftwareWaveformWidget(viewer->getGroup(), viewer);
break;
case WaveformWidgetType::HSVWaveform:
widget = new HSVWaveformWidget(viewer->getGroup(), viewer);
break;
case WaveformWidgetType::RGBWaveform:
widget = new RGBWaveformWidget(viewer->getGroup(), viewer);
break;
case WaveformWidgetType::QtSimpleWaveform:
widget = new QtSimpleWaveformWidget(viewer->getGroup(), viewer);
break;
case WaveformWidgetType::QtWaveform:
widget = new QtWaveformWidget(viewer->getGroup(), viewer);
break;
case WaveformWidgetType::GLSimpleWaveform:
widget = new GLSimpleWaveformWidget(viewer->getGroup(), viewer);
break;
case WaveformWidgetType::GLWaveform:
widget = new GLWaveformWidget(viewer->getGroup(), viewer);
break;
case WaveformWidgetType::GLRGBWaveform:
widget = new GLRGBWaveformWidget(viewer->getGroup(), viewer);
break;
case WaveformWidgetType::GLSLWaveform:
widget = new GLSLWaveformWidget(viewer->getGroup(), viewer);
break;
case WaveformWidgetType::GLVSyncTest:
widget = new GLVSyncTestWidget(viewer->getGroup(), viewer);
break;
default:
//case WaveformWidgetType::SoftwareSimpleWaveform: TODO: (vrince)
//case WaveformWidgetType::EmptyWaveform:
widget = new EmptyWaveformWidget(viewer->getGroup(), viewer);
break;
}
widget->castToQWidget();
if (!widget->isValid()) {
qWarning() << "failed to init WafeformWidget" << type << "fall back to \"Empty\"";
delete widget;
widget = new EmptyWaveformWidget(viewer->getGroup(), viewer);
widget->castToQWidget();
if (!widget->isValid()) {
qWarning() << "failed to init EmptyWaveformWidget";
delete widget;
widget = NULL;
}
}
}
return widget;
}
开发者ID:diveu,项目名称:mixxx,代码行数:60,代码来源:waveformwidgetfactory.cpp
示例4: notifyZoomChange
void WaveformWidgetFactory::notifyZoomChange(WWaveformViewer* viewer) {
WaveformWidgetAbstract* pWaveformWidget = viewer->getWaveformWidget();
if (pWaveformWidget != NULL && isZoomSync()) {
//qDebug() << "WaveformWidgetFactory::notifyZoomChange";
int refZoom = pWaveformWidget->getZoomFactor();
for (int i = 0; i < m_waveformWidgetHolders.size(); ++i) {
WaveformWidgetHolder& holder = m_waveformWidgetHolders[i];
if (holder.m_waveformViewer != viewer) {
holder.m_waveformViewer->setZoom(refZoom);
}
}
}
}
开发者ID:rsc449,项目名称:mixxx,代码行数:14,代码来源:waveformwidgetfactory.cpp
示例5: qDebug
bool WaveformWidgetFactory::setWidgetTypeFromHandle(int handleIndex) {
if (handleIndex < 0 && handleIndex > (int)m_waveformWidgetHandles.size()) {
qDebug() << "WaveformWidgetFactory::setWidgetType - invalid handle --> use of 'EmptyWaveform'";
// fallback empty type
setWidgetType(WaveformWidgetType::EmptyWaveform);
return false;
}
WaveformWidgetAbstractHandle& handle = m_waveformWidgetHandles[handleIndex];
if (handle.m_type == m_type) {
qDebug() << "WaveformWidgetFactory::setWidgetType - type already in use";
return true;
}
// change the type
setWidgetType(handle.m_type);
m_skipRender = true;
//qDebug() << "recreate start";
//re-create/setup all waveform widgets
for (int i = 0; i < m_waveformWidgetHolders.size(); i++) {
WaveformWidgetHolder& holder = m_waveformWidgetHolders[i];
WaveformWidgetAbstract* previousWidget = holder.m_waveformWidget;
TrackPointer pTrack = previousWidget->getTrackInfo();
//previousWidget->hold();
int previousZoom = previousWidget->getZoomFactor();
delete previousWidget;
WWaveformViewer* viewer = holder.m_waveformViewer;
WaveformWidgetAbstract* widget = createWaveformWidget(m_type, holder.m_waveformViewer);
holder.m_waveformWidget = widget;
viewer->setWaveformWidget(widget);
viewer->setup(holder.m_skinNodeCache, holder.m_skinContextCache);
viewer->setZoom(previousZoom);
// resize() doesn't seem to get called on the widget. I think Qt skips
// it since the size didn't change.
//viewer->resize(viewer->size());
widget->resize(viewer->width(), viewer->height());
widget->setTrack(pTrack);
widget->getWidget()->show();
viewer->update();
}
m_skipRender = false;
//qDebug() << "recreate done";
return true;
}
开发者ID:danlin,项目名称:mixxx,代码行数:47,代码来源:waveformwidgetfactory.cpp
注:本文中的WaveformWidgetAbstract类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论