void QuotesTableView::onSendRequest(bool subscribe)
{
    QModelIndexList idxs = selectedIndexes();
    if( idxs.empty() ) 
        return;

    qint16 row = idxs.begin()->row();
    if( row < 0)
        return;

    Instrument inst = model()->getByOrderRow(row);
    if( inst.second != -1 )
    {
        bool sendSubscription = false;
        QSharedPointer<QReadLocker> autolock;
        Snapshot* snap = model()->getSnapshot(model()->getByOrderRow(row).first.c_str(),autolock);
        if(snap) 
            sendSubscription = (snap->statuscode_ & Snapshot::StatUnSubscribed);
        autolock.reset();

        if( sendSubscription && subscribe)
            emit model()->activateRequest(inst);
        else if( !(sendSubscription || subscribe) )
            emit model()->activateRequest( Instrument("Disable_" + inst.first, inst.second) );
        else
        { /*do nothing */}
    }
}
const Instrument Instrument::randomWave()
{
	int mode = rand() % Instrument::numberOfWaves();	

	std::map<int, Harmonics> waveHarmonics;	
	waveHarmonics[0] = sawHarmonics(Instrument::maxHarmonicNumber());
	waveHarmonics[1] = squareHarmonics(Instrument::maxHarmonicNumber());
	waveHarmonics[2] = triangleHarmonics(Instrument::maxHarmonicNumber());

	return Instrument(waveHarmonics[mode]);
}
VOID Trace(TRACE trace, VOID *v)
{
    // Only instrument the main executable, we're not interested in anything in dynamic libraries.
    if (!traceFromExecutable(trace))
        return;

    for (BBL bbl = TRACE_BblHead(trace); BBL_Valid(bbl); bbl = BBL_Next(bbl))
    {
        for (INS ins = BBL_InsHead(bbl); INS_Valid(ins); ins = INS_Next(ins))
        {
            Instrument(ins);
        }
    }
}
示例#4
0
文件: Tacho.cpp 项目: JoergPfe/P2CAN
//blinker = 0 aus; blinker = 1 rechts; blinker = 2 links;
Tacho::Tacho(GLfloat kmStand, GLfloat Geschwindigkeit, int blinker, ITextur* textur)
{
    glPushMatrix();
    Instrument((GLfloat)kmStand,textur);
    //40
    
    glPushMatrix (); 
    if(blinker == 1)
    {
        glColor3f(0,1,0);
    }    
    else
    {
        glColor3f(0,0,0);
    }
    glTranslatef(-10,0,-2.25);
    glScalef (0.01, 0.01, 0.5);
    WriteText("40");
    glPopMatrix();
    //35
    glPushMatrix ();
    glColor3f(0,0,0);
    glRotatef(-22.5,0,0,1);
    glTranslatef(-10,0,-2.25);
    glRotatef(22.5,0,0,1);
    glScalef (0.01, 0.01, 0.5);
    WriteText("35");
    glPopMatrix();
    //30
    glPushMatrix();
    glColor3f(0,0,0);
    glRotatef(-45,0,0,1);
    glTranslatef(-10,0,-2.25);
    glRotatef(45,0,0,1);
    glScalef (0.01, 0.01, 1.5);
    WriteText("30");
    glPopMatrix();
    //25
    glPushMatrix();
    glColor3f(0,0,0);
    glRotatef(-67.5,0,0,1);
    glTranslatef(-10,0,-2.25);
    glRotatef(67.5,0,0,1);
    glScalef (0.01, 0.01, 0.5);
    WriteText("25");
    glPopMatrix();
    //20
    glPushMatrix();
    glColor3f(0,0,0);
    glRotatef(-90,0,0,1);
    glTranslatef(-10,0,-2.25);
    glRotatef(90,0,0,1);
    glScalef (0.01, 0.01, 0.5);
    WriteText("20");
    glPopMatrix();   
    glPopMatrix();
    //15
    glPushMatrix();
    glColor3f(0,0,0);
    glRotatef(-112.5,0,0,1);
    glTranslatef(-10,0,-2.25);
    glRotatef(112.5,0,0,1);
    glScalef (0.01, 0.01, 0.5);
    WriteText("15");
    glPopMatrix();   
    glPopMatrix();
    //10
    glPushMatrix();
    glColor3f(0,0,0);
    glRotatef(-135,0,0,1);
    glTranslatef(-10,0,-2.25);
    glRotatef(135,0,0,1);
    glScalef (0.01, 0.01, 0.5);
    WriteText("10");
    glPopMatrix();   
    glPopMatrix();
    //5
    glPushMatrix();
    glColor3f(0,0,0);
    glRotatef(-157.5,0,0,1);
    glTranslatef(-10,0,-2.25);
    glRotatef(157.5,0,0,1);
    glScalef (0.01, 0.01, 0.5);
    WriteText("5");
    glPopMatrix();   
    glPopMatrix();
    //0
    glPushMatrix();
    if(blinker == 2)
    {
        glColor3f(0,1,0);
    }
    else
    {
        glColor3f(0,0,0);
    }
    glTranslatef(10,0,-2.25);
    glScalef (0.01, 0.01, 0.5);
    WriteText("0");
    glPopMatrix();   
    glPopMatrix();
    //Quellen:http://stackoverflow.com/questions/5590381/easiest-way-to-convert-int-to-string-in-c
    std::stringstream ss;
    ss << Geschwindigkeit; 
    glPushMatrix();
    glColor3f(0,0,0);
    glTranslatef(1.2,-5,-2.25);
    glScalef (0.01, 0.01, 0.5);
    WriteText(ss.str());
    glPopMatrix();    
}
示例#5
0
文件: it.cpp 项目: cmicali/ztracker
void ITPattern::PackTo(ITPackedPattern& packed) {

    BYTE channelVariable = 0;
    BYTE maskVariable = 0;

    int curPos = 0;

    ITRowData row;  // used to keep track of last value in channels
    BYTE lastMask[MAX_PATTERN_CHANNELS];

    for (int i = 0; i < MAX_PATTERN_CHANNELS; i++)
        lastMask[i] = 0;

    packed.numRows = numRows;

    BYTE data[MAX_PACKED_PATTERN_DATA];

    // according to ITTECH.DOC, the packed pattern data plus 8 byte header will always
    // be less than 64k.

    for (int frame = 0; frame < numRows; frame++) {

        for (int channel = 0; channel < numChannels; channel++) {

            channelVariable = channel + 1;
            maskVariable = 0;

            if (Note(channel, frame) > 0) {
                
                // does note equal last note for this channel?
                if (Note(channel, frame) == row[channel].note)
                    maskVariable = maskVariable | 16;
                else
                    maskVariable = maskVariable | 1;
            }
                                                                

            if (Instrument(channel, frame) > 0) {

                if (Instrument(channel, frame) == row[channel].instrument)
                    maskVariable = maskVariable | 32;
                else
                    maskVariable = maskVariable | 2;
            }

            
            if (VolPan(channel, frame) != PATTERN_NULL_VALUE) {

                if (VolPan(channel, frame) == row[channel].volPan)
                    maskVariable = maskVariable | 64;
                else
                    maskVariable = maskVariable | 4;
            }

            if ((Command(channel, frame) != PATTERN_NULL_VALUE) ||
                (CommandValue(channel, frame) != PATTERN_NULL_VALUE)) {

                if ((Command(channel, frame) == row[channel].command) &&
                    (CommandValue(channel, frame) == row[channel].commandValue))
                    maskVariable = maskVariable | 128;
                else
                    maskVariable = maskVariable | 8;
            }


            if (maskVariable != lastMask[channel])
                channelVariable = channelVariable | 128;

            // update "last" values for this channel
            if (maskVariable != 0)
                lastMask[channel] = maskVariable;
            if (Note(channel, frame) != 0)
                row[channel].note = Note(channel, frame);
            if (Instrument(channel, frame) != 0)
                row[channel].instrument = Instrument(channel, frame);
            if (VolPan(channel, frame) != PATTERN_NULL_VALUE)
                row[channel].volPan = VolPan(channel, frame);
            if (Command(channel, frame) != PATTERN_NULL_VALUE)
                row[channel].command = Command(channel, frame);
            if (CommandValue(channel, frame) != PATTERN_NULL_VALUE)
                row[channel].commandValue = CommandValue(channel, frame);

            if (maskVariable == 0)
                continue;  // no info needed.
            
            data[curPos] = channelVariable;
            curPos++;

            if (channelVariable & 128) {
                data[curPos] = maskVariable;
                curPos++;
            }


            if (maskVariable & 1) {
                data[curPos] = Note(channel, frame);
                curPos++;
            }

            if (maskVariable & 2) {
                data[curPos] = Instrument(channel, frame);
                curPos++;
            }

            if (maskVariable & 4) {
                data[curPos] = VolPan(channel, frame);
                curPos++;
            }

            if (maskVariable & 8) {
                data[curPos] = Command(channel, frame);
                curPos++;
                data[curPos] = CommandValue(channel, frame);
                curPos++;
            }

        } // end of row

        data[curPos] = 0;
        curPos++;

    } // end of pattern

    packed.SetNewData(curPos, data);

}
示例#6
0
文件: part.cpp 项目: SSMN/MuseScore
Part::Part(Score* s)
      {
      _score = s;
      _show  = true;
      setInstrument(Instrument(), 0);     // default instrument
      }