Ignore:
Timestamp:
Jul 13, 2017, 4:16:49 AM (8 years ago)
Author:
stevenhl
Message:

Import modifications from cwmm-eCS-Refresh-13_05_05.zip dated 2005-05-13

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/classes/c/c_audio/cwaudio.c

    r2 r3  
    34943494      BOOL bContinue=FALSE;
    34953495      MMAudio *somSelf=(MMAudio*)mp1;
     3496      WPObject    *pLinkObj=NULLHANDLE;
    34963497      MMAudioData *somThis= MMAudioGetData(somSelf);
    34973498      ULONG ulLoop;
     
    35343535
    35353536            Check if parent folder is closed. If yes, don't start file scanning.
     3537
     3538            @@CHANGE 0.2.9
     3539
     3540            Check if we have a shadow in an open folder.
     3541
    35363542            */
     3543
    35373544          wpFolder=_wpQueryFolder(somSelf);
    35383545          if(somIsObj(wpFolder)) {
    3539             if(!_wpFindViewItem(wpFolder , VIEW_ANY, NULLHANDLE))
    3540               break;
    3541           }
    3542          
     3546            if(!_wpFindViewItem(wpFolder , VIEW_ANY, NULLHANDLE)) {
     3547              PUSEITEM pUseItem;
     3548              BOOL fOpenView=FALSE;
     3549              /* Ok, our object isn't in an open folder, but we may have a shadow somewhere in an
     3550                 open folder. */
     3551              for(pUseItem=_wpFindUseItem(somSelf, USAGE_LINK, NULL);pUseItem;
     3552                  pUseItem=_wpFindUseItem(somSelf, USAGE_LINK, pUseItem))
     3553                {
     3554                  PLINKITEM pLI=(PLINKITEM)++pUseItem;
     3555                  pLinkObj=pLI->LinkObj; /* The awake shadow */
     3556
     3557                  if(somIsObj(pLinkObj)) {
     3558                    wpFolder=_wpQueryFolder(pLinkObj);
     3559                    if(somIsObj(wpFolder)) {
     3560                      if(_wpFindViewItem(wpFolder , VIEW_ANY, NULLHANDLE)) {
     3561                        fOpenView=TRUE;
     3562                        break;
     3563                      }
     3564                    }/* somIsObj(wpFolder) */
     3565                  }
     3566                }/* for() */
     3567              if(!fOpenView)
     3568                break;
     3569            }
     3570          }
     3571
    35433572          /* Get file name */
    35443573          ulSize=sizeof(fName);
     
    38303859        if(ulLoop<20)
    38313860          _wpSaveDeferred(somSelf);
     3861        /* Now we have the audio info */
    38323862        _wpCnrRefreshDetails(somSelf);
    3833 
     3863        /*
     3864          @@CHANGE 0.2.9
     3865
     3866          Also refresh shadows in containers. For now we only support one shadow but that doesn't is a problem
     3867          because after the first shadow the linked object has queried the audio data and every other shadow
     3868          that will be awaked can use that info without ending here. Only problem may be the user opens a lot
     3869          of folders with shadows and we are not fast enough but I don't care at the momen ;-).
     3870         */
     3871        if(pLinkObj!=NULLHANDLE && somIsObj(pLinkObj)) /* The check on NULLHANDLE is very fast while somIsObj() needs
     3872                                                          quite some time. So we check for a valid object only if we
     3873                                                          can be quite sure we have an object (pointer!=NULLHANDLE). */
     3874          _wpCnrRefreshDetails(pLinkObj);
    38343875        return (MRESULT) FALSE;
    38353876      }
Note: See TracChangeset for help on using the changeset viewer.