@@ -2462,11 +2462,21 @@ EAS_PUBLIC EAS_RESULT EAS_MetricsReset (EAS_DATA_HANDLE pEASData)
24622462*/
24632463EAS_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