home *** CD-ROM | disk | FTP | other *** search
- /*
- * This file is (C) Chris Wohlgemuth 1999
- */
- /*
- * 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.
- */
- #include "audiofolder.hh"
- #include "audiofolderhelp.h"
- #include <stdio.h>
- #include <stdlib.h>
- #include "cddb.h"
-
-
- extern BOOL GrabberSetupDone;
-
- extern int iNumCD;
- extern char cFirstCD;
- extern char chosenCD[3];
- extern char chrGrabberPath[CCHMAXPATH];
- extern char chrGrabberOptions[CCHMAXPATH];
- extern int bTrackNumbers;
- extern BOOL bGrabberFirst;
- extern char chrInstallDir[CCHMAXPATH];
- extern char chrCDRecord[CCHMAXPATH];/* Path to cdrecord */
- extern char chrCDROptions[CCHMAXPATH];
- extern LONG lCDROptions;
- extern char chosenWriter[3];
- extern BOOL setupDone;
- extern ATOM atomUpdateStatusbar;
-
- /* Extern */
- HMODULE queryModuleHandle(void);
- HFILE openDrive(char * drive);
- void closeDrive(HFILE hfDrive);
- void _Optlink grabThreadFunc (void *arg);
- int CDQueryAudioCDTracks(HFILE hfDrive);
- LONG CDDBDiscID(char * drive, CDDBINFO * cddbInfo);
- void getTrackName(LONG lDiskID,int iNumTrack,char * text);
- void sendConfig();
- void _Optlink writeThreadFunc (void *arg);
-
- /* Local */
- MRESULT EXPENTRY trackDialogProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
- void getTrackName(LONG lDiskID,int iNumTrack,char * text);
- MRESULT EXPENTRY statusLineDialogProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) ;
- MRESULT EXPENTRY selectDialogProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) ;
- MRESULT EXPENTRY grabDialogProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) ;
- MRESULT EXPENTRY writeStatusDialogProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) ;
- MRESULT EXPENTRY cdrecordOptionDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) ;
- MRESULT EXPENTRY grabberOptionDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) ;
- MRESULT EXPENTRY dialogProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) ;
- MRESULT EXPENTRY trackDialogProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) ;
-
-
-
- void getTrackName(LONG lDiskID,int iNumTrack,char * text)
- {
- HINI hini;
- ULONG keyLength;
- char profileName[CCHMAXPATH];
- char discKey[20];
- char trackKey[20];
-
- /* Build full path for cddb.ini file */
- sprintf(profileName,"%s\\cddb.ini",chrInstallDir);
- /* Open ini-file */
- hini=PrfOpenProfile(WinQueryAnchorBlock(HWND_DESKTOP),profileName);
- do{
- if(!hini) {
- WinMessageBox( HWND_DESKTOP,
- HWND_DESKTOP,
- "Warning! Cannot open CDDB.ini file!",
- "Audio-CD-Creator",
- 0UL,
- MB_OK | MB_ICONEXCLAMATION );
- break;
- }/* end of if(!hini) */
-
- sprintf(discKey,"%X",lDiskID);
- sprintf(trackKey,"TRACK%d",iNumTrack);
- keyLength=PrfQueryProfileString(hini,discKey,trackKey,"",text,CCHMAXPATH);
- if(keyLength==1){
- break;/* We have no trackname */
- }
-
- if(hini)PrfCloseProfile(hini);
- return;
- }while(TRUE);
- if(hini)PrfCloseProfile(hini);
- sprintf(text,"CDDB-Track %d",iNumTrack);
- }
-
- MRESULT EXPENTRY statusLineDialogProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
- {
- CWAudioFolder *thisPtr;
- HWND hwndMenu;
- POINTL ptl;
- SHORT a,b;
-
- switch(msg)
- {
- case WM_INITDLG :
- WinSetWindowULong(hwnd,QWL_USER,(ULONG)PVOIDFROMMP(mp2));//Save object ptr.
- return (MRESULT) TRUE;
- case WM_HELP:
- break;
- case WM_DESTROY:
- /* The dialog closes and gets destroyed */
- break;
- case WM_BUTTON2DOWN:
- /* Display popup menu for status bar */
- WinQueryPointerPos(HWND_DESKTOP,&ptl);
- WinMapWindowPoints(HWND_DESKTOP,hwnd,&ptl,1);
- hwndMenu=WinWindowFromPoint(hwnd,&ptl,FALSE);/* Get child window under ptr */
- switch(WinQueryWindowUShort(hwndMenu,QWS_ID))/* Get child window id */
- {
- default:
- a=IDM_STATUSDEFAULTHELP;
- b=a;
- break;
- }
- hwndMenu=WinLoadMenu(hwnd,queryModuleHandle(),a);
- if(hwndMenu) {
- if(WinPopupMenu(hwnd,hwnd,hwndMenu,ptl.x,ptl.y,b,PU_VCONSTRAIN|PU_HCONSTRAIN|
- PU_MOUSEBUTTON1|PU_KEYBOARD|PU_NONE|PU_SELECTITEM)) {
-
- return (MRESULT)FALSE;
- }
- }
- break;
- case WM_TIMER:
- if(SHORT1FROMMP(mp1)==1) {
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- thisPtr->ulTrackSize=thisPtr->cwFillTrackList(WinQueryWindow(hwnd,QW_PARENT), NULL);
- thisPtr->cwSetStatusTime(thisPtr->ulTrackSize);
- WinStopTimer( WinQueryAnchorBlock(HWND_DESKTOP),hwnd,1);
- }
- return (MRESULT) TRUE;
- case WM_COMMAND:
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(thisPtr){
- switch(SHORT1FROMMP(mp1))
- {
- case IDM_STATUSDEFAULTHELP:
- return (MRESULT)thisPtr->wpDisplayHelp(603,AFHELPLIBRARY);
- default:
- break;
- }
- }/* end of if(thisPtr) */
-
- return (MRESULT) TRUE;
- default:
- if(msg == atomUpdateStatusbar){ /* Update the statusbar */
- WinStartTimer(WinQueryAnchorBlock(HWND_DESKTOP),hwnd,1,500);
- return (MRESULT) TRUE;
- }
- break;
- }
- return WinDefDlgProc(hwnd, msg, mp1, mp2);
- }
-
-
- /*********************************************************************/
- /* */
- /* This procedure handles the select-dialog (frame extension) of the folder */
- /* */
- /*********************************************************************/
- MRESULT EXPENTRY selectDialogProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
- {
- CWAudioFolder *thisPtr;
- HWND hwndTracks;
- WPObject * contentObject;
- char name[CCHMAXPATH];
- ULONG ulNameSize;
- HWND hwndCnr;
- PMINIRECORDCORE mrc;
- SIZEL sizel;
- ULONG ulFlags;
- HWND hwndTemp;
- POINTL ptl;
- SHORT a,b;
-
- switch(msg)
- {
- case WM_INITDLG :
- WinSetWindowULong(hwnd,QWL_USER,(ULONG)PVOIDFROMMP(mp2));//Save object ptr.
- thisPtr=(CWAudioFolder*) PVOIDFROMMP(mp2);
- WinShowWindow(WinWindowFromID(hwnd,IDEF_TRACKNAME),thisPtr->bShowGrab);
- WinShowWindow(WinWindowFromID(hwnd,IDST_TRACKNAME),thisPtr->bShowGrab);
- WinCheckButton(hwnd,IDRB_GRAB,thisPtr->bShowGrab);
- WinCheckButton(hwnd,IDRB_WRITE,!thisPtr->bShowGrab);
- if(thisPtr->bShowGrab) {
- if(thisPtr->tid) {
- /* There is a grabbing in progress */
- thisPtr->cwEnableSelectControls(FALSE);
- }
- }
- return (MRESULT) TRUE;
- case WM_HELP:
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(thisPtr)
- return (MRESULT)thisPtr->wpDisplayHelp(IDDLG_GRABDIALOG,AFHELPLIBRARY);
- break;
- case WM_DESTROY:
- /* The dialog closes and gets destroyed */
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(thisPtr){
- //thisPtr->wpSaveDeferred();
- }
- break;
- case WM_BUTTON2DOWN:
- WinQueryPointerPos(HWND_DESKTOP,&ptl);
- WinMapWindowPoints(HWND_DESKTOP,hwnd,&ptl,1);
- hwndTracks=WinWindowFromPoint(hwnd,&ptl,FALSE);/* Get child window under ptr */
- switch(WinQueryWindowUShort(hwndTracks,QWS_ID))/* Get child window id */
- {
-
- default:
- a=IDM_DEFAULTHELP;
- b=a;
- break;
- }
- hwndTracks=WinLoadMenu(hwnd,queryModuleHandle(),a);
- if(hwndTracks) {
- if(WinPopupMenu(hwnd,hwnd,hwndTracks,ptl.x,ptl.y,b,PU_VCONSTRAIN|PU_HCONSTRAIN|
- PU_MOUSEBUTTON1|PU_KEYBOARD|PU_NONE|PU_SELECTITEM)) {
-
- return (MRESULT)FALSE;
- }
- }
- break;
-
- case WM_CONTROL:
- /* This part handles the radio button messages */
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(thisPtr){
- switch(SHORT1FROMMP(mp1))
- {
- case IDRB_WRITE:
- /* Hide trackname window */
- WinShowWindow(WinWindowFromID(hwnd,IDEF_TRACKNAME),FALSE);
- WinShowWindow(WinWindowFromID(hwnd,IDST_TRACKNAME),FALSE);
- hwndTemp=thisPtr->cwQueryFrameCtl(WinQueryWindow(hwnd,QW_PARENT), &sizel,FCTL_LEFT, &ulFlags);
-
- if(WinQueryWindowUShort(hwndTemp,QWS_ID)==IDDLG_GRABDIALOG)
- thisPtr->hwndGrab=hwndTemp;
- if(!thisPtr->hwndWrite)
- thisPtr->hwndWrite=WinLoadDlg(WinQueryWindow(hwnd,QW_PARENT),WinQueryWindow(hwnd,QW_PARENT),
- dialogProc,queryModuleHandle(),ID_DIALOG,thisPtr);
- thisPtr->cwAddFrameCtl(WinQueryWindow(hwnd,QW_PARENT),thisPtr->hwndWrite,sizel,FCTL_LEFT, ulFlags);
- WinShowWindow(thisPtr->hwndGrab,FALSE);
-
- thisPtr->cwUpdateFrame(WinQueryWindow(hwnd,QW_PARENT));
- break;
- case IDRB_GRAB:
- WinShowWindow(WinWindowFromID(hwnd,IDEF_TRACKNAME),TRUE);
- WinShowWindow(WinWindowFromID(hwnd,IDST_TRACKNAME),TRUE);
- hwndTemp=thisPtr->cwQueryFrameCtl(WinQueryWindow(hwnd,QW_PARENT), &sizel,FCTL_LEFT, &ulFlags);
- if(WinQueryWindowUShort(hwndTemp,QWS_ID)==ID_DIALOG)
- thisPtr->hwndWrite=hwndTemp;
- if(!thisPtr->hwndGrab) {
- thisPtr->hwndGrab=WinLoadDlg(WinQueryWindow(hwnd,QW_PARENT),WinQueryWindow(hwnd,QW_PARENT),
- grabDialogProc,queryModuleHandle(),IDDLG_GRABDIALOG,thisPtr);
- }
- thisPtr->cwAddFrameCtl(WinQueryWindow(hwnd,QW_PARENT),thisPtr->hwndGrab, sizel,FCTL_LEFT, ulFlags);
- WinShowWindow(thisPtr->hwndWrite,FALSE);
- thisPtr->cwUpdateFrame(WinQueryWindow(hwnd,QW_PARENT));
- break;
- default:
- break;
- }
- /* Tell the WPS to save the instance data */
- //thisPtr->wpSaveDeferred();
- }/* if(thisPtr) */
- break;
- case WM_COMMAND:
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(thisPtr){
- switch(SHORT1FROMMP(mp1))
- {
- case IDM_DEFAULTHELP:
- return (MRESULT)thisPtr->wpDisplayHelp(600,AFHELPLIBRARY);
- default:
- break;
- }
- }
- return (MRESULT) TRUE;
- default:
- break;
- }
- return WinDefDlgProc(hwnd, msg, mp1, mp2);
- }
-
-
-
- /*********************************************************************/
- /* */
- /* This procedure handles the grab-dialog (frame extension) of the folder */
- /* */
- /*********************************************************************/
- MRESULT EXPENTRY grabDialogProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
- {
- CWAudioFolder *thisPtr;
- int numTracks;
- HFILE hfCD;
- char text[CCHMAXPATH];
- char title[CCHMAXPATH];
-
- SHORT a,b;
- ULONG ulFlags;
- SIZEL sizel;
- HWND hwndTemp;
- POINTL ptl;
-
- switch(msg)
- {
- case WM_INITDLG :
- WinSetWindowULong(hwnd,QWL_USER,(ULONG)PVOIDFROMMP(mp2));//Save object ptr.
- thisPtr=(CWAudioFolder*) PVOIDFROMMP(mp2);
- WinEnableWindow(WinWindowFromID(hwnd,IDPB_SELECTALL) ,FALSE);
- WinEnableWindow(WinWindowFromID(hwnd,IDPB_GRAB) ,FALSE);
- return (MRESULT) TRUE;
- case WM_DESTROY:
- /* The dialog closes and gets destroyed */
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(thisPtr){
- thisPtr->hwndGrab=0;
- }
- break;
- case WM_HELP:
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(thisPtr)
- return (MRESULT)thisPtr->wpDisplayHelp(IDDLG_GRABDIALOG,AFHELPLIBRARY);
- break;
- case WM_CONTROL:
- /* This part handles the radio button messages */
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(thisPtr){
- switch(SHORT1FROMMP(mp1))
- {
- default:
- break;
- }
- /* Tell the WPS to save the instance data */
- }
- break;
- case WM_BUTTON2DOWN:
- WinQueryPointerPos(HWND_DESKTOP,&ptl);
- WinMapWindowPoints(HWND_DESKTOP,hwnd,&ptl,1);
- hwndTemp=WinWindowFromPoint(hwnd,&ptl,FALSE);/* Get child window under ptr */
- switch(WinQueryWindowUShort(hwndTemp,QWS_ID))/* Get child window id */
- {
- case IDLB_GRABTRACKS:
- a=IDM_GRABTRACKLISTHELP;
- b=IDPB_REFRESH;
- break;
- case IDPB_GRAB:
- a=IDM_GRABGRABHELP;
- b=a;
- break;
- case IDPB_REFRESH:
- a=IDM_GRABREFRESHHELP;
- b=a;
- break;
- case IDPB_SELECTALL:
- a=IDM_GRABSELECTALLHELP;
- b=a;
- break;
- default:
- a=IDM_GRABDEFAULTHELP;
- b=IDM_GRABBERSETUP;
- break;
- }
- hwndTemp=WinLoadMenu(hwnd,queryModuleHandle(),a);
- if(hwndTemp) {
- if(WinPopupMenu(hwnd,hwnd,hwndTemp,ptl.x,ptl.y,b,PU_VCONSTRAIN|PU_HCONSTRAIN|
- PU_MOUSEBUTTON1|PU_KEYBOARD|PU_NONE|PU_SELECTITEM)) {
- if(!(a==IDM_GRABTRACKLISTHELP && WinIsControlEnabled(hwnd,IDPB_SELECTALL)))
- WinEnableMenuItem(hwndTemp,IDPB_SELECTALL,FALSE);
-
- return (MRESULT)FALSE;
- }
- }
- break;
- case WM_COMMAND:
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(thisPtr) {
- switch(SHORT1FROMMP(mp1))
- {
- /* These are the popup menu items */
- case IDM_GRABDEFAULTHELP:
- return (MRESULT)thisPtr->wpDisplayHelp(602,AFHELPLIBRARY);
- break;
- case IDM_GRABGRABHELP:
- return (MRESULT)thisPtr->wpDisplayHelp(IDHLP_GRABGRAB,AFHELPLIBRARY);
- break;
- case IDM_GRABTRACKLISTHELP:
- return (MRESULT)thisPtr->wpDisplayHelp(IDHLP_GRABTRACKLIST,AFHELPLIBRARY);
- break;
- case IDM_GRABREFRESHHELP:
- return (MRESULT)thisPtr->wpDisplayHelp(IDHLP_GRABREFRESH,AFHELPLIBRARY);
- break;
- case IDM_GRABSELECTALLHELP:
- return (MRESULT)thisPtr->wpDisplayHelp(IDHLP_GRABSELECTALL,AFHELPLIBRARY);
- break;
- case IDM_GRABBERSETUP:
- bGrabberFirst=TRUE;
- thisPtr->wpViewObject(NULL,OPEN_SETTINGS,0);
- return (MRESULT)TRUE;
- /* push buttons */
- default:
- break;
- }
- } /* end of if(thisPtr) */
-
- switch(SHORT1FROMMP(mp1))
- {
- case IDPB_GRAB:
-
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(thisPtr) {
- hwndTemp=thisPtr->cwQueryFrameCtl(WinQueryWindow(hwnd,QW_PARENT), &sizel,FCTL_TOP, &ulFlags);
-
- WinQueryWindowText( WinWindowFromID(hwndTemp,IDEF_TRACKNAME),sizeof(text),text);
-
- if(!strlen(text)) {
- if(!WinLoadString(WinQueryAnchorBlock(hwnd),queryModuleHandle(),IDSTR_NOTRACKNAMETEXT,sizeof(text),text))
- sprintf(text,"You must specify a filename.");
- if(!WinLoadString(WinQueryAnchorBlock(hwnd),queryModuleHandle(),IDSTR_NOTRACKSSELECTEDTITLE, sizeof(title),title))
- sprintf(title,"Grab tracks message");
- WinMessageBox( HWND_DESKTOP, hwnd, text, title, 0UL, MB_OK | MB_ICONEXCLAMATION|MB_MOVEABLE );
- break;
- }
- /* Get num Tracks */
- numTracks=(int)LONGFROMMR(WinSendMsg(WinWindowFromID(hwnd,IDLB_GRABTRACKS),LM_QUERYITEMCOUNT,0,0));
- if(!numTracks)
- break;/* Catch error */
-
- thisPtr->cwEnableGrabControls(FALSE);
- thisPtr->cwEnableSelectControls(FALSE);
-
- a=SHORT1FROMMR(WinSendMsg(WinWindowFromID(hwnd,IDLB_GRABTRACKS),LM_QUERYSELECTION,MPFROMSHORT(LIT_FIRST),0));
- if(a==LIT_NONE) {
- if(!WinLoadString(WinQueryAnchorBlock(hwnd),queryModuleHandle(),IDSTR_NOTRACKSSELECTEDTEXT,sizeof(text),text))
- sprintf(text,"There are no tracks selected");
- if(!WinLoadString(WinQueryAnchorBlock(hwnd),queryModuleHandle(),IDSTR_NOTRACKSSELECTEDTITLE, sizeof(title),title))
- sprintf(title,"Grab tracks message");
- WinMessageBox( HWND_DESKTOP, hwnd, text, title, 0UL, MB_OK | MB_INFORMATION|MB_MOVEABLE );
- break;
- }
-
- thisPtr->tid=_beginthread(grabThreadFunc,NULL,8192*2,(void*)thisPtr); //Fehlerbehandlung fehlt
- }/* end of if(thisPtr) */
- break;
- case IDPB_SELECTALL:
- numTracks=(int)LONGFROMMR(WinSendMsg(WinWindowFromID(hwnd,IDLB_GRABTRACKS),LM_QUERYITEMCOUNT,0,0));
- if(!numTracks)
- break;
- for(a=0;a<numTracks;a++) {
- WinSendMsg(WinWindowFromID(hwnd,IDLB_GRABTRACKS),LM_SELECTITEM,MPFROMSHORT(a),MPFROMSHORT(TRUE));
- }
- break;
- case IDPB_REFRESH:
- int numTracks;
- int a;
- LONG lCddbId;
- CDDBINFO cddbInfo;
-
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(thisPtr) {
- if(!GrabberSetupDone){
- thisPtr->wpViewObject(NULL,OPEN_SETTINGS,0);
- break;
- }
-
- WinSendMsg(WinWindowFromID(hwnd,IDLB_GRABTRACKS),LM_DELETEALL,0,
- 0);
- WinEnableWindow(WinWindowFromID(hwnd,IDPB_SELECTALL) ,FALSE);
- WinEnableWindow(WinWindowFromID(hwnd,IDPB_GRAB) ,FALSE);
- hfCD=openDrive(chosenCD);
- /* sprintf(text,"chosenCD %s",chosenCD);
- WinMessageBox( HWND_DESKTOP,
- HWND_DESKTOP,
- text,
- "Tracks",
- 0UL,
- MB_OK | MB_ICONEXCLAMATION );*/
- if(hfCD) {
- numTracks=(int)CDQueryAudioCDTracks(hfCD);
- if(numTracks) {
- if(numTracks==-1) {
- WinMessageBox( HWND_DESKTOP,
- HWND_DESKTOP,
- "The Disk is a data disk!",
- "Tracks",
- 0UL,
- MB_OK | MB_ICONEXCLAMATION );
- }
- else {
- /* Insert the items into the listbox */
- lCddbId=CDDBDiscID(chosenCD,&cddbInfo);
- sprintf(text,"CDDB-ID: %X, Querying local database...",lCddbId);
- thisPtr->cwSetStatusText(text);
- /* Open CDDB.ini and read track names */
-
- for(a=1;a<=numTracks;a++) {
- getTrackName(lCddbId,a,text);
- WinInsertLboxItem(WinWindowFromID(hwnd,IDLB_GRABTRACKS),LIT_END,
- text);
- }/* end of for */
- // thisPtr->cwSetStatusText("");
- WinEnableWindow(WinWindowFromID(hwnd,IDPB_SELECTALL) ,TRUE);
- WinEnableWindow(WinWindowFromID(hwnd,IDPB_GRAB) , TRUE);
- }
- }// end of if(!numTracks)
- closeDrive(hfCD);
- }
- }/* (if thisPtr) */
- break;
- default:
- break;
- }
- return (MRESULT) TRUE;
- default:
- break;
- }
- return WinDefDlgProc(hwnd, msg, mp1, mp2);
- }
-
- /* This procedure handles the write status dialog */
- MRESULT EXPENTRY writeStatusDialogProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
- {
- CWAudioFolder * thisPtr;
-
- switch(msg)
- {
- case WM_INITDLG :
- WinSetWindowULong(hwnd,QWL_USER,(ULONG)PVOIDFROMMP(mp2));//Save object ptr.
- thisPtr=(CWAudioFolder*) PVOIDFROMMP(mp2);
- return (MRESULT) TRUE;
- case WM_HELP:
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(thisPtr)
- thisPtr->wpDisplayHelp(IDDLG_WRITESTATUS, AFHELPLIBRARY);
-
- break;
- case WM_CLOSE:
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(thisPtr->tidWrite)
- /* We are currently writing, so hide the window */
- WinShowWindow(hwnd,FALSE);
- else
- WinPostMsg(hwnd,WM_QUIT,0,0);
- return 0;
- case WM_DESTROY:
- /* The dialog closes and gets destroyed */
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(thisPtr){
- //thisPtr->wpSaveDeferred();
- }
- break;
- case WM_COMMAND:
- switch(SHORT1FROMMP(mp1))
- {
- case IDPB_WRITEBREAK:
- /* User aborts writing */
- DosBeep(1000,100);
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(thisPtr)
- thisPtr->cwEnableWrite(FALSE);
- WinEnableWindow(WinWindowFromID(hwnd,IDPB_WRITEBREAK),FALSE);
- break;
- case IDPB_ABORT:
- DosBeep(5000,300);
- break;
- default:
- break;
- }
- return (MRESULT) TRUE;
- default:
- break;
- }
- return WinDefDlgProc(hwnd, msg, mp1, mp2);
- }
-
-
- /* This procedure handles the cdrecord settings page */
- MRESULT EXPENTRY cdrecordOptionDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
- {
- FILEDLG fd = { 0 };
- CWAudioFolder* thisPtr;
- ULONG ulFlags;
- int a;
- char chrCD[4];
- char driveID[40];
-
- HOBJECT hObject;
-
- switch(msg)
- {
- case WM_INITDLG :
- WinSetWindowULong(WinWindowFromID(hwnd,IDPB_CDRECORDBROWSE),
- QWL_USER,(ULONG)PVOIDFROMMP(mp2));//Save object ptr.
- WinSendMsg(WinWindowFromID(hwnd,IDEF_CDRECORDPATH),EM_SETTEXTLIMIT,MPFROMSHORT((SHORT)CCHMAXPATH),0);
- WinSetWindowText(WinWindowFromID(hwnd,IDEF_CDRECORDPATH),chrCDRecord);
- WinSendMsg(WinWindowFromID(hwnd,IDEF_CDRECORDOPTIONS),EM_SETTEXTLIMIT,MPFROMSHORT((SHORT)CCHMAXPATH),0);
- WinSetWindowText(WinWindowFromID(hwnd,IDEF_CDRECORDOPTIONS),chrCDROptions);
- if(lCDROptions&IDCDR_HIDEWINDOW)
- WinCheckButton(hwnd,IDCB_CDRSTARTHIDDEN,1);
- if(lCDROptions&IDCDR_CLOSEWINDOW)
- WinCheckButton(hwnd,IDCB_CDRCLOSEWINDOW,1);
- for( a=0; a<iNumCD ;a++) {
- chrCD[0]=cFirstCD+a;
- chrCD[1]=':';
- chrCD[2]=0;
- WinSendMsg(WinWindowFromID(hwnd,IDLB_WRITERLETTER),LM_INSERTITEM,MPFROMSHORT(LIT_END),(MPARAM)chrCD);
- if(!a){
- if(!setupDone)
- WinSetWindowText(WinWindowFromID(hwnd,IDLB_WRITERLETTER),chrCD);
- else
- WinSetWindowText(WinWindowFromID(hwnd,IDLB_WRITERLETTER),chosenWriter);
- }
- }
-
- return (MRESULT) TRUE;
- case WM_HELP:
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(WinWindowFromID(hwnd,IDPB_CDRECORDBROWSE),QWL_USER);
- if(!thisPtr)
- break;
- switch(WinQueryWindowUShort(WinQueryFocus(HWND_DESKTOP),QWS_ID))
- {
- case IDEF_CDRECORDOPTIONS:
- return (MRESULT)thisPtr->wpDisplayHelp(IDEF_CDRECORDOPTIONS,AFHELPLIBRARY);
- case IDPB_WIDERRUFEN:
- return (MRESULT)thisPtr->wpDisplayHelp(IDPB_WIDERRUFEN,AFHELPLIBRARY);
- case IDPB_CDRECORDBROWSE:
- return (MRESULT)thisPtr->wpDisplayHelp(IDPB_CDRECORDBROWSE,AFHELPLIBRARY);
- case IDEF_CDRECORDPATH:
- return (MRESULT)thisPtr->wpDisplayHelp(IDEF_CDRECORDPATH,AFHELPLIBRARY);
- default:
- break;
- }
- return (MRESULT)thisPtr->wpDisplayHelp(IDDLG_CDRECORDSETUP,AFHELPLIBRARY);
- break;
- case WM_DESTROY:
- /* The notebook closes and gets destroyed */
- /* Query the cdrecord path from the entryfield */
- WinQueryWindowText( WinWindowFromID(hwnd,IDEF_CDRECORDPATH),sizeof(chrCDRecord),chrCDRecord);
- /* Query the cdrecord options from the entryfield */
- WinQueryWindowText( WinWindowFromID(hwnd,IDEF_CDRECORDOPTIONS),sizeof(chrCDROptions),chrCDROptions);
- ulFlags=0;
- if(WinQueryButtonCheckstate(hwnd,IDCB_CDRSTARTHIDDEN)&1)
- ulFlags|=IDCDR_HIDEWINDOW;
- if(WinQueryButtonCheckstate(hwnd,IDCB_CDRCLOSEWINDOW)&1)
- ulFlags|=IDCDR_CLOSEWINDOW;
- lCDROptions=ulFlags;
- sendConfig();
-
- /* Set/unset writeflag of diskobject */
- /* for( a=0; a<iNumCD ;a++) {
- chrCD[0]=cFirstCD+a;
- chrCD[1]=0;*/
- /* Build ID of CD-Drive object */
- //sprintf(driveID,"<WP_DRIVE_%s>",chrCD);
- /* Clear writer flag of disk objects */
- //if((hObject=WinQueryObject(driveID))!=NULL) {
- // WinSetObjectData(hObject,"ISWRITER=0");
- // }
- //}
- /* Query the cd-drive */
- WinQueryWindowText( WinWindowFromID(hwnd,IDLB_WRITERLETTER),sizeof(chosenWriter),chosenWriter);
- // WinQueryWindowText( WinWindowFromID(hwnd,IDLB_WRITERLETTER),sizeof(chrCD),chrCD);
- // chrCD[1]=0;
- /* Build ID of chosenCD-Drive object */
- // sprintf(driveID,"<WP_DRIVE_%s>",chrCD);
- /* Set writer flag of this disk object */
- // if((hObject=WinQueryObject(driveID))!=NULL) {
- // WinSetObjectData(hObject,"ISWRITER=1");
- //}
- /* Let the WPS save the new data */
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(WinWindowFromID(hwnd,IDPB_CDRECORDBROWSE),QWL_USER);
- if(thisPtr)
- thisPtr->wpSaveDeferred();
- /* Setup is done */
- setupDone=TRUE;
- return (MRESULT) TRUE;
- case WM_COMMAND:
- switch(SHORT1FROMMP(mp1))
- {
- case IDPB_CDRECORDBROWSE:
- /* User pressed the browse button */
- fd.cbSize = sizeof( fd );
- /* It's an centered 'Open'-dialog */
- fd.fl = FDS_OPEN_DIALOG|FDS_CENTER;
- /* Set the title of the file dialog */
- fd.pszTitle = "Search CDRecord/2";
- /* Only show *.exe files */
- sprintf(fd.szFullFile,"%s","*.exe");
-
- if( WinFileDlg( HWND_DESKTOP, hwnd, &fd ) == NULLHANDLE )
- {
- /* WinFileDlg failed */
- break;
- }
- if( fd.lReturn == DID_OK )
- {
- WinSetWindowText( WinWindowFromID(hwnd,IDEF_CDRECORDPATH), fd.szFullFile );
- }
- break;
- case IDPB_WIDERRUFEN:
- /* User pressed the UNDO button */
- WinSetWindowText(WinWindowFromID(hwnd,IDEF_CDRECORDPATH),chrCDRecord);
- WinSetWindowText(WinWindowFromID(hwnd,IDEF_CDRECORDOPTIONS),chrCDROptions);
- if(lCDROptions&IDCDR_HIDEWINDOW)
- WinCheckButton(hwnd,IDCB_CDRSTARTHIDDEN,1);
- if(lCDROptions&IDCDR_CLOSEWINDOW)
- WinCheckButton(hwnd,IDCB_CDRCLOSEWINDOW,1);
- break;
- default:
- break;
- }
- return (MRESULT) TRUE;
- default:
- break;
- }
- return WinDefDlgProc(hwnd, msg, mp1, mp2);
- }
-
- /* This procedure handles the cdrecord settings page */
- MRESULT EXPENTRY grabberOptionDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
- {
- FILEDLG fd = { 0 };
- CWAudioFolder* thisPtr;
- int a;
- char chrCD[4];
-
- switch(msg)
- {
- case WM_INITDLG :
- WinSetWindowULong(WinWindowFromID(hwnd,IDPB_GRABBERBROWSE),
- QWL_USER,(ULONG)PVOIDFROMMP(mp2));//Save object ptr.
- thisPtr=(CWAudioFolder*)PVOIDFROMMP(mp2);
- WinSendMsg(WinWindowFromID(hwnd,IDEF_GRABBERPATH),EM_SETTEXTLIMIT,MPFROMSHORT((SHORT)CCHMAXPATH),0);
- WinSetWindowText(WinWindowFromID(hwnd,IDEF_GRABBERPATH),chrGrabberPath);
- WinSendMsg(WinWindowFromID(hwnd,IDEF_GRABBEROPTIONS),EM_SETTEXTLIMIT,MPFROMSHORT((SHORT)CCHMAXPATH),0);
- WinSetWindowText(WinWindowFromID(hwnd,IDEF_GRABBEROPTIONS),chrGrabberOptions);
- WinCheckButton(hwnd,IDCB_TRACKNUMBERS,bTrackNumbers);
- for( a=0; a<iNumCD ;a++) {
- chrCD[0]=cFirstCD+a;
- chrCD[1]=':';
- chrCD[2]=0;
- WinSendMsg(WinWindowFromID(hwnd,IDLB_DROPDOWN),LM_INSERTITEM,MPFROMSHORT(LIT_END),(MPARAM)chrCD);
- if(!a){
- if(!GrabberSetupDone)
- WinSetWindowText(WinWindowFromID(hwnd,IDLB_DROPDOWN),chrCD);
- else
- WinSetWindowText(WinWindowFromID(hwnd,IDLB_DROPDOWN),chosenCD);
- }
- }
-
- return (MRESULT) TRUE;
- case WM_HELP:
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(WinWindowFromID(hwnd,IDPB_GRABBERBROWSE),QWL_USER);
- if(!thisPtr)
- break;
- switch(WinQueryWindowUShort(WinQueryFocus(HWND_DESKTOP),QWS_ID))
- {
- case IDEF_GRABBEROPTIONS:
- return (MRESULT)thisPtr->wpDisplayHelp(IDEF_GRABBEROPTIONS,AFHELPLIBRARY);
- case IDPB_GRABBERUNDO:
- return (MRESULT)thisPtr->wpDisplayHelp(IDPB_GRABBERUNDO,AFHELPLIBRARY);
- case IDPB_GRABBERBROWSE:
- return (MRESULT)thisPtr->wpDisplayHelp(IDPB_GRABBERBROWSE,AFHELPLIBRARY);
- case IDEF_GRABBERPATH:
- return (MRESULT)thisPtr->wpDisplayHelp(IDEF_GRABBERPATH,AFHELPLIBRARY);
- case IDCB_TRACKNUMBERS:
- return (MRESULT)thisPtr->wpDisplayHelp(IDCB_TRACKNUMBERS,AFHELPLIBRARY);
-
- default:
- break;
- }
- return (MRESULT)thisPtr->wpDisplayHelp(IDDLG_GRABBERSETUP,AFHELPLIBRARY);
- break;
- case WM_DESTROY:
- /* The notebook closes and gets destroyed */
- /* Query the grabber path from the entryfield */
- WinQueryWindowText( WinWindowFromID(hwnd,IDEF_GRABBERPATH),sizeof(chrGrabberPath),chrGrabberPath);
- /* Query the grabber options from the entryfield */
- WinQueryWindowText( WinWindowFromID(hwnd,IDEF_GRABBEROPTIONS),sizeof(chrGrabberOptions),chrGrabberOptions);
- /* Query the cd-drive */
- WinQueryWindowText( WinWindowFromID(hwnd,IDLB_DROPDOWN),sizeof(chosenCD),chosenCD);
- /* Let the WPS save the new instance data */
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(WinWindowFromID(hwnd,IDPB_GRABBERBROWSE),QWL_USER);
- bTrackNumbers=WinQueryButtonCheckstate(hwnd,IDCB_TRACKNUMBERS);
- if(thisPtr) {
- thisPtr->wpSaveDeferred();
- }
- /* Setup is done */
- GrabberSetupDone=TRUE;
- return (MRESULT) TRUE;
- case WM_COMMAND:
- switch(SHORT1FROMMP(mp1))
- {
- case IDPB_GRABBERBROWSE:
- /* User pressed the browse button */
- fd.cbSize = sizeof( fd );
- /* It's an centered 'Open'-dialog */
- fd.fl = FDS_OPEN_DIALOG|FDS_CENTER;
- /* Set the title of the file dialog */
- fd.pszTitle = "Search Audio-Grabber";
- /* Only show *.exe files */
- sprintf(fd.szFullFile,"%s","*.exe");
-
- if( WinFileDlg( HWND_DESKTOP, hwnd, &fd ) == NULLHANDLE )
- {
- /* WinFileDlg failed */
- break;
- }
- if( fd.lReturn == DID_OK )
- {
- WinSetWindowText( WinWindowFromID(hwnd,IDEF_GRABBERPATH), fd.szFullFile );
- }
- break;
- case IDPB_GRABBERUNDO:
- /* User pressed the UNDO button */
- WinSetWindowText(WinWindowFromID(hwnd,IDEF_GRABBERPATH),chrGrabberPath);
- WinSetWindowText(WinWindowFromID(hwnd,IDEF_GRABBEROPTIONS),chrGrabberOptions);
- WinSetWindowText(WinWindowFromID(hwnd,IDLB_DROPDOWN),chosenCD);
- break;
- default:
- break;
- }
- return (MRESULT) TRUE;
- default:
- break;
- }
- return WinDefDlgProc(hwnd, msg, mp1, mp2);
- }
-
- /*********************************************************************/
- /* */
- /* This procedure handles the dialog (frame extension) of the folder */
- /* */
- /*********************************************************************/
- MRESULT EXPENTRY dialogProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
- {
- CWAudioFolder *thisPtr;
- HWND hwndTracks;
- WPObject * contentObject;
- char name[CCHMAXPATH];
- ULONG ulNameSize;
- HWND hwndCnr;
- PMINIRECORDCORE mrc;
- ULONG ulWriteFlagsLocal;
- ULONG ulSize;
- POINTL ptl;
- SHORT a,b;
-
- switch(msg)
- {
- case WM_INITDLG :
- WinSetWindowULong(hwnd,QWL_USER,(ULONG)PVOIDFROMMP(mp2));//Save object ptr.
- thisPtr=(CWAudioFolder*) PVOIDFROMMP(mp2);
- /* Set the check buttons according the instance write flags */
- /* The member function cwQueryWriteFlags() returns the current
- state of the flags. */
- ulWriteFlagsLocal=thisPtr->cwQueryWriteFlags();
- WinCheckButton(hwnd,IDCB_PAD,(ulWriteFlagsLocal & IDWF_PAD)&&TRUE);
- WinCheckButton(hwnd,IDCB_NOFIX,(ulWriteFlagsLocal & IDWF_NOFIX)&&TRUE);
- WinCheckButton(hwnd,IDCB_DUMMY,(ulWriteFlagsLocal & IDWF_DUMMY)&&TRUE);
- WinCheckButton(hwnd,IDCB_PREEMP,(ulWriteFlagsLocal & IDWF_PREEMP)&&TRUE);
- return (MRESULT) TRUE;
- case WM_HELP:
- /* Get the object pointer from the window words. We saved it in WM_INITDLG. */
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(thisPtr)
- /* Display the helppanel IDDLG_GRABDIALOG */
- return (MRESULT)thisPtr->wpDisplayHelp(IDDLG_GRABDIALOG,AFHELPLIBRARY);
- break;
- case WM_DESTROY:
- /* The dialog closes and gets destroyed */
- /* Get the object pointer */
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(thisPtr){
- /* Query the checkboxes */
- if(WinQueryButtonCheckstate(hwnd,IDCB_PAD))
- ulWriteFlagsLocal=IDWF_PAD;
- if(WinQueryButtonCheckstate(hwnd,IDCB_NOFIX))
- ulWriteFlagsLocal|=IDWF_NOFIX;
- if(WinQueryButtonCheckstate(hwnd,IDCB_DUMMY))
- ulWriteFlagsLocal|=IDWF_DUMMY;
- if(WinQueryButtonCheckstate(hwnd,IDCB_PREEMP))
- ulWriteFlagsLocal|=IDWF_PREEMP;
- /* Save checkbox states in the instance varables */
- thisPtr->cwSetWriteFlags( ulWriteFlagsLocal,WF_ALLFLAGS);
- /* Let the WPS save the instance data */
- thisPtr->wpSaveDeferred();
- thisPtr->hwndWrite=0;
- }
- break;
- case WM_BUTTON2DOWN:
- WinQueryPointerPos(HWND_DESKTOP,&ptl);
- WinMapWindowPoints(HWND_DESKTOP,hwnd,&ptl,1);
- hwndTracks=WinWindowFromPoint(hwnd,&ptl,FALSE);/* Get child window under ptr */
- switch(WinQueryWindowUShort(hwndTracks,QWS_ID))/* Get child window id */
- {
- case IDCB_PAD:
- a=IDM_WRITEPADHELP;
- b=a;
- break;
- case IDCB_NOFIX:
- a=IDM_WRITENOFIXHELP;
- b=a;
- break;
- case IDCB_DUMMY:
- a=IDM_WRITEDUMMYHELP;
- b=a;
- break;
- case IDCB_PREEMP:
- a=IDM_WRITEPREEMPHELP;
- b=a;
- break;
- case IDPB_BURN:
- a=IDM_WRITEBURNHELP;
- b=a;
- break;
- default:
- a=IDM_WRITEDEFAULTHELP;
- b=IDM_CDRECORDSETUP;
- break;
- }
- hwndTracks=WinLoadMenu(hwnd,queryModuleHandle(),a);
- if(hwndTracks) {
- if(WinPopupMenu(hwnd,hwnd,hwndTracks,ptl.x,ptl.y,b,PU_VCONSTRAIN|PU_HCONSTRAIN|
- PU_MOUSEBUTTON1|PU_KEYBOARD|PU_NONE|PU_SELECTITEM)) {
-
- return (MRESULT)FALSE;
- }
- }
- break;
- case WM_CONTROL:
- /* This part handles the check button messages */
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(thisPtr){
- ulWriteFlagsLocal=0;
- switch(SHORT1FROMMP(mp1))
- {
- case IDCB_PAD:
- if(WinQueryButtonCheckstate(hwnd,IDCB_PAD))
- ulWriteFlagsLocal=IDWF_PAD;
- thisPtr->cwSetWriteFlags( ulWriteFlagsLocal,IDWF_PAD);
- break;
- case IDCB_NOFIX:
- if(WinQueryButtonCheckstate(hwnd,IDCB_NOFIX))
- ulWriteFlagsLocal=IDWF_NOFIX;
- thisPtr->cwSetWriteFlags( ulWriteFlagsLocal,IDWF_NOFIX);
- break;
- case IDCB_DUMMY:
- if(WinQueryButtonCheckstate(hwnd,IDCB_DUMMY))
- ulWriteFlagsLocal=IDWF_DUMMY;
- thisPtr->cwSetWriteFlags( ulWriteFlagsLocal,IDWF_DUMMY);
- break;
- case IDCB_PREEMP:
- if(WinQueryButtonCheckstate(hwnd,IDCB_PREEMP))
- ulWriteFlagsLocal=IDWF_PREEMP;
- thisPtr->cwSetWriteFlags( ulWriteFlagsLocal,IDWF_PREEMP);
- break;
- default:
- break;
- }
- /* Tell the WPS to save the instance data */
- thisPtr->wpSaveDeferred();
- }
- break;
- case WM_COMMAND:
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(thisPtr) {
- switch(SHORT1FROMMP(mp1))
- {
- case IDM_WRITEDEFAULTHELP:
- return (MRESULT)thisPtr->wpDisplayHelp(601,AFHELPLIBRARY);
- case IDM_WRITEPADHELP:
- return (MRESULT)thisPtr->wpDisplayHelp(IDHLP_WRITEPAD,AFHELPLIBRARY);
- case IDM_WRITENOFIXHELP:
- return (MRESULT)thisPtr->wpDisplayHelp(IDHLP_WRITENOFIX,AFHELPLIBRARY);
- case IDM_WRITEDUMMYHELP:
- return (MRESULT)thisPtr->wpDisplayHelp(IDHLP_WRITEDUMMY,AFHELPLIBRARY);
- case IDM_WRITEPREEMPHELP:
- return (MRESULT)thisPtr->wpDisplayHelp(IDHLP_WRITEPREEMP,AFHELPLIBRARY);
- case IDM_WRITEBURNHELP:
- return (MRESULT)thisPtr->wpDisplayHelp(IDHLP_WRITEBURN,AFHELPLIBRARY);
-
- case IDM_CDRECORDSETUP:
- bGrabberFirst=FALSE;
- thisPtr->wpViewObject(NULL,OPEN_SETTINGS,0);
- return (MRESULT)TRUE;
- default:
- break;
- }
- }
- switch(SHORT1FROMMP(mp1))
- {
- case IDPB_BURN:
- ulSize=0;
- /* Write CD button pressed */
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(!setupDone){
- if(thisPtr)thisPtr->wpViewObject(NULL,OPEN_SETTINGS,0);
- }
- else{
- /* Load the track list dialog */
- hwndTracks=WinLoadDlg(HWND_DESKTOP,hwnd,trackDialogProc,queryModuleHandle(),IDDLG_SHOWTITLES,thisPtr);
- if(hwndTracks){ /* Catch error */
- /* Get the object pointer */
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(thisPtr){ /* Catch error */
- /* Get folder hwnd */
- hwndCnr=WinQueryWindow(hwnd,QW_PARENT);
- ulSize=thisPtr->cwFillTrackList(hwndCnr,WinWindowFromID(hwndTracks,IDLB_TRACKLIST));
- sprintf(name,"Total size: %d.%d.%d Bytes",ulSize/1000000,(ulSize%1000000)/1000,(ulSize%1000));
- WinSetWindowText(WinWindowFromID(hwndTracks,IDST_TOTALSIZE),name);
-
- ulSize/=(2*2*44100);/* Calculate seconds */
- sprintf(name,"Total time: %d min %d sec",ulSize/60 , (ulSize % 60));
- WinSetWindowText(WinWindowFromID(hwndTracks,IDST_TOTALTIME),name);
- }//end of if(thisPtr)
- }//end of if(hwndTracks)
- }
- break;
- default:
- break;
- }
- return (MRESULT) TRUE;
- default:
- break;
- }
- return WinDefDlgProc(hwnd, msg, mp1, mp2);
- }
-
-
-
- /***********************************************/
- /* */
- /* This procedure handles the tracklist dialog */
- /* */
- /***********************************************/
- MRESULT EXPENTRY trackDialogProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
- {
- CWAudioFolder *thisPtr;
-
- STARTDATA startData={0};
- char chrParams[CCHMAXPATH+4000];
- char chrParams2[CCHMAXPATH];
- char chrLoadError[CCHMAXPATH];
- PSZ pszTitle="CDRecord/2";
- APIRET rc;
- PID pid;
- ULONG ulSessionID=0;
- ULONG ulWriteFlagsLocal;
- int iItemCount,a;
-
- switch(msg)
- {
- case WM_INITDLG :
- WinSetWindowULong(hwnd,QWL_USER,(ULONG)PVOIDFROMMP(mp2));//Save object ptr.
- /* Disable the 'Write'-button of the Audio folder */
-
- /* Check if we have items in the listbox. If not disable Ok-button. */
- // iItemCount=(int)LONGFROMMR(WinSendMsg(WinWindowFromID(hwnd,IDLB_TRACKLIST),LM_QUERYITEMCOUNT,0,0));
- thisPtr=(CWAudioFolder*)PVOIDFROMMP(mp2);
- thisPtr->hwndWriteLB=WinWindowFromID(hwnd,IDLB_TRACKLIST);
- /* Disable windows in write dialog */
- thisPtr->cwEnableWriteControls(FALSE);
- return (MRESULT) TRUE;
- case WM_DESTROY:
- /* The notebook closes and gets destroyed */
- /* Enable windows in write dialog */
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- thisPtr->hwndWriteLB=0;
- thisPtr->cwEnableWriteControls(TRUE);
- break;
- case WM_CLOSE:
- /* Enable the 'Write'-button of the Audio folder */
- WinDismissDlg(hwnd,0);
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(!thisPtr->tidWrite)
- WinDestroyWindow(hwnd);
- break;
- case WM_COMMAND:
- switch(SHORT1FROMMP(mp1))
- {
- case IDPB_CANCEL:
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- thisPtr->cwEnableWriteControls(TRUE);
- WinPostMsg(hwnd,WM_CLOSE,0,0);
- break;
- case IDPB_OK:
-
- thisPtr=(CWAudioFolder*) WinQueryWindowULong(hwnd,QWL_USER);
- if(thisPtr)
- ulWriteFlagsLocal=thisPtr->cwQueryWriteFlags();
- memset(&startData,0,sizeof(startData));
- startData.Length=sizeof(startData);
- //startData.Related=SSF_RELATED_CHILD;
- startData.Related=SSF_RELATED_INDEPENDENT;
- startData.FgBg=SSF_FGBG_FORE;
- startData.TraceOpt=SSF_TRACEOPT_NONE;
- startData.PgmTitle=pszTitle;
- startData.PgmName=chrCDRecord;
- startData.InheritOpt=SSF_INHERTOPT_SHELL;
- startData.SessionType=SSF_TYPE_WINDOWABLEVIO;
- startData.PgmControl=SSF_CONTROL_VISIBLE|SSF_CONTROL_MAXIMIZE|SSF_CONTROL_NOAUTOCLOSE;
- startData.InitXPos=30;
- startData.InitYPos=30;
- startData.InitXSize=500;
- startData.InitYSize=400;
- startData.ObjectBuffer=chrLoadError;
- startData.ObjectBuffLen=(ULONG)sizeof(chrLoadError);
- sprintf(chrParams,"%s -audio",chrCDROptions);
- if(ulWriteFlagsLocal & IDWF_DUMMY)
- sprintf(chrParams,"%s -dummy",chrParams);
- if(ulWriteFlagsLocal & IDWF_PAD)
- sprintf(chrParams,"%s -pad",chrParams);
- if(ulWriteFlagsLocal & IDWF_NOFIX)
- sprintf(chrParams,"%s -nofix",chrParams);
- if(ulWriteFlagsLocal & IDWF_PREEMP)
- sprintf(chrParams,"%s -preemp",chrParams);
-
- iItemCount=(int)LONGFROMMR(WinSendMsg(WinWindowFromID(hwnd,IDLB_TRACKLIST),LM_QUERYITEMCOUNT,0,0));
- for(a=0;a<iItemCount;a++){
- WinSendMsg(WinWindowFromID(hwnd,IDLB_TRACKLIST),LM_QUERYITEMTEXT,
- MPFROM2SHORT(a,sizeof(chrParams2)),
- chrParams2);
- sprintf(chrParams,"%s %s ",chrParams,chrParams2);/* add track path to cmd-line */
- }
- if(!iItemCount){
- DosBeep(100,100);
- break;
- }
- startData.PgmTitle=chrParams;
- startData.PgmInputs=chrParams;
- thisPtr->tidWrite=_beginthread(writeThreadFunc,NULL,8192*8,(void*)thisPtr); //Fehlerbehandlung fehlt
- WinPostMsg(hwnd,WM_CLOSE,0,0);
- break;
- default:
- break;
- }
- return (MRESULT) TRUE;
- default:
- return WinDefDlgProc(hwnd, msg, mp1, mp2);
- }
- return (MRESULT) FALSE;
- }
-
-
-