static void eventCallback(struct event_handler_args args) { CHNODE *pNode = (CHNODE *)ca_puser(args.chid); AttachChannelAccess *pacacc = (AttachChannelAccess *)pNode->acacc; pNode->dbfType = ca_field_type(pNode->ch_id); QString pvname = ca_name(args.chid); QString strvalue; unsigned int chindex = pNode->chindex; //qDebug("Event Callback...:PVName(%s)", pvname.toStdString().c_str()); if( args.status != ECA_NORMAL ) { printChidInfo(args.chid,"eventCallback"); } else { QString objName = pNode->objname; if(objName.contains("CATableList", Qt::CaseInsensitive) == true) { struct dbr_time_string *pdata = (struct dbr_time_string*)args.dbr; QTableWidgetItem *pItem = pNode->pItem; strvalue = QString(pdata->value); pItem->setText(strvalue); CATableList *pTable = (CATableList*)pItem->tableWidget(); pItem->setStatusTip(QString("PVname : ").append(pvname).append(QString(", Value: ")).append(strvalue)); pTable->TableUpdate(); return; }; //++leesi switch(pNode->dbrequest) { //case DBR_GR_CHAR: case DBR_TIME_STRING: { struct dbr_time_string *pdata = (struct dbr_time_string*)args.dbr; strvalue = QString(pdata->value); pacacc->UpdateObj(pNode->objname, strvalue, pdata->severity); } break; case DBR_GR_DOUBLE: default: { struct dbr_gr_double* pdata = (struct dbr_gr_double*)args.dbr; if(objName.contains("CAPopUp", Qt::CaseInsensitive) == true) qDebug("PVName: %s, Value:%f", pvname.toStdString().c_str(), pdata->value); #if 0 //for test,,, static int count = 0; qDebug("CAMon Value:%f, count(%d)",pdata->value, count++); #endif pacacc->UpdateObj(pNode->objname, pdata->value, pdata->severity, pdata->precision); } break; }; }; };
void MPConfig::songChanged(int flags) { // Is it simply a midi controller value adjustment? Forget it. if (flags == SC_MIDI_CONTROLLER) return; // Get currently selected index... int no = -1; QTableWidgetItem* sitem = mdevView->currentItem(); if (sitem) { QString id = sitem->tableWidget()->item(sitem->row(), DEVCOL_NO)->text(); no = atoi(id.toLatin1().constData()) - 1; if (no < 0 || no >= kMaxMidiPorts) no = -1; } sitem = 0; for (int i = kMaxMidiPorts - 1; i >= 0; --i) { mdevView->blockSignals(true); // otherwise itemChanged() is triggered and bad things happen. MidiPort* port = &midiPorts[i]; MidiDevice* dev = port->device(); QString s; s.setNum(i + 1); QTableWidgetItem* itemno = mdevView->item(i, DEVCOL_NO); QTableWidgetItem* itemstate = mdevView->item(i, DEVCOL_STATE); itemstate->setText(port->state()); QTableWidgetItem* iteminstr = mdevView->item(i, DEVCOL_INSTR); QString instrumentName = port->instrument() ? port->instrument()->iname() : tr("<unknown>"); iteminstr->setText(instrumentName); iteminstr->setToolTip(instrumentName); QTableWidgetItem* itemname = mdevView->item(i, DEVCOL_NAME); QTableWidgetItem* itemgui = mdevView->item(i, DEVCOL_GUI); QTableWidgetItem* itemfb = mdevView->item(i, DEVCOL_CACHE_NRPN); QTableWidgetItem* itemrec = mdevView->item(i, DEVCOL_REC); QTableWidgetItem* itemplay = mdevView->item(i, DEVCOL_PLAY); QTableWidgetItem* itemout = mdevView->item(i, DEVCOL_OUTROUTES); QTableWidgetItem* itemin = mdevView->item(i, DEVCOL_INROUTES); QTableWidgetItem* itemdefin = mdevView->item(i, DEVCOL_DEF_IN_CHANS); itemdefin->setText(bitmap2String(port->defaultInChannels())); QTableWidgetItem* itemdefout = mdevView->item(i, DEVCOL_DEF_OUT_CHANS); itemdefout->setText(bitmap2String(port->defaultOutChannels())); mdevView->blockSignals(false); if (dev) { itemname->setText(dev->name()); itemname->setToolTip(dev->name()); // Is it a Jack midi device? Allow renaming. //if(dynamic_cast<MidiJackDevice*>(dev)) if (dev->deviceType() == MidiDevice::JACK_MIDI) itemname->setFlags(Qt::ItemIsEditable | Qt::ItemIsEnabled); if (dev->rwFlags() & 0x2) { itemrec->setIcon(dev->openFlags() & 2 ? QIcon(*dotIcon) : QIcon(*dothIcon)); } else { itemrec->setIcon(QIcon(QPixmap())); } if (dev->rwFlags() & 0x1) { itemplay->setIcon(dev->openFlags() & 1 ? QIcon(*dotIcon) : QIcon(*dothIcon)); } else itemplay->setIcon(QIcon(QPixmap())); itemfb->setIcon(dev->cacheNRPN() ? QIcon(*dotIcon) : QIcon(*dothIcon)); } else { itemname->setText(tr("<none>")); itemname->setToolTip(""); itemgui->setIcon(QIcon(*dothIcon)); itemrec->setIcon(QIcon(QPixmap())); itemplay->setIcon(QIcon(QPixmap())); itemfb->setIcon(QIcon(QPixmap())); } // falkTX, we don't want this in the connections manager //if (port->hasGui()) //{ // itemgui->setIcon(port->guiVisible() ? QIcon(*dotIcon) : QIcon(*dothIcon)); //} //else //{ itemgui->setIcon(QIcon(QPixmap())); //} iteminstr->setIcon(QIcon(*buttondownIcon)); itemname->setIcon(QIcon(*buttondownIcon)); //if(dev && dynamic_cast<MidiJackDevice*>(dev)) if (dev && dev->deviceType() == MidiDevice::JACK_MIDI) { //item->setPixmap(DEVCOL_ROUTES, *buttondownIcon); //item->setText(DEVCOL_ROUTES, tr("routes")); // p3.3.55 if (dev->rwFlags() & 1) //if(dev->openFlags() & 1) { itemout->setIcon(QIcon(*buttondownIcon)); if (port->device() && !port->device()->outRoutes()->empty()) { RouteList* list = port->device()->outRoutes(); if (!list->empty()) { iRoute r = list->begin(); itemout->setText(r->name()); } } else { itemout->setText(tr("out")); } //if (dev->openFlags() & 1) // itemout->setText(tr("out")); } if (dev->rwFlags() & 2) //if(dev->openFlags() & 2) { itemin->setIcon(QIcon(*buttondownIcon)); if (dev->openFlags() & 2) itemin->setText(tr("in")); } } if (i == no) sitem = itemno; } if (sitem) { mdevView->setCurrentItem(sitem); } }
int TableWidgetItem::tableWidget( lua_State * L )// const * QTableWidget { QTableWidgetItem* lhs = ValueInstaller2<QTableWidgetItem>::check( L, 1 ); ObjectPeer::pushPeer( L, lhs->tableWidget(), true ); return 1; }