Skip to content

Commit da067d1

Browse files
authored
Merge pull request #9 from pedrolcl/fix-for-EAS_SetSoundLibrary-and-EAS_LoadDLSCollection
fix EAS_SetSoundLibrary and EAS_LoadDLSCollection
2 parents 28110a6 + 6f0e37c commit da067d1

1 file changed

Lines changed: 30 additions & 10 deletions

File tree

arm-wt-22k/lib_src/eas_public.c

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2462,11 +2462,21 @@ EAS_PUBLIC EAS_RESULT EAS_MetricsReset (EAS_DATA_HANDLE pEASData)
24622462
*/
24632463
EAS_PUBLIC EAS_RESULT EAS_SetSoundLibrary (EAS_DATA_HANDLE pEASData, EAS_HANDLE pStream, EAS_SNDLIB_HANDLE pSndLib)
24642464
{
2465-
if (pStream)
2465+
if (pStream != NULL)
24662466
{
2467+
if (pStream->pParserModule != NULL)
2468+
{
24672469
if (!EAS_StreamReady(pEASData, pStream))
2468-
return EAS_ERROR_NOT_VALID_IN_THIS_STATE;
2470+
return EAS_ERROR_NOT_VALID_IN_THIS_STATE;
24692471
return EAS_IntSetStrmParam(pEASData, pStream, PARSER_DATA_EAS_LIBRARY, (EAS_IPTR) pSndLib);
2472+
}
2473+
else if (pStream->handle != NULL)
2474+
{
2475+
S_INTERACTIVE_MIDI *pMIDIStream = (S_INTERACTIVE_MIDI *) pStream->handle;
2476+
return VMSetEASLib(pMIDIStream->pSynth, pSndLib);
2477+
}
2478+
else
2479+
return EAS_FAILURE;
24702480
}
24712481

24722482
return VMSetGlobalEASLib(pEASData->pVoiceMgr, pSndLib);
@@ -2537,7 +2547,7 @@ EAS_PUBLIC EAS_RESULT EAS_LoadDLSCollection (EAS_DATA_HANDLE pEASData, EAS_HANDL
25372547
EAS_RESULT result;
25382548
EAS_DLSLIB_HANDLE pDLS;
25392549

2540-
if (pStream != NULL)
2550+
if (pStream != NULL && pStream->pParserModule != NULL)
25412551
{
25422552
if (!EAS_StreamReady(pEASData, pStream))
25432553
return EAS_ERROR_NOT_VALID_IN_THIS_STATE;
@@ -2553,14 +2563,24 @@ EAS_PUBLIC EAS_RESULT EAS_LoadDLSCollection (EAS_DATA_HANDLE pEASData, EAS_HANDL
25532563

25542564
if (result == EAS_SUCCESS)
25552565
{
2556-
2557-
/* if a stream pStream is specified, point it to the DLS collection */
2558-
if (pStream)
2559-
result = EAS_IntSetStrmParam(pEASData, pStream, PARSER_DATA_DLS_COLLECTION, (EAS_IPTR) pDLS);
2560-
2561-
/* global DLS load */
2566+
/* if a stream pStream is specified, point it to the DLS collection */
2567+
if (pStream != NULL)
2568+
{
2569+
if (pStream->pParserModule != NULL)
2570+
{
2571+
result = EAS_IntSetStrmParam(pEASData, pStream, PARSER_DATA_DLS_COLLECTION, (EAS_IPTR) pDLS);
2572+
}
2573+
else if (pStream->handle != NULL)
2574+
{
2575+
S_INTERACTIVE_MIDI *pMIDIStream = (S_INTERACTIVE_MIDI *) pStream->handle;
2576+
result = VMSetDLSLib(pMIDIStream->pSynth, pDLS);
2577+
}
25622578
else
2563-
result = VMSetGlobalDLSLib(pEASData, pDLS);
2579+
result = EAS_FAILURE;
2580+
}
2581+
/* global DLS load */
2582+
else
2583+
result = VMSetGlobalDLSLib(pEASData, pDLS);
25642584
}
25652585

25662586
return result;

0 commit comments

Comments
 (0)