Exemplo n.º 1
0
int CMuseDataNoteRecord::parseFromRecord(char *line)
{
	//information retrievalble from  col 13-43

	//1.Parse the sound-information from colums 1 to 9
	//1.1. normal notes or chords
	if(isCharInString(line[0],"ABCDEFGr ")){
		//set note-type
		rdNoteType=nt_normal;
		//chord or not??
		if(line[0]==' '){rdFlagChord=1;} else {rdFlagChord=0;}
		//parse pitch
		if(parsePitchInformation(&line[rdFlagChord],&rdPitchName,&rdPitchChromatic,&rdPitchOctave)){
			MUSEERROR(err_ParsePitch,idLineNumber,rdFlagChord);
		}
		//parse duration
		if(parseDurationInformation(&line[5],&rdDuration)){
			if( (rdFlagChord) && (parseParameters.lastNoteDuration!=-1) && (isBlanks(line+5,3)) ){
				rdDuration=parseParameters.lastNoteDuration;
			} else {
				MUSEERROR(err_ParseDuration,idLineNumber,6);
			}
		}
		parseParameters.lastNoteDuration=rdDuration;
		//parse tie-flag
		if(!isCharInString(line[8],"- ")){
			MUSEERROR(err_ParseTieFlag,idLineNumber,9)
		}
		if(line[8]=='-'){rdFlagTied=1;}
	} 
Exemplo n.º 2
0
SaErrorT verifyTextBuffers(SaHpiSessionIdT sessionId,
			   SaHpiResourceIdT resourceId,
			   SaHpiCtrlRecT * ctrlRec,
			   int numBytesFirstLine, SaHpiBoolT * success)
{
	SaErrorT status;
	SaHpiCtrlNumT ctrlNum = ctrlRec->Num;
	int lineNum;
	int maxLines = ctrlRec->TypeUnion.Text.MaxLines;
	SaHpiCtrlStateT ctrlState;
	int maxBytes = getMaxBytes(ctrlRec);

	*success = SAHPI_FALSE;

	// Get the first text buffer line.

	ctrlState.StateUnion.Text.Line = 1;
	status =
	    saHpiControlGet(sessionId, resourceId, ctrlNum, NULL, &ctrlState);
	if (status != SA_OK) {
		e_print(saHpiControlGet, SA_OK, status);
	} else {

		// Verify that the text buffer matches what we expect.

		*success =
		    matchesTextBuffer(&(ctrlState.StateUnion.Text.Text),
				      maxBytes, BYTE_VALUE_2,
				      numBytesFirstLine);
		if (!(*success)) {
			m_print("First line does match expected value!");
		} else {

			// Verify that all of the other lines are empty.

			for (lineNum = 2; lineNum <= maxLines && *success;
			     lineNum++) {
				ctrlState.StateUnion.Text.Line = lineNum;
				status =
				    saHpiControlGet(sessionId, resourceId,
						    ctrlNum, NULL, &ctrlState);
				if (status != SA_OK) {
					e_print(saHpiControlGet, SA_OK, status);
					break;
				} else if (ctrlState.StateUnion.Text.Text.DataLength == maxBytes &&
					       isBlanks(&(ctrlState.StateUnion.Text.Text), 0, maxBytes)) {
					// okay; do nothing
				} else if (ctrlState.StateUnion.Text.Text.DataLength == 0) {
					// okay; do nothing;
				} else {
					m_print("Text line %d is not blank!", lineNum);
					*success = SAHPI_FALSE;
				}
			}
		}
	}

	return status;
}