Index: trunk/build.inc
===================================================================
--- trunk/build.inc	(revision 2)
+++ trunk/build.inc	(revision 3)
@@ -1,1 +1,1 @@
-BUILD_STRING = -Build 201 21/03/05
+BUILD_STRING = -Build 205 24/03/05
Index: trunk/changes-0_2_9.txt
===================================================================
--- trunk/changes-0_2_9.txt	(revision 2)
+++ trunk/changes-0_2_9.txt	(revision 3)
@@ -5,4 +5,7 @@
 -Help for audio stream class.
 -Close confirmation dialog of media folder is now modal to the folder
+-Audio information for shadows in media folders wasn't shown when linked object wasn't touched first.
+-Mediafolder refresh triggers new time calculation.
+-Stop menu item of audio stream objects didn't work.
 
 0.2.8:
Index: trunk/classes/REPLACE.CMD
===================================================================
--- trunk/classes/REPLACE.CMD	(revision 2)
+++ trunk/classes/REPLACE.CMD	(revision 3)
@@ -1,5 +1,7 @@
 /* rexx -  replace  DLL */
 
-
+'replace H:\cwmm\classes\cwmm.dll D:\MMOS2\MMCLASS\CWMM.DLL'
+'replace H:\cwmm\classes\Res\dll\mmres_DE.dll d:\MMOS2\MMCLASS\bin\mmres_DE.dll'
+'replace H:\cwmm\classes\Res\dll\mmres_EN.dll d:\MMOS2\MMCLASS\bin\mmres_EN.dll'
 
 'replace H:\cwmm\classes\cwmm.dll J:\MMOS2\CWMM\CWMM.DLL'
Index: trunk/classes/c/c_audio/cwastream.c
===================================================================
--- trunk/classes/c/c_audio/cwastream.c	(revision 2)
+++ trunk/classes/c/c_audio/cwastream.c	(revision 3)
@@ -129,13 +129,18 @@
         OPENPARAMS * pParams;
 
-        pParams=PVOIDFROMMP(mp2);/* Get parameter block */
-        if(!pParams)
-          {
-            WinPostMsg(hwnd,WM_QUIT,0,0);
-            return MRFALSE;
-          }
-
-        WinSetWindowULong(hwnd, QWL_USER, (ULONG)pParams);        
-        thisPtr=pParams->wpObject;
+        /* Depending on mp1 the parameter in mp2 is either a pointer
+           to OPENPARAMS (mp1==ACKEY_START) or the object pointer (mp1==ACK_STOP) */
+        if(ACKEY_START==LONGFROMMP(mp1)) {
+          pParams=PVOIDFROMMP(mp2);/* Get parameter block */
+          if(!pParams)
+            {
+              WinPostMsg(hwnd,WM_QUIT,0,0);
+              return MRFALSE;
+            }
+          WinSetWindowULong(hwnd, QWL_USER, (ULONG)pParams);        
+          thisPtr=pParams->wpObject;
+        }
+        else
+          thisPtr=(MMAudio*)PVOIDFROMMP(mp2);
 
         if(somIsObj(thisPtr)) {
@@ -169,5 +174,4 @@
                       _cwmmSetRecordTitles(thisPtr, "Can't connect to server!", TRUE);
                       WinStartTimer(WinQueryAnchorBlock(hwnd), hwnd, 2, 4000);
-                      /*                    WinPostMsg(hwnd,WM_QUIT,0,0);*/
                       return MRFALSE;
                     }
@@ -202,5 +206,5 @@
 
                 WinStopTimer(WinQueryAnchorBlock(hwnd),hwnd,1 );
-                
+
                 sprintf(chrCommand,"stop wave%d wait", thisPtr);
                 mciSendString(chrCommand, retMsg, sizeof(retMsg), 0, 0);
@@ -276,4 +280,5 @@
 }
 
+
 MRESULT EXPENTRY streamUrlDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
 {
@@ -288,5 +293,5 @@
         WinSetWindowULong(WinWindowFromID(hwnd,IDEF_URL),
                           QWL_USER,(ULONG)cwAudioStream);//Save object ptr.
-        
+
         WinSendMsg(WinWindowFromID(hwnd,IDEF_URL),EM_SETTEXTLIMIT,MPFROMSHORT((SHORT)sizeof(chrURL)),0);
 
Index: trunk/classes/c/c_audio/cwaudio.c
===================================================================
--- trunk/classes/c/c_audio/cwaudio.c	(revision 2)
+++ trunk/classes/c/c_audio/cwaudio.c	(revision 3)
@@ -3494,4 +3494,5 @@
       BOOL bContinue=FALSE;
       MMAudio *somSelf=(MMAudio*)mp1;
+      WPObject    *pLinkObj=NULLHANDLE;
       MMAudioData *somThis= MMAudioGetData(somSelf);
       ULONG ulLoop;
@@ -3534,11 +3535,39 @@
 
             Check if parent folder is closed. If yes, don't start file scanning.
+
+            @@CHANGE 0.2.9
+
+            Check if we have a shadow in an open folder.
+
             */
+
           wpFolder=_wpQueryFolder(somSelf);
           if(somIsObj(wpFolder)) {
-            if(!_wpFindViewItem(wpFolder , VIEW_ANY, NULLHANDLE))
-              break;
-          }
-          
+            if(!_wpFindViewItem(wpFolder , VIEW_ANY, NULLHANDLE)) {
+              PUSEITEM pUseItem;
+              BOOL fOpenView=FALSE;
+              /* Ok, our object isn't in an open folder, but we may have a shadow somewhere in an
+                 open folder. */
+              for(pUseItem=_wpFindUseItem(somSelf, USAGE_LINK, NULL);pUseItem;
+                  pUseItem=_wpFindUseItem(somSelf, USAGE_LINK, pUseItem))
+                {
+                  PLINKITEM pLI=(PLINKITEM)++pUseItem;
+                  pLinkObj=pLI->LinkObj; /* The awake shadow */
+
+                  if(somIsObj(pLinkObj)) {
+                    wpFolder=_wpQueryFolder(pLinkObj);
+                    if(somIsObj(wpFolder)) {
+                      if(_wpFindViewItem(wpFolder , VIEW_ANY, NULLHANDLE)) {
+                        fOpenView=TRUE;
+                        break;
+                      }
+                    }/* somIsObj(wpFolder) */
+                  }
+                }/* for() */
+              if(!fOpenView)
+                break;
+            }
+          }
+
           /* Get file name */
           ulSize=sizeof(fName);
@@ -3830,6 +3859,18 @@
         if(ulLoop<20)
           _wpSaveDeferred(somSelf);
+        /* Now we have the audio info */
         _wpCnrRefreshDetails(somSelf);
-
+        /*
+          @@CHANGE 0.2.9
+
+          Also refresh shadows in containers. For now we only support one shadow but that doesn't is a problem
+          because after the first shadow the linked object has queried the audio data and every other shadow
+          that will be awaked can use that info without ending here. Only problem may be the user opens a lot
+          of folders with shadows and we are not fast enough but I don't care at the momen ;-).
+         */
+        if(pLinkObj!=NULLHANDLE && somIsObj(pLinkObj)) /* The check on NULLHANDLE is very fast while somIsObj() needs 
+                                                          quite some time. So we check for a valid object only if we
+                                                          can be quite sure we have an object (pointer!=NULLHANDLE). */
+          _wpCnrRefreshDetails(pLinkObj);
         return (MRESULT) FALSE;
       }
Index: trunk/classes/c/cwmm.DEF
===================================================================
--- trunk/classes/c/cwmm.DEF	(revision 2)
+++ trunk/classes/c/cwmm.DEF	(revision 3)
@@ -25,5 +25,5 @@
 
 LIBRARY CWMM INITGLOBAL
-DESCRIPTION '$@#(C) C. Wohlgemuth 2005:0.2        #@##1## 21/03/05 23:20:28        My ;-)  ::::9::@@CWMM-classes V0.2.9'
+DESCRIPTION '$@#(C) C. Wohlgemuth 2005:0.2        #@##1## 11/05/05 17:35:09        My ;-)  ::::9::@@CWMM-classes V0.2.9'
 
 PROTMODE
Index: trunk/make.inc
===================================================================
--- trunk/make.inc	(revision 2)
+++ trunk/make.inc	(revision 3)
@@ -9,5 +9,5 @@
 #That's used for createcd.exe until I find a decent documentation for make to do it better...
 #Also used for including the right icons
-ECS_COMPILE	=	YES
+#ECS_COMPILE	=	YES
 
 ifdef    ECS_COMPILE
Index: trunk/mediafolder/c/mediafldr/mediadialogprocs.cpp
===================================================================
--- trunk/mediafolder/c/mediafldr/mediadialogprocs.cpp	(revision 2)
+++ trunk/mediafolder/c/mediafldr/mediadialogprocs.cpp	(revision 3)
@@ -1698,6 +1698,10 @@
           }
         }
-        /* Start timer which triggers time calculation */
-        WinStartTimer(WinQueryAnchorBlock(hwnd),hwnd, IDTIMER_STATUS, 300);
+        /* 
+           FIXME:
+           Start timer which triggers time calculation. The timer is rather long so the objects may
+           awake first. This is not yet bullet proof, because if there're a lot of objects in the folder
+           the time will be too short. */
+        WinStartTimer(WinQueryAnchorBlock(hwnd),hwnd, IDTIMER_STATUS, 5000);
         return (MRESULT)FALSE;
       }
Index: trunk/mediafolder/c/mediafldr/mediafolderoverridenwpmethods.cpp
===================================================================
--- trunk/mediafolder/c/mediafldr/mediafolderoverridenwpmethods.cpp	(revision 2)
+++ trunk/mediafolder/c/mediafldr/mediafolderoverridenwpmethods.cpp	(revision 3)
@@ -964,16 +964,17 @@
 }
 
-#if 0
+//#if 0
 BOOL CWMediaFolder::wpRefresh(ULONG ulView, PVOID pReserved)
 {
   somId mySomId;
-
-    if((mySomId=somIdFromString("wpAddSettingsPages"))!=NULLHANDLE) {
-      rc=((somTD_WPObject_wpAddSettingsPages)
+  ULONG rc;
+
+    if((mySomId=somIdFromString("wpRefresh"))!=NULLHANDLE) {
+      rc=((somTD_WPFileSystem_wpRefresh)
           somParentNumResolve(__ClassObject->somGetPClsMtabs(),
                               1,
                               __ClassObject->
-                              somGetMethodToken(mySomId))                    
-          )(this,hwndNotebook);  
+                              somGetMethodToken(mySomId))                  
+          )(this, ulView,pReserved);  
       SOMFree(mySomId);
     }
@@ -981,6 +982,9 @@
       rc=CWProgFolder::wpRefresh(ulView, pReserved);
 
-}
-#endif
+    /* Start timer which triggers time calculation */
+    WinStartTimer(WinQueryAnchorBlock(hwndBottom),hwndBottom, IDTIMER_STATUS, 300);
+    return rc;
+}
+//#endif
 
 BOOL CWMediaFolder::wpAddSettingsPages(HWND hwndNotebook)
@@ -988,5 +992,5 @@
 	ULONG rc;
     somId mySomId;
-    
+
     if((mySomId=somIdFromString("wpAddSettingsPages"))!=NULLHANDLE) {
       rc=((somTD_WPObject_wpAddSettingsPages)
Index: trunk/mediafolder/include/mediafolder.hh
===================================================================
--- trunk/mediafolder/include/mediafolder.hh	(revision 3)
+++ trunk/mediafolder/include/mediafolder.hh	(revision 3)
@@ -0,0 +1,362 @@
+/*
+ * This file is (C) Chris Wohlgemuth 2002
+ */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; see the file COPYING.  If not, write to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#define INCL_DOS
+#define INCL_WIN
+#define INCL_GPIBITMAPS
+#include <os2.h>
+
+#define INCL_MCIOS2
+#include <os2me.h>
+#include "except.h"
+#include "mediafolderinc.h"
+
+
+#define  MAIN_BMP_IDX              0
+#define  CTRLIDX_POSSLIDER         1
+#define  CTRLIDX_POSSLIDERARM      2
+#define  CTRLIDX_VOLSLIDER         3
+#define  CTRLIDX_VOLSLIDERARM      4
+#define  CTRLIDX_VOLSLIDERARMSEL   5
+#define  CTRLIDX_PLAYTIME          6
+#define  CTRLIDX_TOPLEFT           7
+#define  CTRLIDX_TOPRIGHT          8
+#define  CTRLIDX_PLAYBUTTON        9
+#define  CTRLIDX_PLAYBUTTONSEL     10
+#define  CTRLIDX_STOPBUTTON        11
+#define  CTRLIDX_STOPBUTTONSEL     12
+#define  CTRLIDX_PAUSEBUTTON       13
+#define  CTRLIDX_PAUSEBUTTONSEL    14
+#define  CTRLIDX_SKIPBACKBUTTON    15
+#define  CTRLIDX_SKIPBACKBUTTONSEL 16
+#define  CTRLIDX_SKIPFWDBUTTON     17
+#define  CTRLIDX_SKIPFWDBUTTONSEL  18
+#define  CTRLIDX_BOTTOM            19
+#define  CTRLIDX_CHECK             20
+#define  CTRLIDX_UNCHECK           21
+#define  CTRLIDX_CHECKSEL          22
+#define  CTRLIDX_UNCHECKSEL        23
+
+#define  CTRLIDX_RANDOMCHECK             24
+#define  CTRLIDX_RANDOMUNCHECK           25
+#define  CTRLIDX_RANDOMCHECKSEL          26
+#define  CTRLIDX_RANDOMUNCHECKSEL        27
+
+#define  NUM_CTRL_IDX              28
+
+
+#define SHOWABOUTDIALOG_COMMAND   "SHOWABOUTDIALOG=1"
+#define SETUP_SHOWABOUTDIALOG     "SHOWABOUTDIALOG"
+
+/*** Private folder flags: ***/
+
+/* Flag indicating from where a method was called */
+#define MFLDR_CURACTION_ADDFOLDERVIEW3  0x00000001
+/* Flag telling if folder is in compact view */
+#define MFLDR_VIEW_COMPACT              0x00000002
+/* The view is currently changing */
+#define MFLDR_CHANGING_VIEW             0x00000004
+/*** End of private folder flags ***/
+
+#define IDHLP_MEDIAFOLDERMAIN  100
+
+
+#pragma SOMAsDefault(on)
+#include <som.hh>
+#include <somcls.hh>
+#pragma SOMNoMangling(on)
+/*#include "progfolder.h"*/
+#include "progfolder.hh"
+#include "cwaudio.hh"
+
+/* Forward declaration */
+class CWMediaFolder;
+
+#pragma SOMAsDefault(off)
+#pragma SOMNonDTS(on)
+
+typedef struct _MYVIEWITEM
+{
+  BOOL bIsInUseList;
+  USEITEM useItem;
+  VIEWITEM viewItem;
+}MYVIEWITEM; 
+
+typedef struct
+{
+  INT id;
+  RECTL rclSource;
+  HBITMAP hbmSource;
+  RECTL rclDest;
+}CONTROLINFO;
+
+typedef struct
+{
+  BITMAPINFOHEADER bmpInfoHdr;
+  HBITMAP hbm;
+}LOADEDBITMAP;
+
+
+/* The following is used for openThreadFunc(void *arg) when openeing a media folder and
+   for storing information when calling cwPlayAudioFile() etc. from the player panel dialog of the folder. */
+typedef struct _THREADPARAMS
+{
+  CWMediaFolder *thisPtr;
+  HWND hwndFrame;
+}THREADPARAMS;
+
+/* This struct is used in the CWInsertTrack method to specify the REXX script
+to be started */
+typedef struct _INSERTTRACKPARMS
+{
+  WPObject* thisPtr;
+  char chrRexxScript[CCHMAXPATH];
+}INSERTTRACKPARMS; 
+
+typedef  struct _MEDIAFLDRDATA
+{
+  ULONG ulTotalTime; /* Playtime of all folder tracks in secs */
+  char chrPlayTimeFont[50];/* Fontnamelength is 31 chars. Some space for the pointsize added and some to be save.
+                              Yeah, I know I'm lazy... */
+  BOOL bProcessing;  /* Set to TRUE if a thread is running. this is checked in the container proc and the wait ptr. is set. */
+  ULONG ulNumTracks;
+  ULONG ulSize;
+  BOOL bOpened;
+  BYTE *pRandomArray; /* This array holds the already random played tracks. When played the index is set to '1'. */
+  int iNumPlayed;     /* # of random played tracks */
+  int iNumToPlay;
+  HWND hwndPlayObject;/* Object window which handles the play commands so the WPS is not blocked. */  
+}MEDIAFLDRDATA;
+typedef   MEDIAFLDRDATA*   PMEDIAFLDRDATA;
+
+typedef struct _DROPTHREADPARAMS
+{
+  CWMediaFolder *thisPtr;
+  HWND hwndCnr;
+  HWND hwndSource;
+  ULONG ulNumObjects;
+  POINTL ptl;
+  WPObject* wpObject[1];
+}DROPTHREADPARAMS;
+typedef DROPTHREADPARAMS* PDROPTHREADPARAMS;
+
+typedef struct _MFLDRCTRLDATA
+{
+  ULONG ulMnemonicPos;
+  BOOL  bPreviousCheckState;
+}MFLDRCTRLDATA;
+
+class launchPad;
+
+#pragma SOMAsDefault(on)
+
+#ifndef somMD_WPFileSystem_wpRefresh
+typedef BOOL   SOMLINK somTP_WPFileSystem_wpRefresh(WPFileSystem *somSelf,
+		ULONG ulView,
+		PVOID pReserved);
+//#pragma linkage(somTP_WPFileSystem_wpRefresh, system)
+typedef somTP_WPFileSystem_wpRefresh *somTD_WPFileSystem_wpRefresh;
+#define somMD_WPFileSystem_wpRefresh "::WPFileSystem::wpRefresh"
+#define WPFileSystem_wpRefresh(somSelf,ulView,pReserved) \
+    (SOM_Resolve(somSelf, WPFileSystem, wpRefresh) \
+	(somSelf,ulView,pReserved))
+#ifndef SOMGD_wpRefresh
+    #if (defined(_wpRefresh) || defined(__wpRefresh))
+        #undef _wpRefresh
+        #undef __wpRefresh
+        #define SOMGD_wpRefresh 1
+    #else
+        #define _wpRefresh WPFileSystem_wpRefresh
+    #endif /* _wpRefresh */
+#endif /* SOMGD_wpRefresh */
+#endif
+
+class M_CWMediaFolder:public M_CWProgFolder
+{
+/* The name of of the new class */
+#pragma SOMClassName(*,"M_CWMediaFolder")
+/* Required SOM version */
+#pragma SOMClassVersion(*,1,2)
+#pragma SOMCallstyle(oidl)
+public:
+  virtual PSZ  wpclsQueryTitle();
+  virtual void wpclsInitData();
+  virtual	ULONG wpclsQueryIconData(PICONINFO pIconInfo);
+  virtual	ULONG wpclsQueryIconDataN(PICONINFO pIconInfo, ULONG ulIconIndex);
+  virtual void wpclsUnInitData();
+  virtual BOOL wpclsCreateDefaultTemplates(WPObject * wpObject);
+  virtual	ULONG wpclsQueryStyle();
+  virtual BOOL wpclsQueryDefaultHelp(PULONG HelpPanelId,PSZ HelpLibrary);
+
+#pragma SOMReleaseOrder()
+#pragma SOMIDLPass(*,"Implementation-End","dllname = mediafld;")
+};
+
+class CWMediaFolder:public CWProgFolder
+{
+#pragma SOMClassName(*,"CWMediaFolder")
+#pragma SOMMetaClass(CWMediaFolder,"M_CWMediaFolder")
+#pragma SOMClassVersion(CWMediaFolder,1,2)
+#pragma SOMCallstyle(oidl)
+private:
+  /* 
+     Added with V0.2.8 (07.09.2003)
+
+     Private flags used by the folder to keep track of current actions.
+
+     Tells the folder:
+     MFLDR_CURACTION_ADDFOLDERVIEW3: currently processing the wpAddFolderView3Page() 
+     MFLDR_VIEW_COMPACT:             folder is in compact view
+
+   */
+  ULONG ulPrivFlags;
+  SWP swpUnshrink;
+public:
+  /* From M3UFolder*/
+  WPObject* wpObjM3UFile;
+  HWND hwndObject;
+
+  WPObject* currentObject; /* Currently playing object */
+  PMINIRECORDCORE mrcPlaying;
+  MYVIEWITEM myViewItem; 
+
+  HWND hwndTopMiddle;/* */
+  HWND hwndBottom;
+  HWND hwndMFldrFrame;
+  int iWave;
+  ULONG ulFlags;
+  BOOL bPaused;
+  ULONG ulVolume;
+  ULONG ulStartPosition;
+  ULONG ulTotalLength;/* Total length of track in ms */
+  ULONG ulPos;/* Position in wave/track in secs */
+  //char chrTBFlyFontName[CCHMAXPATH+1];
+  //  RGB rgbTBFlyForeground;
+  //  RGB rgbTBFlyBackground;
+  //  BOOL bTBFlyOverEnabled;
+  //  int iTBFlyOverDelay;
+  PFNWP pfnwpFrame;
+  USHORT usLastSelMenuItem;
+  USHORT usWhichDisplay;
+  MEDIAFLDRDATA* mfData;/* Allocated in wpInitData() */
+  launchPad* lPad;
+#if 0
+  virtual BOOL wpMenuItemHelpSelected(ULONG MenuId);
+  virtual ULONG wpFilterPopupMenu(ULONG ulFlags, HWND hwndCnr, BOOL fMultiSelect);
+  virtual BOOL cwIsWaveFile(WPObject* wpObject);
+  virtual ULONG cwSetWriteFlags(ULONG ulNewWriteFlags,ULONG ulMask);
+  virtual ULONG cwQueryWriteFlags();
+#endif
+  virtual BOOL    wpSetupOnce(PSZ pSetupString);
+  virtual BOOL    wpAddToContent(WPObject* Object);
+  virtual BOOL    wpDeleteFromContent(WPObject* Object);
+  virtual ULONG   wpAddFolderView1Page(HWND hwndNotebook);
+  virtual ULONG   wpAddFolderView2Page(HWND hwndNotebook);
+  virtual ULONG   wpAddFolderView3Page(HWND hwndNotebook);
+  virtual ULONG   wpFilterPopupMenu(ULONG ulFlags, HWND hwndCnr, BOOL fMultiSelect);
+  virtual HWND    wpOpen(HWND hwndCnr,ULONG ulView,ULONG ulParam);
+  virtual BOOL    wpRestoreState(ULONG ulReserved);
+  virtual BOOL    wpSaveState();
+  virtual MRESULT wpDragOver(HWND hwndCnr,PDRAGINFO pDragInfo);
+  virtual MRESULT wpDrop(HWND hwndCnr,PDRAGINFO pDragInfo,PDRAGITEM pDragItem);  
+  virtual BOOL    wpAddSettingsPages(HWND hwndNotebook);
+  virtual ULONG   wpInsertSettingsPage(HWND hwndNotebook, PPAGEINFO ppageinfo);
+  virtual BOOL    wpMenuItemSelected(HWND hwndFrame,ULONG ulMenuId);
+  virtual BOOL    wpModifyPopupMenu(HWND hwndMenu, HWND hwndCnr, ULONG ulPosition);
+  virtual BOOL    wpSetup(PSZ pSetupString);
+  virtual void    wpInitData();
+  virtual void    wpUnInitData();
+  virtual BOOL    wpRefresh(ULONG ulView, PVOID pReserved);
+  // The following was introduced by CWProgFolder
+  virtual BOOL    cwClose(HWND hwndFrame);
+  // These are our new methods
+  virtual ULONG   cwPlayAudioFile(HWND hwndFrame, ULONG ulWhich);
+  virtual BOOL    cwStopAudioFile(HWND hwndFrame);
+  virtual BOOL    cwPauseAudioFile(HWND hwndFrame);
+  virtual BOOL    cwAddToolbarOptionPage(HWND hwndNotebook);
+  virtual MMAudio* cwQueryCurrentlyPlayingObject();
+  virtual void    cwSetStatusLineText(char * chrText);
+  virtual BOOL    cwSeekAudioFile(LONG lPosSec);
+  virtual void    cwPlayTimeCallback(HWND hwndFrame, LONG lPosSec);
+  virtual ULONG   cwPlayRandomAudioFile(HWND hwndFrame);
+  virtual BOOL    cwInsertAllTracks(char* chrM3UFile);
+  virtual ULONG   cwQueryMFldrFlags();
+  virtual BOOL    cwShrinkFolderToCompact(HWND hwndFrame);
+  virtual BOOL    cwUnshrinkFolder(HWND hwndFrame);
+#pragma SOMReleaseOrder(\
+"cwPlayAudioFile",\
+"cwStopAudioFile",\
+"cwPauseAudioFile",\
+"cwAddToolbarOptionPage",\
+"cwQueryCurrentlyPlayingObject",\
+"cwSetStatusLineText",\
+"cwSeekAudioFile",\
+"cwPlayTimeCallback",\
+"cwPlayRandomAudioFile",\
+"cwInsertAllTracks",\
+"cwQueryMFldrFlags", \
+"cwShrinkFolderToCompact",\
+"cwUnshrinkFolder")
+
+#if 0
+  virtual MRESULT wpDrop(HWND hwndCnr,PDRAGINFO pDragInfo,PDRAGITEM pDragItem);
+  virtual BOOL cwClose();
+  virtual BOOL wpSetupOnce(PSZ pSetupString);
+  virtual BOOL wpSetup(PSZ pSetupString);
+
+#pragma SOMReleaseOrder(\
+"cwIsWaveFile",\
+"cwSetWriteFlags",\
+"cwQueryWriteFlags",\
+"cwEnableGrab",\
+"cwQueryGrabEnabled",\
+"cwEnableGrabControls",\
+"cwEnableSelectControls",\
+"cwFillTrackList",\
+"cwSetStatusTime",\
+"cwForceStatusUpdate",\
+"cwEnableWrite",\
+"cwQueryWriteEnabled",\
+"cwEnableWriteControls",\
+"cwSetStatusText",\
+"cwWriteAudioTracks",\
+"cwIsMp3File",\
+"cwCreateContentsFile")
+#endif
+#pragma SOMIDLPass(CWMediaFolder,"Implementation-End","dllname = mediafld;")
+};
+
+/************/
+#pragma SOMAsDefault(pop)
+
+#pragma SOMNonDTS(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: trunk/mediafolder/makefile
===================================================================
--- trunk/mediafolder/makefile	(revision 2)
+++ trunk/mediafolder/makefile	(revision 3)
@@ -222,7 +222,7 @@
 	cp ./install/freedbgr.ins ../../$(PKGNAME)-$(VERSION)-ger/CWMFldr-$(VERSION)-ger/FreeDB/
 	cp Skripte_ger/* ../../$(PKGNAME)-$(VERSION)-ger/CWMFldr-$(VERSION)-ger/Skripte/
-#	-cd ../../$(PKGNAME)-$(VERSION)-ger/CWMFldr-$(VERSION)-ger/bin && lxlite *
-#	-cd ../../$(PKGNAME)-$(VERSION)-ger/CWMFldr-$(VERSION)-ger/DLL && lxlite *
-#	-cd ../../$(PKGNAME)-$(VERSION)-ger/CWMFldr-$(VERSION)-ger/FreeDB && lxlite *
+	-cd ../../$(PKGNAME)-$(VERSION)-ger/CWMFldr-$(VERSION)-ger/bin && lxlite *
+	-cd ../../$(PKGNAME)-$(VERSION)-ger/CWMFldr-$(VERSION)-ger/DLL && lxlite *
+	-cd ../../$(PKGNAME)-$(VERSION)-ger/CWMFldr-$(VERSION)-ger/FreeDB && lxlite *
 
 done:
@@ -246,5 +246,5 @@
 	cp ./c/createcd/createcd.exe  ../../$(PKGNAME)-$(VERSION)-eng/CWMFldr-$(VERSION)-eng/bin/
 	cp ./mediafolder.dll ../../$(PKGNAME)-$(VERSION)-eng/CWMFldr-$(VERSION)-eng/bin/mediafld.dll
-	cp ./res/obj/mediafolder_de.dll ../../$(PKGNAME)-$(VERSION)-eng/CWMFldr-$(VERSION)-eng/bin/mfldr_en.dll
+	cp ./res/obj/mediafolder_en.dll ../../$(PKGNAME)-$(VERSION)-eng/CWMFldr-$(VERSION)-eng/bin/mfldr_en.dll
 	cp ./help/mediafldr.hlp ../../$(PKGNAME)-$(VERSION)-eng/CWMFldr-$(VERSION)-eng/bin/mediafld.hlp
 	cp ./install/MEDIAFLD.ins  ../../$(PKGNAME)-$(VERSION)-eng/CWMFldr-$(VERSION)-eng/MEDIAFLD.INS
Index: trunk/todo.txt
===================================================================
--- trunk/todo.txt	(revision 2)
+++ trunk/todo.txt	(revision 3)
@@ -1,2 +1,4 @@
+Cache Information for audio shadows so mp3 tracks from CD work in media folders.
+
 Allow additional parameters for player and editor
 CDFolder: Create folder script
