Lines Matching refs:pData

74 static EAS_RESULT TC_ParseHeader (S_EAS_DATA *pEASData, S_TC_DATA* pData);
75 static EAS_RESULT TC_StartNote (S_EAS_DATA *pEASData, S_TC_DATA* pData, EAS_INT parserMode, EAS_I8 note);
76 static EAS_RESULT TC_GetRepeat (S_EAS_DATA *pEASData, S_TC_DATA* pData, EAS_INT parserMode);
77 static EAS_RESULT TC_PlayBlock (S_EAS_DATA *pEASData, S_TC_DATA* pData);
78 static EAS_RESULT TC_BlockEnd (S_EAS_DATA *pEASData, S_TC_DATA* pData);
79 static EAS_RESULT TC_GetVolume (S_EAS_DATA *pEASData, S_TC_DATA* pData);
80 static EAS_RESULT TC_GetTempo (S_EAS_DATA *pEASData, S_TC_DATA* pData);
81 static EAS_RESULT TC_GetResolution (S_EAS_DATA *pEASData, S_TC_DATA* pData);
82 static EAS_RESULT TC_GetNextChar (EAS_HW_DATA_HANDLE hwInstData, S_TC_DATA *pData, EAS_I8 *pValue);
83 static void TC_PutBackChar (S_TC_DATA *pData, EAS_I8 value);
86 EAS_INLINE void TC_CalcTimeBase (S_TC_DATA *pData)
90 pData->tick = ((60 * 1000) << 8) / (pData->tempo * pData->resolution);
137 S_TC_DATA *pData;
151 pData = EAS_CMEnumOptData(EAS_MODULE_MMAPI_TONE_CONTROL);
153 pData = EAS_HWMalloc(pEASData->hwInstData, sizeof(S_TC_DATA));
154 if (!pData)
158 EAS_HWMemCpy(pData, &data, sizeof(S_TC_DATA));
161 pData->state = EAS_STATE_OPEN;
162 *ppHandle = pData;
188 S_TC_DATA* pData;
192 pData = (S_TC_DATA*) pInstData;
193 if (pData->state != EAS_STATE_OPEN)
197 if ((result = VMInitMIDI(pEASData, &pData->pSynth)) != EAS_SUCCESS)
204 pData->state = EAS_STATE_READY;
229 S_TC_DATA *pData;
231 pData = (S_TC_DATA*) pInstData;
235 *pTime = pData->time >> 8;
258 S_TC_DATA* pData;
262 pData = (S_TC_DATA*) pInstData;
263 if (pData->state >= EAS_STATE_OPEN)
267 if (pData->time == 0)
270 VMProgramChange(pEASData->pVoiceMgr, pData->pSynth, TC_CHANNEL, TC_PROGRAM);
273 VMControlChange(pEASData->pVoiceMgr, pData->pSynth, TC_CHANNEL, 7, 127);
277 if (pData->note >= 0)
280 VMStopNote(pEASData->pVoiceMgr, pData->pSynth, TC_CHANNEL, (EAS_U8) pData->note, 0);
283 if (pData->repeatCount)
285 pData->repeatCount--;
286 pData->time += pData->length;
287 if ((pData->note >= 0) && (parserMode == eParserModePlay))
288 VMStartNote(pEASData->pVoiceMgr, pData->pSynth, TC_CHANNEL, (EAS_U8) pData->note, pData->volume);
292 pData->note = TC_FIELD_SILENCE;
300 if ((result = TC_GetNextChar(pEASData->hwInstData, pData, &temp)) != EAS_SUCCESS)
304 pData->state = EAS_STATE_STOPPING;
313 result = TC_StartNote(pEASData, pData, parserMode, temp);
321 result = TC_GetTempo(pEASData, pData);
325 result = TC_GetResolution(pEASData, pData);
329 result = TC_GetVolume(pEASData, pData);
333 result = TC_GetRepeat(pEASData, pData, parserMode);
337 result = TC_PlayBlock(pEASData, pData);
341 result = TC_GetNextChar(pEASData->hwInstData, pData, &temp);
345 result = TC_BlockEnd(pEASData, pData);
363 pData->state = EAS_STATE_ERROR;
366 pData->state = EAS_STATE_PLAY;
391 S_TC_DATA* pData;
394 pData = (S_TC_DATA*) pInstData;
397 if (pData->state == EAS_STATE_STOPPING)
399 if (VMActiveVoices(pData->pSynth) == 0)
400 pData->state = EAS_STATE_STOPPED;
403 if (pData->state == EAS_STATE_PAUSING)
405 if (VMActiveVoices(pData->pSynth) == 0)
406 pData->state = EAS_STATE_PAUSED;
410 *pState = pData->state;
433 S_TC_DATA* pData;
436 pData = (S_TC_DATA*) pInstData;
439 if ((result = EAS_HWCloseFile(pEASData->hwInstData, pData->fileHandle)) != EAS_SUCCESS)
443 if (pData->pSynth != NULL)
444 VMMIDIShutdown(pEASData, pData->pSynth);
448 EAS_HWFree(pEASData->hwInstData, pData);
472 S_TC_DATA* pData;
475 pData = (S_TC_DATA*) pInstData;
478 VMReset(pEASData->pVoiceMgr, pData->pSynth, EAS_TRUE);
481 pData->time = 0;
484 pData->state = EAS_STATE_ERROR;
485 if ((result = EAS_HWFileSeek(pEASData->hwInstData, pData->fileHandle, pData->fileOffset)) != EAS_SUCCESS)
487 if ((result = TC_ParseHeader (pEASData, pData)) != EAS_SUCCESS)
490 pData->state = EAS_STATE_READY;
513 S_TC_DATA *pData;
516 pData = (S_TC_DATA*) pInstData;
517 if (pData->state == EAS_STATE_STOPPED)
521 VMMuteAllVoices(pEASData->pVoiceMgr, pData->pSynth);
522 pData->state = EAS_STATE_PAUSING;
546 S_TC_DATA *pData;
549 pData = (S_TC_DATA*) pInstData;
550 if (pData->state == EAS_STATE_STOPPED)
554 pData->state = EAS_STATE_PLAY;
605 S_TC_DATA *pData;
607 pData = (S_TC_DATA *) pInstData;
616 *pValue = (EAS_I32) pData->pSynth;
643 static EAS_RESULT TC_ParseHeader (S_EAS_DATA *pEASData, S_TC_DATA* pData)
649 pData->time = 0;
650 pData->tempo = 120;
651 pData->resolution = 64;
652 pData->volume = 127;
653 pData->repeatCount = 0;
654 pData->note = TC_FIELD_SILENCE;
655 pData->byteAvail = EAS_FALSE;
658 TC_CalcTimeBase(pData);
661 if ((result = EAS_HWFileSeek(pEASData->hwInstData, pData->fileHandle, pData->fileOffset)) != EAS_SUCCESS)
665 if ((result = TC_GetNextChar(pEASData->hwInstData, pData, &temp)) != EAS_SUCCESS)
671 TC_GetNextChar(pEASData->hwInstData, pData, &temp);
682 if ((result = TC_GetNextChar(pEASData->hwInstData, pData, &temp)) != EAS_SUCCESS)
688 if ((result = TC_GetTempo(pEASData, pData)) != EAS_SUCCESS)
695 if ((result = TC_GetResolution(pEASData, pData)) != EAS_SUCCESS)
702 TC_PutBackChar(pData, temp);
721 static EAS_RESULT TC_StartNote (S_EAS_DATA *pEASData, S_TC_DATA* pData, EAS_INT parserMode, EAS_I8 note)
726 if (TC_GetNextChar(pEASData->hwInstData, pData, &duration) != EAS_SUCCESS)
730 pData->length = (EAS_I32) duration * pData->tick;
731 pData->time += pData->length;
736 VMStartNote(pEASData->pVoiceMgr, pData->pSynth, TC_CHANNEL, (EAS_U8) note, pData->volume);
737 pData->note = note;
749 static EAS_RESULT TC_GetRepeat (S_EAS_DATA *pEASData, S_TC_DATA* pData, EAS_INT parserMode)
754 if (TC_GetNextChar(pEASData->hwInstData, pData, &count) != EAS_SUCCESS)
762 pData->time += pData->length;
763 pData->repeatCount = count - 2;
766 if ((pData->note >= 0) && (parserMode == eParserModePlay))
767 VMStartNote(pEASData->pVoiceMgr, pData->pSynth, TC_CHANNEL, (EAS_U8) pData->note, pData->volume);
778 static EAS_RESULT TC_PlayBlock (S_EAS_DATA *pEASData, S_TC_DATA* pData)
786 if (TC_GetNextChar(pEASData->hwInstData, pData, &blockNum) != EAS_SUCCESS)
794 if ((result = EAS_HWFilePos(pEASData->hwInstData, pData->fileHandle, &pData->restorePos)) != EAS_SUCCESS)
798 pData->byteAvail = EAS_FALSE;
799 if ((result = EAS_HWFileSeek(pEASData->hwInstData, pData->fileHandle, pData->fileOffset)) != EAS_SUCCESS)
805 if (TC_GetNextChar(pEASData->hwInstData, pData, &temp) != EAS_SUCCESS)
808 if (TC_GetNextChar(pEASData->hwInstData, pData, &temp2) != EAS_SUCCESS)
822 static EAS_RESULT TC_BlockEnd (S_EAS_DATA *pEASData, S_TC_DATA* pData)
827 if (TC_GetNextChar(pEASData->hwInstData, pData, &blockNum) != EAS_SUCCESS)
835 pData->byteAvail = EAS_FALSE;
836 return EAS_HWFileSeek(pEASData->hwInstData, pData->fileHandle, pData->restorePos);
845 static EAS_RESULT TC_GetVolume (S_EAS_DATA *pEASData, S_TC_DATA* pData)
850 if (TC_GetNextChar(pEASData->hwInstData, pData, &volume) != EAS_SUCCESS)
856 pData->volume = (EAS_U8) ((EAS_I32) (volume * TC_VOLUME_CONV + 1) >> TC_VOLUME_SHIFT);
866 static EAS_RESULT TC_GetTempo (S_EAS_DATA *pEASData, S_TC_DATA* pData)
871 if (TC_GetNextChar(pEASData->hwInstData, pData, &tempo) != EAS_SUCCESS)
877 pData->tempo = tempo;
880 TC_CalcTimeBase(pData);
890 static EAS_RESULT TC_GetResolution (S_EAS_DATA *pEASData, S_TC_DATA* pData)
895 if (TC_GetNextChar(pEASData->hwInstData, pData, &resolution) != EAS_SUCCESS)
901 pData->resolution = resolution;
904 TC_CalcTimeBase(pData);
914 static EAS_RESULT TC_GetNextChar (EAS_HW_DATA_HANDLE hwInstData, S_TC_DATA *pData, EAS_I8 *pValue)
918 if (pData->byteAvail)
920 pData->byteAvail = EAS_FALSE;
921 *pValue = pData->dataByte;
926 return EAS_HWGetByte(hwInstData, pData->fileHandle, pValue);
935 static void TC_PutBackChar (S_TC_DATA *pData, EAS_I8 value)
938 pData->dataByte = value;
939 pData->byteAvail = EAS_TRUE;