From: <dm...@us...> - 2008-08-12 03:28:01
|
Revision: 870 http://panotools.svn.sourceforge.net/panotools/?rev=870&view=rev Author: dmg Date: 2008-08-12 03:28:10 +0000 (Tue, 12 Aug 2008) Log Message: ----------- 2008-08-11 dmg <dm...@uv...> * CMakeList.txt: Updated role for emacs tags * tools/CMakeList.txt: Added ptroller to bulid. * tools/PTroller.c (main): Read number of images from PTO script. * tiff.c (panoTiffVerifyAreCompatible): Error message is displayed when opening the filename. No need to repeat it. * shell_mac.c, sys_mac.c, sys_mac.h: removed, they are no longer needed, as we do not support OS 9 any more. * PTcommon.c: Continued working on functions to dump data structures. Modified Paths: -------------- branches/dmgLibPano/CMakeLists.txt branches/dmgLibPano/ChangeLog branches/dmgLibPano/PTcommon.c branches/dmgLibPano/tiff.c branches/dmgLibPano/tools/CMakeLists.txt branches/dmgLibPano/tools/PTroller.c Removed Paths: ------------- branches/dmgLibPano/shell_mac.c branches/dmgLibPano/sys_mac.c branches/dmgLibPano/sys_mac.h Modified: branches/dmgLibPano/CMakeLists.txt =================================================================== --- branches/dmgLibPano/CMakeLists.txt 2008-08-11 10:36:23 UTC (rev 869) +++ branches/dmgLibPano/CMakeLists.txt 2008-08-12 03:28:10 UTC (rev 870) @@ -4,7 +4,6 @@ IF (UNIX) ADD_CUSTOM_TARGET(tags ctags-exuberant -e `find . -name '*.c' -or -name '*.h'`) - ADD_CUSTOM_TARGET(etags DEPENDS tags) ADD_DEFINITIONS(-std=gnu99 -Wall -pedantic) ENDIF (UNIX) Modified: branches/dmgLibPano/ChangeLog =================================================================== --- branches/dmgLibPano/ChangeLog 2008-08-11 10:36:23 UTC (rev 869) +++ branches/dmgLibPano/ChangeLog 2008-08-12 03:28:10 UTC (rev 870) @@ -1,5 +1,21 @@ 2008-08-11 dmg <dm...@uv...> + + * CMakeList.txt: Updated role for emacs tags + + * tools/CMakeList.txt: Added ptroller to bulid. + + * tools/PTroller.c (main): Read number of images from PTO script. + + * tiff.c (panoTiffVerifyAreCompatible): Error message is + displayed when opening the filename. No need to repeat it. + + * shell_mac.c, sys_mac.c, sys_mac.h: removed, they are no longer + needed, as we do not support OS 9 any more. + + * PTcommon.c: Continued working on functions to dump data structures. +2008-08-11 dmg <dm...@uv...> + * tools/CMakeLists.txt: added file. it can compile ptmender now * PTcommon.c: Added some functions to dump the contents of the Modified: branches/dmgLibPano/PTcommon.c =================================================================== --- branches/dmgLibPano/PTcommon.c 2008-08-11 10:36:23 UTC (rev 869) +++ branches/dmgLibPano/PTcommon.c 2008-08-12 03:28:10 UTC (rev 870) @@ -583,21 +583,22 @@ { int i; /* image */ - printf("\tImage parameters:\n" - "\t\tWidth %d\n" - "\t\tWidth %d\n" + printf("\t\tWidth %d\n" + "\t\tHeight %d\n" "\t\tHFov %f\n" "\t\tYaw %f\n" "\t\tPitch %f\n" "\t\tRoll %f\n" - "\t\tFormat param counts %d\n" - "\t\tName %s\n", + "\t\tFormat (projection) %d\n" + "\t\tFormat param counts %d\n" + "\t\tName (or format for pano info) %s\n", (int)im->width, (int)im->height, im->hfov, im->yaw, im->pitch, im->roll, + (int)im->format, im->formatParamCount, im->name ); @@ -611,10 +612,50 @@ } +#ifdef adfadf +static void panoCorrectPrefsDump(cPrefs *prefs) +{ + /* image */ + int i; + printf("\t\tradial %d\n" + "\t\tvertical shift? %d\n" + "\t\thorizontal tilt %d\n" + ); +/* + int radial; // Radial correction requested? + double radial_params[3][5]; // 3 colors x (4 coeffic. for 3rd order polys + correction radius) + int vertical; // Vertical shift requested ? + double vertical_params[3]; // 3 colors x vertical shift value + int horizontal; // horizontal tilt ( in screenpoints) + double horizontal_params[3]; // 3 colours x horizontal shift value + int shear; // shear correction requested? + double shear_x; // horizontal shear values + double shear_y; // vertical shear values + int resize; // scaling requested ? + pt_int32 width; // new width + pt_int32 height; // new height + int luminance; // correct luminance variation? + double lum_params[3]; // parameters for luminance corrections + int correction_mode; // 0 - radial correction;1 - vertical correction;2 - deregistration + int cutFrame; // remove frame? 0 - no; 1 - yes + int fwidth; + int fheight; + int frame; + int fourier; // Fourier filtering requested? + int fourier_mode; // _faddBlurr vs _fremoveBlurr + fullPath psf; // Point Spread Function, full path/fsspec to psd-file + int fourier_nf; // Noise filtering: _nf_internal vs _nf_custom + fullPath nff; // noise filtered file: full path/fsspec to psd-file + double filterfactor; // Hunt factor + double fourier_frame; // To correct edge errors +*/ + +} +#endif -void panoAdjustLineDump(aPrefs *prefs) +static void panoAdjustLineDump(aPrefs *prefs) { printf("Prefs\n"); //%%i w4080 h4080 f0 K0a1 K0b0 K1a1 K1b0 K2a1 K2b0 Va1 Vb0 Vc0 Vd0 Vx0 Vy0 a0 b0 c0 d0 e0 g0 p0 r0 t0 v31.0866 y0 u10 n"84.jpg" @@ -626,7 +667,7 @@ "\tNumber triangles %d\n" "\tInterpolator %d\n" "\tGamma %f\n" - "\tFaststep %d\n", + "\tFaststep (0=>40, 1=> 6, otherwise 0) %d\n", (int)prefs->magic, (int)prefs->mode, prefs->scriptFile.name, @@ -778,8 +819,14 @@ goto mainError; } + panoAdjustLineDump(prefs); + // Chec this functions to implement + // the actual processing of the data inside thmm + // ReadModeDescription( sPrefs *sP, char *line ) + exit(1); + // printf("*********cut frame: should be zero for S and no crop %d\n", prefs->im.cP.cutFrame); //New for PTMender...PTMender uses "cropped" TIFFs as its intermediate file Deleted: branches/dmgLibPano/shell_mac.c =================================================================== --- branches/dmgLibPano/shell_mac.c 2008-08-11 10:36:23 UTC (rev 869) +++ branches/dmgLibPano/shell_mac.c 2008-08-12 03:28:10 UTC (rev 870) @@ -1,596 +0,0 @@ -#include <Controls.h> -#include <TextUtils.h> -#include <Menus.h> -#include <Errors.h> -#include <StandardFile.h> -#include <ToolUtils.h> -#include <Devices.h> -#include <Folders.h> -#include <Events.h> -#include <LowMem.h> -#include <Dialogs.h> -#include <MacMemory.h> -#include <Files.h> -#include <LowMem.h> -#include <stdio.h> -#include <stdlib.h> -#include <stdarg.h> -#include <Files.h> -#include <Fonts.h> -#include "filter.h" -#include <AppleEvents.h> -#include <AERegistry.h> - - - -static AEEventHandlerUPP OAPPHandlerUPP, ODOCHandlerUPP, PDOCHandlerUPP, - QUITHandlerUPP, DOSCHandlerUPP; - - - -static void EventInit( void ); -static pascal OSErr DoOpenApp( AppleEvent *theAppleEvent,AppleEvent *reply, long refCon); -static pascal OSErr DoOpenDoc( AppleEvent *theAppleEvent,AppleEvent *reply, long refCon); -static pascal OSErr DoScript( AppleEvent *theAppleEvent,AppleEvent *reply, long refCon); -static void SetUpMenus(void); -static void DoCommand(long mResult); - -static OSErr GotRequiredParams( AppleEvent *appleEventPtr ); -static int FullToFolder(StringPtr name, short *volume, long *folder); - - - -// Globals - -static Boolean gDone = false; - -static QDGlobals qd; -static int argc; -static char **argv, appName[64]; - -int ccommand( char ***argvPtr) -{ - int i; - EventRecord event; - OSErr myErr = noErr; - fullPath app; - Point thePoint; - short thePart; - WindowPtr whichWindow; - unsigned char theChar; - - - InitGraf(&qd.thePort); - InitFonts(); - InitWindows(); - InitMenus(); - FlushEvents(everyEvent,0); - TEInit(); - InitDialogs( nil ); - InitCursor(); - MaxApplZone(); - - for(i=0; i<10; i++) - MoreMasters(); - - setLibToResFile(); - - if( makePathToHost ( &app ) == 0 ) - { - p2cstr( app.name ); - strcpy( appName, (char*)app.name); - } - else - strcpy( appName, "dummy"); - - - - EventInit(); - SetUpMenus(); - - argc = 0; argv = nil; - - - while( !gDone ) - { - if ( WaitNextEvent ( everyEvent, &event, 20L, nil) ) - { - switch ( event.what ) - { - case kHighLevelEvent: - AEProcessAppleEvent( &event ); - break; - case mouseDown: - thePoint = event.where; - switch (thePart = FindWindow(thePoint, &whichWindow)) - { - case inSysWindow: - SystemClick(&event, whichWindow); - break; - - case inMenuBar: - DoCommand(MenuSelect(thePoint)); - break; - } - break; - case keyDown: - case autoKey: - theChar = (unsigned char)BitAnd(event.message, charCodeMask); - if (BitAnd(event.modifiers, cmdKey) != 0) - DoCommand(MenuKey(theChar)); - break; - } - } - } - - *argvPtr = argv; - return argc; -} - - - -static void EventInit( void ) -{ - OSErr err; - OAPPHandlerUPP = NewAEEventHandlerProc(DoOpenApp); - err = AEInstallEventHandler ( kCoreEventClass, kAEOpenApplication, OAPPHandlerUPP, 0L, false ); - - ODOCHandlerUPP = NewAEEventHandlerProc(DoOpenDoc); - if( err == noErr) err = AEInstallEventHandler ( kCoreEventClass, kAEOpenDocuments, ODOCHandlerUPP, 0L, false ); - - PDOCHandlerUPP = NewAEEventHandlerProc(DoOpenApp); - if( err == noErr) err = AEInstallEventHandler ( kCoreEventClass, kAEPrintDocuments, PDOCHandlerUPP, 0L, false ); - - QUITHandlerUPP = NewAEEventHandlerProc(DoOpenApp); - if( err == noErr) err = AEInstallEventHandler ( kCoreEventClass, kAEQuitApplication, QUITHandlerUPP, 0L, false ); - - DOSCHandlerUPP = NewAEEventHandlerProc(DoScript); - if( err == noErr) err = AEInstallEventHandler ( kAEMiscStandards, kAEDoScript, DOSCHandlerUPP, 0L, false); - - if( err != noErr) PrintError("Could not initialize AE Handler"); - return; -} - -static pascal OSErr DoOpenApp( AppleEvent *theAppleEvent, - AppleEvent *reply, long refCon) -{ - OSErr err = noErr; - return err; -} - - -static pascal OSErr DoScript( AppleEvent *theAppleEvent, - AppleEvent *reply, long refCon) -{ - DescType returned; - OSErr err = noErr; - long length; - char *theScript, *ch, *c; - int i; - - theScript = (char*) NewPtr(10); - if(theScript == nil) - { - PrintError("Not enough memory"); - goto _DoScript_Exit; - } - err = AEGetParamPtr( theAppleEvent, keyDirectObject, - typeChar, &returned, theScript , 10, &length); - - DisposePtr(theScript); - theScript = (char*) NewPtr(length + 1); - if(theScript == nil) - { - PrintError("Not enough memory"); - goto _DoScript_Exit; - } - - err = AEGetParamPtr( theAppleEvent, keyDirectObject, - typeChar, &returned, theScript , length, &length); - - if( err!= noErr) - { - PrintError( "Could not receive DoScript Command"); - goto _DoScript_Exit; - } - theScript[length] = 0; - // printf("%s\n", theScript); fflush(stdout); - - // get number of args, calculate argc - - argc = 1; ch = theScript; - - while( *ch != 0 ) - { - switch( *ch ) - { - case ' ': - case '\t': ch++; - break; - case '"': argc++; ch++; - while( *ch!='"' && *ch!=0 ) ch++; - if( *ch == 0 ) - { - PrintError("Syntax Error in Script"); - goto _DoScript_Exit; - } - ch++; - break; - default: argc++; while( *ch!=' ' && *ch!='\t' && *ch!=0 ) ch++; - break; - } - } - - // Fill argv array - - argv = (char**)NewPtr( argc * sizeof( char* ) ); - if( argv == nil ) - { - PrintError("Not enough memory"); - goto _DoScript_Exit; - } - - argv[0] = (char*) NewPtr( strlen( appName ) + 1 ); - if( argv[0] == nil ) - { - PrintError("Not enough memory"); - goto _DoScript_Exit; - } - strcpy( argv[0], appName ); - - ch = theScript; i=0; - - while( *ch != 0 && i<argc ) - { - switch( *ch ) - { - case ' ': - case '\t': ch++; - break; - case '"': i++; ch++; c = ch; - while( *c!='"' && *c!=0 ) c++; - argv[i] = (char*) NewPtr( c-ch+1 ); - if( argv[i] == nil ) - { - PrintError("Not enough memory"); - goto _DoScript_Exit; - } - c=argv[i]; - while(*ch!='"') *c++=*ch++; - *c=0; ch++; - break; - default: i++; c = ch; - while( *c!=' ' && *c!='\t' && *c!=0 ) c++; - argv[i] = (char*) NewPtr( c-ch+1 ); - if( argv[i] == nil ) - { - PrintError("Not enough memory"); - goto _DoScript_Exit; - } - c=argv[i]; - while(*ch!=' ' && *ch!='\t' && *ch!=0 ) *c++=*ch++; - *c=0; - break; - } - } - -_DoScript_Exit: - - gDone = true; - DisposePtr( theScript ); - - return err; -} - - - -static pascal OSErr DoOpenDoc( AppleEvent *theAppleEvent, - AppleEvent *reply, long refCon) -{ - AEDescList fileSpecList; - OSErr err = noErr; - DescType type; - Size actual; - AEKeyword keyword; - int i; - long numFiles=0; - FSSpec f; - - - err = AEGetParamDesc( theAppleEvent, keyDirectObject, - typeAEList, &fileSpecList ); - if(err == noErr) - { - err = GotRequiredParams( theAppleEvent ); - if(err == noErr) - { - err = AECountItems( &fileSpecList, &numFiles ); - } - } - if(err != noErr) - { - PrintError("Error receiving ODOC AppleEvent"); - goto _ODOC_exit; - } - - argc = numFiles + 1; - - // Fill argv array - - argv = (char**)NewPtr( argc * sizeof( char* ) ); - if( argv == nil ) - { - PrintError("Not enough memory"); - goto _ODOC_exit; - } - - - argv[0] = (char*) NewPtr( strlen( appName ) + 1 ); - if( argv[0] == nil ) - { - PrintError("Not enough memory"); - goto _ODOC_exit; - } - strcpy( argv[0], appName ); - - for( i=1; i<argc; i++) - { - argv[i] = (char*) NewPtr( 256 ); - if( argv[i] == nil ) - { - PrintError("Not enough memory"); - goto _ODOC_exit; - } - err = AEGetNthPtr( &fileSpecList, i, - typeFSS, &keyword, &type, (Ptr)&f, - sizeof(FSSpec), &actual); - - if( err != noErr ) - { - PrintError("Error processing file list"); - goto _ODOC_exit; - } - - if( FullPathtoString ( &f, argv[i]) ) - { - PrintError("Error processing file list"); - goto _ODOC_exit; - } - } - - -_ODOC_exit: - gDone = true; - return err; - -} - - -static OSErr GotRequiredParams( AppleEvent *appleEventPtr ) -{ - DescType returnedType; - Size actualSize; - OSErr err; - - err = AEGetAttributePtr( appleEventPtr, - keyMissedKeywordAttr, typeWildCard, - &returnedType, nil, 0, &actualSize ); - if ( err == errAEDescNotFound ) - return(noErr); - else if (err == noErr) - return(errAEEventNotHandled); - else - return(err); -} - - - -static int FullToFolder(StringPtr name, short *volume, long *folder) -{ CInfoPBRec dirInfo; HVolumeParam hvp; short i; - dirInfo.dirInfo.ioNamePtr = name; - dirInfo.dirInfo.ioDrDirID = 0; - dirInfo.dirInfo.ioVRefNum = 0; - dirInfo.dirInfo.ioFDirIndex = 0; - if (PBGetCatInfo (&dirInfo, 0) == noErr) { - if (dirInfo.dirInfo.ioFlAttrib & 0x10) { - *folder = dirInfo.dirInfo.ioDrDirID; - hvp.ioNamePtr = name; - for (i = 0; i < name[0]; i++) - if (name[i+1] == ':') - { name[0] = i + 1; break; } - hvp.ioVolIndex = -1; - hvp.ioVRefNum = 0; - PBHGetVInfo ((HParmBlkPtr)&hvp, 0); - *volume = hvp.ioVRefNum; - } - else { *volume = 0, *folder = 0; return -1; } - } - else if (dirInfo.dirInfo.ioResult == fnfErr - || dirInfo.dirInfo.ioResult == dirNFErr) - { dirInfo.dirInfo.ioNamePtr = (StringPtr)name; - dirInfo.dirInfo.ioDrDirID = 0; - dirInfo.dirInfo.ioVRefNum = 0; - if (PBDirCreate((HParmBlkPtr)&dirInfo, false) == noErr) { - *volume = dirInfo.dirInfo.ioVRefNum; - *folder = dirInfo.dirInfo.ioDrDirID; - } - else { *volume = 0, *folder = 0; - return dirInfo.dirInfo.ioResult; - } - } - else { *volume = 0, *folder = 0; return dirInfo.dirInfo.ioResult; } - return noErr; -} - - -int StringtoFullPath(fullPath *file, char *path) -{ - unsigned char ppath[255]; - int i,k; - - /* Make p string */ - - strcpy((char*)&(ppath[1]), path); - *ppath = (unsigned char) strlen(path); - - /* Get basename */ - k = 0; - for(i = 0; i<= ppath[0]; i++) - if(ppath[i] == ':') k=i; - for(i=k; i <= ppath[0]; i++) - file->name[i-k] = ppath[i]; - file->name[0] = ppath[0] - k; - - /* and dirname */ - ppath[0] = k; - - return( FullToFolder((StringPtr) ppath, &(file->vRefNum), &(file->parID))); - -} - - - - -char *getFileName( fullPath *path ) -{ - p2cstr( path->name ); - return (char*) path->name; -} - -static void SetUpMenus(void) -{ - MenuHandle menu; - - DeleteMenu(1); - InsertMenu(menu = NewMenu(1, "\p\024"), 0); - AppendMenu(menu, "\pAbout...;(-"); - AppendResMenu(menu, 'DRVR'); - DeleteMenu(2); - InsertMenu(menu = NewMenu(2, "\pFile"), 0); - AppendMenu(menu, "\p(New/N;Open/O;Run/R;Save/S;Save As...;(-;Quit/Q"); - DeleteMenu(3); - InsertMenu(menu = NewMenu(3, "\pEdit"), 0); - AppendMenu(menu, "\p(Undo/Z;(-;(Cut/X;(Copy/C;(Paste/V;(Clear"); - - DrawMenuBar(); -} - - -static void DoCommand(long mResult) -{ - short theItem, theMenu; - MenuHandle appleMenu; - Str255 name; - - theItem = mResult & 65535L; - theMenu = ((unsigned long)mResult) >> 16; - - switch (theMenu) - { - case 1: /* Apple */ - switch(theItem) - { - case 1: PrintError( "%s\n %s", appName, LONGVERSION ); - break; - default:appleMenu = GetMenuHandle( 1); - GetMenuItemText(appleMenu, theItem, name); - OpenDeskAcc(name); - break; - } - break; - case 2: /* File */ - switch(theItem) - { - case 1: break; - case 2: { // Open file - fullPath f; - - if( FindFile( &f ) == 0 ) - { - char** temp; - int i; - if( argc==0 ) - { - argc=1; - argv=(char**)NewPtr(sizeof(char*)); - if(argv==nil) - { - PrintError("Not enough memory"); - exit(0); - } - argv[0] = (char*)NewPtr(strlen(appName)+1); - strcpy(argv[0], appName ); - } - argc+=1; - temp = (char**)NewPtr(argc * sizeof(char*)); - for(i=0; i<argc-1; i++) - temp[i]=argv[i]; - temp[argc-1] = (char*) NewPtr( 256 ); - if( temp[argc-1] == nil ) - { - PrintError("Not enough memory"); - exit(0); - } - if( FullPathtoString ( &f, temp[argc-1]) ) - { - PrintError("Error processing file list"); - exit(0); - } - DisposePtr( (char*)argv ); - argv = temp; - } - } - break; - case 3: // Run - gDone = TRUE; - break; - case 4: // Save - case 5: {// Save As... - fullPath f; - - if( SaveFileAs( &f, "Save Result As...", "Result" ) == 0 ) - { - char** temp; - int i; - if( argc==0 ) - { - argc=1; - argv=(char**)NewPtr(sizeof(char*)); - if(argv==nil) - { - PrintError("Not enough memory"); - exit(0); - } - argv[0] = (char*)NewPtr(strlen(appName)+1); - strcpy(argv[0], appName ); - } - argc+=2; - temp = (char**)NewPtr(argc * sizeof(char*)); - for(i=0; i<argc-2; i++) - temp[i]=argv[i]; - temp[argc-2] = (char*) NewPtr( 3 ); - strcpy(temp[argc-2], "-o"); - temp[argc-1] = (char*) NewPtr( 256 ); - if( temp[argc-1] == nil ) - { - PrintError("Not enough memory"); - exit(0); - } - if( FullPathtoString ( &f, temp[argc-1]) ) - { - PrintError("Error processing file list"); - exit(0); - } - DisposePtr( (char*)argv ); - argv = temp; - } - } - break; - - case 7: exit(0); - break; - } - } - HiliteMenu(0); -} - Deleted: branches/dmgLibPano/sys_mac.c =================================================================== --- branches/dmgLibPano/sys_mac.c 2008-08-11 10:36:23 UTC (rev 869) +++ branches/dmgLibPano/sys_mac.c 2008-08-12 03:28:10 UTC (rev 870) @@ -1,1130 +0,0 @@ -/* Panorama_Tools - Generate, Edit and Convert Panoramic Images - Copyright (C) 1998,1999 - Helmut Dersch de...@fh... - - 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; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ - -/*------------------------------------------------------------*/ - -#include "sys_mac.h" - - - -#define kErrorAlertID 130 -#define kProgressDialog 110 -#define kProgressBar 2 -#define kInfoDialog 115 - - - -#define PREFNAME "\ppano.prefs" - -//pascal OSErr __my_initialize(const CFragInitBlock *theInitBlock); //commented by Kekus Digital -//pascal void __my_terminate(void); //commented by Kekus Digital - -pascal OSErr MyInitialize(CFBundleRef bundle); //added by Kekus Digital -pascal void MyTerminate(CFBundleRef bundle); //added by Kekus Digital - -static void pstrcpy(unsigned char* from, unsigned char *to); -static void create_event_for_finder(AppleEvent *the_event); -static void add_path_name(AppleEvent * the_event_ptr, const FSSpec* f); -static void add_selection(AppleEvent * the_event_ptr, const FSSpec* f); - - - - - -// These are set by library initialization routine - -FSSpec panoLib, prFile; -long sleep = 10L; -short shlib = -1; - - -// Main entry point for panorama tools - -void filter_main( TrformStr *TrPtr, sPrefs *spref) -{ - Handle sleepHandle; - - // Check if lib has been opened as resource file - /*if( shlib == -1 ) //commented by Kekus Digital - { - TrPtr->success = 0; - return; - }*/ - - // Set sleep value - sleepHandle = GetResource('SLEP', 128 ); - if( sleepHandle != nil ) - { - HLock( sleepHandle ); - sleep = *(long*)*sleepHandle; - HUnlock( sleepHandle ); - ReleaseResource( sleepHandle ); - // PrintError( "%ld", sleep); - } - - dispatch ( TrPtr, spref ); -} - - -void setLibToResFile( void ) -{ - //shlib = FSpOpenResFile(&panoLib, fsRdPerm);//commented by Kekus Digital - shlib = FSpOpenResFile(&prFile, fsRdPerm);//added by Kekus Digital -} - -void unsetLibToResFile( void ) -{ - CloseResFile( shlib ); -} - - -// Error reporting - -void PrintErrorIntern( char* fmt, va_list ap) -{ - char message[257]; - - vsprintf(message, fmt, ap); - - if( JavaUI ){ - JPrintError( message ); - return; - } - - ParamText( (unsigned char*) c2pstr( message ), '\0', '\0', '\0'); - StopAlert( kErrorAlertID, nil); -} - - - -// Progress report; return false if canceled - -int ProgressIntern( int command, char* argument ) -{ - static GrafPtr port; // Must all be static - static DialogPtr dialog = nil; - static Handle barHandle; - static Boolean inProgress; - EventRecord event; - Rect itemRect; - short itemHit, itemType; - long percent; - char title[256]; - - //if( JavaUI ) return JProgress( command, argument ); - - switch( command ) - { - case _initProgress: - if( dialog != nil) - { - strcpy( title, argument); - SetWTitle( GetDialogWindow(dialog), (unsigned char*) c2pstr( title )); - return TRUE; - break; - } - GetPort(&port); - dialog = GetNewDialog( kProgressDialog , nil , (WindowPtr)-1L); - strcpy( title, argument); - SetWTitle(GetDialogWindow(dialog), (unsigned char*)c2pstr(title)); - //SetThemeWindowBackground(GetDialogWindow(dialog), kThemeTextColorDialogActive, true);//Added by Kekus Digital - ShowWindow( dialog ); - SetPort(/* dialog*/GetWindowPort(GetDialogWindow(dialog) )); //changed by Kekus Digital - GetDialogItem( dialog, kProgressBar, &itemType, &barHandle, &itemRect); - SetControlValue((ControlRef)barHandle, 0); - inProgress = true; - SetCursor(*GetCursor(watchCursor)); - return TRUE; - break; - case _setProgress: - if( inProgress ) - { - sscanf(argument,"%ld", &percent); - if(percent >100) percent = 100; - if(percent < 0) percent = 0; - SetControlValue((ControlRef)barHandle, (int) percent ); - if( WaitNextEvent ( everyEvent, &event, sleep, nil) ) - { - if(IsDialogEvent(&event)) - { - DialogSelect(&event,&dialog,&itemHit); - if(itemHit == 1) - { - SetPort(port); - DisposeDialog(dialog); - dialog = nil; - inProgress = false; - return FALSE; - } - } - - switch( event.what ) - { - case keyDown: - case autoKey: - if( ((event.modifiers & cmdKey) != 0) && ((event.message & charCodeMask) == '.') ) - { - SetPort(port); - DisposeDialog(dialog); - dialog = nil; - inProgress = false; - return FALSE; - } - break; - default: - break; - } - } - } - return TRUE; - break; - - case _disposeProgress: - if( inProgress ) - { - SetPort(port); - DisposeDialog(dialog); - dialog = nil; - } - return TRUE; - break; - case _idleProgress: - WaitNextEvent ( everyEvent, &event, sleep, nil); - switch( event.what ) - { - case keyDown: - case autoKey: - if( ((event.modifiers & cmdKey) != 0) && ((event.message & charCodeMask) == '.') ) - { - return FALSE; - } - break; - default: - break; - } - return TRUE; - break; - } - return TRUE; -} - - - -int infoDlgIntern ( int command, char* argument ) // Display info: same argumenmts as progress -{ - static GrafPtr port; // Must all be static - static DialogPtr dialog; - static Handle title, progress; - static Boolean inProgress; - EventRecord event; - Rect itemRect; - short itemHit, itemType; - char text[256]; - static char mainMessage[256]; - - //if( JavaUI ) return JinfoDlg( command, argument ); - - - switch( command ) - { - case _initProgress: - strcpy( text, argument ); - GetPort(&port); - dialog = GetNewDialog( kInfoDialog , nil , (WindowPtr)-1L); - GetDialogItem( dialog, 2, &itemType, &title, &itemRect); - GetDialogItem( dialog, 3, &itemType, &progress, &itemRect); - SetDialogItemText (title, c2pstr(text) ); - SetDialogItemText (progress, "\p"); - //SetThemeWindowBackground(GetDialogWindow(dialog), kThemeTextColorDialogActive, true);//Added by Kekus Digital - ShowWindow( dialog ); - SetPort( dialog ); - inProgress = true; - return TRUE; - - case _setProgress: - if( !inProgress ) - infoDlg ( _initProgress, "" ); - if( inProgress ) - { - if( *argument != 0 ) - { - if( *argument != '+' ) - { - strcpy( mainMessage, argument ); - strcpy( text, argument ); - } - else - { - sprintf( text,"%s%s", mainMessage, &(argument[1]) ); - } - SetDialogItemText (progress, c2pstr(text) ); - } - if( WaitNextEvent ( everyEvent, &event, sleep, nil) ) - { - if(IsDialogEvent(&event)) - { - DialogSelect(&event,&dialog,&itemHit); - if(itemHit == 1) - { - SetPort(port); - DisposeDialog(dialog); - inProgress = false; - return FALSE; - } - } - - switch( event.what ) - { - case keyDown: - case autoKey: - if( ((event.modifiers & cmdKey) != 0) && ((event.message & charCodeMask) == '.') ) - { - SetPort(port); - DisposeDialog(dialog); - inProgress = false; - return FALSE; - } - break; - default: - break; - } - } - } - return TRUE; - - case _disposeProgress: - if( inProgress ) - { - SetPort(port); - DisposeDialog(dialog); - inProgress = FALSE; - } - return TRUE; - case _idleProgress: - WaitNextEvent ( everyEvent, &event, sleep, nil); - switch( event.what ) - { - case keyDown: - case autoKey: - if( ((event.modifiers & cmdKey) != 0) && ((event.message & charCodeMask) == '.') ) - { - return FALSE; - } - break; - default: - break; - } - return TRUE; - } - return TRUE; -} - - - -int readPrefs( char* pref, int selector ) -{ - short prf; - int ResNumber, prefSize; - unsigned char* prefName; - int result; - Handle prefHandle; - - - - switch( selector) - { - case _version: - ResNumber = 134; - prefSize = sizeof( PREF_VERSION ); - prefName = "\pVersion Info"; - break; - case _correct: - ResNumber = 128; - prefSize = sizeof(struct correct_Prefs); - prefName = "\pPreferences for correct"; - break; - case _remap: - ResNumber = 129; - prefSize = sizeof(struct remap_Prefs); - prefName = "\pPreferences for remap"; - break; - case _perspective: - ResNumber = 130; - prefSize = sizeof(struct perspective_Prefs); - prefName = "\pPreferences for perspective"; - break; - case _adjust: - ResNumber = 131; - prefSize = sizeof(struct adjust_Prefs); - prefName = "\pPreferences for adjust"; - break; - case _sizep: - ResNumber = 133; - prefSize = sizeof(struct size_Prefs); - prefName = "\pPreferences for size"; - break; - case _panright: - case _panleft: - case _panup: - case _pandown: - case _zoomin: - case _zoomout: - case _apply: - case _getPano: - case _increment: - ResNumber = 135; - prefSize = sizeof(panControls); - prefName = "\pPreferences for Pan Controls"; - break; - } - - - - prf = FSpOpenResFile(&prFile, fsRdPerm); - - if( prf == -1 ) - return -1; - - - - prefHandle = GetResource('PREF', ResNumber ); - if( prefHandle == nil ) - { - result = -1; - } - else if( GetResourceSizeOnDisk( prefHandle ) != prefSize) - { - ReleaseResource( prefHandle ); - result = -1; - } - else - { - HLock( prefHandle ); - memcpy( (char*)(pref), (char*)*prefHandle, prefSize); - HUnlock( prefHandle ); - ReleaseResource( prefHandle ); - result = 0; - } - - CloseResFile( prf ); - return result; -} - - -void writePrefs( char* pref, int selector ) -{ - int ResNumber; - long prefSize; - unsigned char* prefName; - Handle prefHandle; - - short prf; - - switch( selector) - { - case _version: - ResNumber = 134; - prefSize = sizeof( PREF_VERSION ); - prefName = "\pVersion Info"; - break; - case _correct: - ResNumber = 128; - prefSize = sizeof(struct correct_Prefs); - prefName = "\pPreferences for correct"; - break; - case _remap: - ResNumber = 129; - prefSize = sizeof(struct remap_Prefs); - prefName = "\pPreferences for remap"; - break; - case _perspective: - ResNumber = 130; - prefSize = sizeof(struct perspective_Prefs); - prefName = "\pPreferences for perspective"; - break; - case _adjust: - ResNumber = 131; - prefSize = sizeof(struct adjust_Prefs); - prefName = "\pPreferences for adjust"; - break; - case _sizep: - ResNumber = 133; - prefSize = sizeof(struct size_Prefs); - prefName = "\pPreferences for size"; - break; - case _panright: - case _panleft: - case _panup: - case _pandown: - case _zoomin: - case _zoomout: - case _apply: - case _getPano: - case _increment: - ResNumber = 135; - prefSize = sizeof(panControls); - prefName = "\pPreferences for Pan Controls"; - break; - } - - - - prf = FSpOpenResFile(&prFile, fsRdWrPerm); - - if( prf == -1 ) // Error - return; - - prefHandle = GetResource('PREF', ResNumber ); - if( prefHandle == nil ) // add resource - { - prefHandle = NewHandle( prefSize ); - AddResource ( prefHandle, 'PREF', ResNumber, prefName); - } - else if( GetResourceSizeOnDisk( prefHandle ) != prefSize) - { - SetResourceSize ( prefHandle , prefSize ); - UpdateResFile( prf ); - SetHandleSize( prefHandle , prefSize ); - } - - HLock( prefHandle ); - memcpy( (char*)*prefHandle, pref, prefSize); - - ChangedResource ( prefHandle ); - WriteResource ( prefHandle ); - HUnlock ( prefHandle ); - ReleaseResource ( prefHandle ); - CloseResFile( prf ); - - -} - - -void** mymalloc( long numBytes ) -{ - Handle mem; - OSErr resultCode; - - mem = TempNewHandle( numBytes, &resultCode); - if( mem == nil ) - return NULL; - - //MoveHHi( mem ); - HLock( mem ); - return (void**) mem; -} - -void myfree( void** Hdl ) -{ - HUnlock( (Handle)Hdl ); - DisposeHandle( (Handle)Hdl ); -} - - -// Display Scriptfile using plain text editor - -void showScript( fullPath* scriptFile ) -{ - open_selection( scriptFile ); -} - - - - -//------------------ Some Private functions --------------------------------------------- - - - -static void pstrcpy(unsigned char* from, unsigned char *to) -{ - register unsigned char *f, *t; - register int i ; - - f = from; t = to; - - - for(i=0; i <= (int) *from; i++) - *t++ = *f++; -} - - -//----------------------- Launcher --------------------------------------------------- - - - -void open_selection( FSSpec *f) -{ - AppleEvent the_event, reply; - - - create_event_for_finder( &the_event ); - add_path_name(&the_event,f); - add_selection(&the_event,f); - - AESend(&the_event, &reply, kAENoReply+kAENeverInteract, - kAENormalPriority, kAEDefaultTimeout, nil, nil) ; - - AEDisposeDesc(&the_event) ; - AEDisposeDesc(&reply) ; -} - - - // Create an 'open selection' event to be sent to Finder -static void create_event_for_finder(AppleEvent *the_event) -{ - const AEEventClass kAEFinderEvents = 'FNDR'; // Finder event - const AEEventID kOpenSelection = 'sope'; // OpenSelection event - const OSType kFinderSignature = 'MACS'; // Our destination - AEAddressDesc finder_id; - - AECreateDesc(typeApplSignature,(void *)&kFinderSignature,sizeof(kFinderSignature), - &finder_id) ; - - AECreateAppleEvent(kAEFinderEvents,kOpenSelection,&finder_id, - kAutoGenerateReturnID, - kAnyTransactionID, - the_event) ; - - AEDisposeDesc(&finder_id) ; // the_event is created, finder_id can - // be disposed of now -} - - // Add the alias of file or path name to the event - // Only the path field is considered -static void add_path_name(AppleEvent * the_event_ptr, const FSSpec* f) -{ - AliasHandle alias; - - FSSpec dir_spec; - FSMakeFSSpec(f->vRefNum,f->parID,"\p",&dir_spec) ; - NewAliasMinimal(&dir_spec,&alias) ; - HLock((char **)alias); - //AEPutParamPtr(the_event_ptr, keyDirectObject, typeAlias, StripAddress(*alias), (**alias).aliasSize) ;//commented by Kekus Digital - AEPutParamPtr(the_event_ptr, keyDirectObject, typeAlias, *alias, (**alias).aliasSize) ;//added by Kekus Digital - - HUnlock((char **)alias); - DisposeHandle((char **)alias); -} - - // Create a "selection" item in the event from the - // full file name specified -static void add_selection(AppleEvent * the_event_ptr, const FSSpec* f) -{ - AliasHandle alias; - AEDescList selection_list; - - NewAliasMinimal( f,&alias) ; - - AECreateList(nil, 0, FALSE, &selection_list) ; - HLock((char **)alias); - //AEPutPtr(&selection_list, 1, typeAlias, StripAddress(*alias), (**alias).aliasSize) ;//commented by Kekus Digital - AEPutPtr(&selection_list, 1, typeAlias, *alias, (**alias).aliasSize) ; //added by Kekus Digital - HUnlock((char **)alias); - DisposeHandle((char **)alias); - - AEPutParamDesc(the_event_ptr, 'fsel', &selection_list) ; - AEDeleteItem(&selection_list, 1) ; - AEDisposeDesc(&selection_list) ; -} - - -void makePathForResult( fullPath *path ) -{ - FSSpec fsspec_IMG ; - long lgDeskTopDirID = 0L; - short shDeskTopVol = 0; - Str255 imName; - - - sprintf( (char*)imName, "ptools_result"); - c2pstr((char*)imName); - - // Create FSSpec - - FindFolder( kOnSystemDisk, kDesktopFolderType, kDontCreateFolder, - &shDeskTopVol, &lgDeskTopDirID ); - - FSMakeFSSpec( shDeskTopVol, lgDeskTopDirID, imName, &fsspec_IMG ); - - memcpy( path, &fsspec_IMG, sizeof( fullPath )); -} - - -int makePathToHost ( fullPath *path ) -{ - ProcessSerialNumber PSN; - ProcessInfoRec info; - OSErr myErr; - fullPath f; - - info.processName = nil; - info.processAppSpec = &f; - PSN.highLongOfPSN = 0; - PSN.lowLongOfPSN = kNoProcess; - info.processInfoLength = sizeof( ProcessInfoRec ); - - - myErr = GetCurrentProcess(& PSN); - - if(myErr == noErr) - myErr = GetProcessInformation(&PSN,&info); - - if(myErr == noErr) - { - memcpy( path, &f, sizeof( fullPath )); - return 0; - } - else - { - return -1; - } -} - - -// Thanks to Brian Fitzgerald Future Point -/*pascal OSErr __my_initialize(const CFragInitBlock *theInitBlock)//commented by Kekus Digital -{ - OSErr err; - - // Get FSSpec of library file - - err = __init_lib(theInitBlock); - if (err != noErr) - return err; - - memcpy( &panoLib, theInitBlock->fragLocator.u.onDisk.fileSpec, sizeof( FSSpec ) ); - - // and of preferences file - - - err = FindFolder( kOnSystemDisk, kPreferencesFolderType, - kDontCreateFolder, &prFile.vRefNum, &prFile.parID) ; - - if( err == noErr ) - { - pstrcpy( PREFNAME , prFile.name ); - FSpCreateResFile( &prFile, 'GKON', '????', 0 ); - } - return err; -} - - -pascal void __my_terminate(void) -{ - - __term_lib(); -} -*/ //till here - -short gResNum = -1;//added by Kekus Digital -pascal OSErr MyInitialize(CFBundleRef bundle) -{ - OSErr err; - - if(bundle != NULL) - gResNum = CFBundleOpenBundleResourceMap(bundle); - - err = FindFolder( kOnSystemDisk, kPreferencesFolderType, - kDontCreateFolder, &prFile.vRefNum, &prFile.parID) ; - - if( err == noErr ) - { - pstrcpy( PREFNAME , prFile.name ); - FSpCreateResFile( &prFile, 'GKON', '????', 0 ); - err = ResError(); - } - return err; -} - - -pascal void MyTerminate(CFBundleRef bundle) -{ - if(gResNum != -1 && bundle != NULL) - CFBundleCloseBundleResourceMap(bundle, gResNum); -}// till here - - -// Create FSSpec for temporary buffer file - -void MakeTempName( fullPath *fspec, char *fname ) -{ - OSErr err; - FInfo fndrInfo; - - err = FindFolder( kOnSystemDisk, kPreferencesFolderType, - kDontCreateFolder, &fspec->vRefNum, &fspec->parID) ; - if( err != noErr ) - { - fspec->vRefNum = 0; - fspec->parID = 0; - } - sprintf( (char*)fspec->name, "pano13.%s", fname ); - c2pstr( (char*)fspec->name ); - - if( ( FSpGetFInfo (fspec,&fndrInfo) == noErr ) && // Don't accidentaly overwrite important stuff - fndrInfo.fdCreator != '8BIM' && - fndrInfo.fdType != '8BPS' ) - { - fspec->vRefNum = 0; - fspec->parID = 0; - } -} - - -// Present 'Save As...' dialog - -/*int SaveFileAs( fullPath *path, char *prompt, char *name ) // commented by Kekus Digital -{ - StandardFileReply reply; - - c2pstr( prompt ); c2pstr( name ); - StandardPutFile((unsigned char* )prompt, (unsigned char*) name, &reply); - p2cstr( (unsigned char* )prompt ); p2cstr( (unsigned char*) name ); - if( reply.sfGood ) - { - memcpy( path, &reply.sfFile, sizeof( fullPath )); - return 0; - } - else - return -1; -}*/ //till here - -int SaveFileAs( fullPath *path, char *prompt, char *name ) //added by Kekus Digital -{ - NavReplyRecord reply; - NavDialogOptions the_dialogOptions; - - OSErr the_sErr = NavGetDefaultDialogOptions(&the_dialogOptions); - CopyCStringToPascal(prompt,the_dialogOptions.windowTitle); - CopyCStringToPascal(name,the_dialogOptions.savedFileName); - - the_sErr = NavPutFile(NULL, &reply, &the_dialogOptions, NULL, '????', '????', NULL); - if( reply.validRecord ) - { - - AEDesc resultDesc; - OSErr the_sErr = noErr; - - //grab information about file for opening: - if ((the_sErr = AEGetNthDesc( &(reply.selection),1, typeFSS, NULL, &resultDesc )) ==noErr) - { - the_sErr = AEGetDescData(&resultDesc, path,sizeof(*path)); - if(the_sErr == noErr) - AEDisposeDesc( &resultDesc ); - } - - return 0; - } - else - return -1; -} // till here - -// Present "Find File" dialog - -/*int FindFile( fullPath *fspec ) //commented by Kekus Digital -{ - StandardFileReply reply; - SFTypeList typeList; - - typeList[0] = 'TEXT'; - StandardGetFile(nil, -1, typeList, &reply); - if( reply.sfGood ) - { - memcpy( fspec, &reply.sfFile, sizeof (FSSpec) ); - return 0; - } - else - return -1; -}*/ //till here - -int FindFile( fullPath *fspec ) //added by Kekus Digital -{ - NavReplyRecord reply; - NavTypeList typeList = {0}; - NavTypeListPtr theTypeListPtr; - - typeList.componentSignature = kNavGenericSignature; - typeList.reserved = 1; - typeList.osTypeCount = 1; - typeList.osType[0]='TEXT'; - - theTypeListPtr = &typeList; - NavGetFile(NULL, &reply, NULL, NULL, NULL, NULL, &theTypeListPtr, NULL); - if( reply.validRecord ) - { - AEDesc resultDesc; - OSErr the_sErr = noErr; - - //grab information about file for opening: - if ((the_sErr = AEGetNthDesc( &(reply.selection),1, typeFSS, NULL, &resultDesc )) ==noErr) - { - the_sErr = AEGetDescData(&resultDesc, fspec,sizeof(*fspec)); - if(the_sErr == noErr) - AEDisposeDesc( &resultDesc ); - } - return 0; -} - else - return -1; -}// till here - - -void ConvFileName( fullPath *fspec,char *string) -{ - pstrcpy( fspec->name , (unsigned char *)string); - p2cstr((unsigned char *)string); -} - - -/* concatonate 2 Pascal strings: a = CONCAT(b, c). Assumes Str255. Truncates if necessary. */ -#define CONCAT(a, b, c) do { int cchars; \ - cchars = ((int)b[0] + (int)c[0] > 255 ? 255 - b[0] : c[0]); \ - if (&a[0] == &b[0]) { \ - BlockMove(&c[1], &a[a[0]+1], cchars); \ - a[0] += cchars; \ - } else { \ - BlockMove(&c[1], &a[1 + b[0]], cchars); \ - BlockMove(&b[1], &a[1], b[0]); \ - a[0] = b[0] + cchars; \ - } \ - } while (0) - - -// get the full path as string, garantee filename fits in 256 bytes -int GetFullPath (fullPath *path, char *filename) -{ - Str255 pfilename; - Str63 dirName; /* allow room for a 31 char file/dir name + a ':' */ - CInfoPBRec di; - OSErr err; - - *filename = 0; - - pfilename[0] = 0; - - dirName[0] = 0; - di.dirInfo.ioNamePtr = dirName; - di.dirInfo.ioDrParID = path->parID; - - if( path->name[1] != ':' ) - BlockMove(path->name, pfilename, path->name[0]+1); - else{ - BlockMove(path->name+1, pfilename, path->name[0]); - pfilename[0] = path->name[0]-1; - } - - - do - { - di.dirInfo.ioVRefNum = path->vRefNum; - di.dirInfo.ioFDirIndex = -1; - di.dirInfo.ioDrDirID = di.dirInfo.ioDrParID; - - err = PBGetCatInfo(&di, FALSE); - if (err == noErr) - { - dirName[++dirName[0]] = ':'; - if ((int)dirName[0] + (int)pfilename[0] > 255) - { - PrintError("Filename too long"); - return -1; - } - else - CONCAT(pfilename, dirName, pfilename); - } - else - { - //PrintError("Error getting PBGetCatInfo"); - //return -1; - } - } - while (di.dirInfo.ioDrDirID != fsRtDirID && err == noErr); - - p2cstr( pfilename ); - strcpy( filename, (char*)pfilename ); - - return 0; -} - - -int IsTextFile( char* fname ) -{ - FileInfo fInfo; - fullPath f; - - if( strrchr( fname, '.' ) != NULL && - (strcmp( strrchr( fname, '.' ), ".txt") == 0 || - strcmp( strrchr( fname, '.' ), ".TXT") == 0) ) - return TRUE; - - //StringtoFullPath(&f, fname); //commented by Kekus Digital - GetFullPath(&f, fname);//addded by Kekus Digital - - FSpGetFInfo (&f, (FInfo*)&fInfo ); - - if( fInfo.fileType == 'TEXT' ) - return TRUE; - - return FALSE; -} - - -int MakeDoScriptEvent(char* script, AppleEvent *appleEvent, - AEAddressDesc *target, AEEventID theAEEventID) -{ - OSErr err; - AEDesc source; - - - err = AECreateDesc(typeChar, script, strlen(script) + 1, &source); - if( err == noErr ) - { - err = AECreateAppleEvent('misc', theAEEventID, target, - kAutoGenerateReturnID, kAnyTransactionID, appleEvent); - AEPutParamDesc(appleEvent, keyDirectObject, &source); - AEDisposeDesc(&source); - } - if (err == noErr) - return 0; - else - return -1; -} - -int LaunchWithAE(AppleEvent *appleEvent, FSSpec *target) -{ - - LaunchParamBlockRec launchParams; - AEDesc ioLaunchDesc; - int result; - - if( appleEvent == nil) - launchParams.launchAppParameters = nil; - else - { - AECoerceDesc(appleEvent, typeAppParameters, &ioLaunchDesc); - HLock((Handle) appleEvent->dataHandle); - launchParams.launchAppParameters = (AppParametersPtr) *(ioLaunchDesc.dataHandle); - } - launchParams.launchBlockID = extendedBlock; - launchParams.launchEPBLength = extendedBlockLen; - launchParams.launchFileFlags = 0; - launchParams.launchControlFlags = launchContinue; - launchParams.launchAppSpec = target; - - if(LaunchApplication( &launchParams)) - { - result = -1; - } - else - result = 0; - return(result); -} - -/* Are two FSSpecs equal ? */ - -Boolean EqFSSpec(FSSpec *a, FSSpec *b) -{ - char as[512],bs[512]; - FullPathtoString( a, as ); - FullPathtoString( b, bs ); - //printf("%s\n", as); printf("%s\n\n", bs); - if( strcmp(as, bs) == 0 ) - return true; - else - return false; -} - -Boolean IsAppRunning(FSSpec *myApp) -{ - ProcessSerialNumber PSN; - ProcessInfoRec info; - FSSpec app; - - info.processName = nil; - info.processAppSpec = &app; - PSN.highLongOfPSN = 0; - PSN.lowLongOfPSN = kNoProcess; - - - - while (GetNextProcess(&PSN) == noErr) - { - GetProcessInformation(&PSN,&info); - if(EqFSSpec( &app, myApp)) - return (true); - } - return (false); -} - - -#include <time.h> - -int LaunchAndSendScript(char* application, char* script){ - AEAddressDesc target; - OSErr myErr; - AppleEvent appleEvent,reply; - fullPath theApp; - FInfo finfo; - EventRecord event; - int tt; - - if( makePathToHost( &theApp ) != 0 ){ - PrintError("Could not find host application"); - return -1; - } - - strcpy((char*)theApp.name, application); - c2pstr((char*)theApp.name); - - open_selection( &theApp ); - - tt = time(NULL); - while( time(NULL) < tt + 10 && !IsAppRunning(&theApp) ) - WaitNextEvent ( everyEvent, &event, 100L, nil); - - - // Create Descriptor - - FSpGetFInfo (&theApp,&finfo) ; - myErr = AECreateDesc( typeApplSignature, (Ptr)(&finfo.fdCreator), - (Size)sizeof( finfo.fdCreator ), &target); - - if(myErr != noErr){ - PrintError("Error creating AE descriptor"); - return -1; - } - - - if( MakeDoScriptEvent(script, &appleEvent, &target, 'dosc')){ - PrintError("Error creating DOSC Apple Event"); - return -1; - } - - AESend(&appleEvent, &reply, kAENoReply+kAENeverInteract, - kAENormalPriority, kAEDefaultTimeout, nil, nil) ; - - AEDisposeDesc(&appleEvent); - AEDisposeDesc(&reply) ; - - return 0; -} - -unsigned char *MyCtoPStr(char *x) //added by Kekus Digital -{ - CopyCStringToPascal(x,x); - return x; -}//till here Deleted: branches/dmgLibPano/sys_mac.h =================================================================== --- branches/dmgLibPano/sys_mac.h 2008-08-11 10:36:23 UTC (rev 869) +++ branches/dmgLibPano/sys_mac.h 2008-08-12 03:28:10 UTC (rev 870) @@ -1,328 +0,0 @@ -/* Panorama_Tools - Generate, Edit and Convert Panoramic Images - Copyright (C) 1998,1999 - Helmut Dersch de...@fh... - - 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; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ - -/*------------------------------------------------------------*/ - -#ifndef SYS_MAC_H -#define SYS_MAC_H - - -#include "filter.h" -#include <Carbon/Carbon.h> // added by Kekus Digital -/* // commented by Kekus Digital -#include <Controls.h> -#include <TextUtils.h> -#include <Menus.h> -#include <Errors.h> -#include <StandardFile.h> -#include <ToolUtils.h> -#include <Devices.h> -#include <Folders.h> -#include <Events.h> -#include <LowMem.h> -#include <Dialogs.h> -#include <MacMemory.h> -#include <Files.h> -#include <LowMem.h> -#include <stdio.h> -#include <stdlib.h> -#include <stdarg.h> -#include <AppleEvents.h> -#include <Aliases.h> -#include <Files.h> -#include <MixedMode.h> -#include <CodeFragments.h> -#include <Fonts.h> -*/ // till here - -#ifndef MAC_OS_X_VERSION_10_4 -#define c2pstr(x) MyCtoPStr(x) // added by Kekus Digital -#endif - - - -#define SetLbl( kRes, string) \ - sprintf(numString, "%s", string); \ - GetDialogItem( dialog, kRes, &itemType, &myHandle, &itemRect); \ - SetDialogItemText (myHandle, c2pstr( numString ) ); - -#define CheckButton( rNum, isChecked ) \ - GetDialogItem(dialog, rNum, &itemType, &myHandle, &itemRect); \ - SetControlValue( (ControlHandle) myHandle, (isChecked) ) ; - - -#define SetText( rNum, string, var ) \ - sprintf(numString, string, var); \ - GetDialogItem( dialog, rNum, &itemType, &myHandle, &itemRect); \ - SetDialogItemText (myHandle, c2pstr( numString ) ); - -#define GetText( rNum, string, varaddr ) \ - GetDialogItem( dialog, rNum, &itemType, &myHandle, &itemRect); \ - GetDialogItemText (myHandle, (unsigned char*)numString ); \ - sscanf(p2cstr((unsigned char*)numString), string, varaddr); - - - -#define GenDialog( VarType, DlgRes, Title, SetControl,SText, \ - GText, DlgAction, WinFunc) \ - \ - DialogPtr dialog; \ - Boolean dialogDone = false; \ - short itemHit, itemType; \ - Rect itemRect; \ - Handle myHandle; \ - char numString[256]; \ - VarType localPrefs; \ - \ - memcpy((char*)&localPrefs,(char*)thePrefs, sizeof(VarType)); \ - \ - dialog = GetNewDialog( DlgRes , nil , (WindowPtr)-1L); \ - strcpy( numString, Title); \ - SetWTitle( GetDialogWindow( dialog), c2pstr( numString )); \ - ShowWindow( dialog ); \ - SetPort( GetWindowPort(GetDialogWindow(dialog)) ); \ - \ - SetDialogDefaultItem( dialog, ok ); \ - SetDialogCancelItem( dialog, cancel ); \ - SetDialogTracksCursor(dialog, true); \ - \ - SetControl; \ - SText; \ - \ - while( !dialogDone ) \ - { \ - ModalDialog( nil, &itemHit); \ - switch ( itemHit ) \ - { \ - case ok: \ - case cancel: \ - dialogDone = true; \ - break; \ - DlgAction; \ - default: \ - break; \ - } \ - SetControl; \ - } \ - if ( itemHit == cancel ) \ - { \ - DisposeDialog( dialog ); \ - return FALSE; \ - } \ - else \ - { \ - GText; \ - memcpy((char*)thePrefs, (char*)&localPrefs, sizeof(VarType)); \ - DisposeDialog( dialog ); \ - return TRUE; \ - } \ - - - - - - -//-------------------------- Dialog Resources----------------------------------------- - -//-------------------------- Dialogs for remap ------------------------------------------- - -#define kSetRemapPrefs_dlg 310 -#define kSetRemapPrefs_InRect 4 -#define kSetRemapPrefs_InPano 5 -#define kSetRemapPrefs_InErect 6 -#define kSetRemapPrefs_InSphereCenter 15 -#define kSetRemapPrefs_InSphereTop 7 -#define kSetRemapPrefs_OutRect 9 -#define kSetRemapPrefs_OutPano 10 -#define kSetRemapPrefs_OutErect 11 -#define kSetRemapPrefs_OutSphereCenter 16 -#define kSetRemapPrefs_OutSphereTop 12 -#define kSetRemapPrefs_Hfov 14 -#define kSetRemapPrefs_Vfov 18 -#define kSetRemapPrefs_InMirror 19 -#define kSetRemapPrefs_OutMirror 20 -#define kSetRemapPrefs_SetPrefs 21 - - -//-------------------------- Dialogs for perspective ------------------------------------------- - -#define kSetPerspectivePrefs_dlg 320 -#define kSetPerspectivePrefs_InRect 4 -#define kSetPerspectivePrefs_InSphere 5 -#define kSetPerspectivePrefs_Degree 13 -#define kSetPerspectivePrefs_Points 14 -#define kSetPerspectivePrefs_Keep 22 -#define kSetPerspectivePrefs_X 10 -#define kSetPerspectivePrefs_Y 11 -#define kSetPerspectivePrefs_Gamma 16 -#define kSetPerspectivePrefs_Hfov 7 -#define kSetPerspectivePrefs_Width 18 -#define kSetPerspectivePrefs_Height 20 -#define kSetPerspectivePrefs_SetPrefs 23 - - -// ------------------------- Dialogs for correct ------------------------------------------------ - -#define kSetCorrectPrefs_dlg 300 -#define kSetCorrectPrefs_Save 3 -#define kSetCorrectPrefs_Load 4 -#define kSetCorrectPrefs_Radial 5 -#define kSetCorrectPrefs_RadialOption 6 -#define kSetCorrectPrefs_Horizontal 9 -#define kSetCorrectPrefs_HorizontalOption 10 -#define kSetCorrectPrefs_Vertical 7 -#define kSetCorrectPrefs_VerticalOption 8 -#define kSetCorrectPrefs_Shear 11 -#define kSetCorrectPrefs_ShearOption 12 -#define kSetCorrectPrefs_Scale 13 -#define kSetCorrectPrefs_ScaleOption 14 -#define kSetCorrectPrefs_Lum 15 -#define kSetCorrectPrefs_LumOpt 16 -#define kSetCorrectPrefs_SetPrefs 17 -#define kSetCorrectPrefs_CutFrame 18 -#define kSetCorrectPrefs_CutOpt 19 -#define kSetCorrectPrefs_Fourier 20 -#define kSetCorrectPrefs_FourierOpt 21 - - -#define kSetLumOptions_dlg 302 -#define kSetLumOptions_Red 6 -#define kSetLumOptions_Green 7 -#define kSetLumOptions_Blue 8 -#define kSetLumOptions_RedText 3 -#define kSetLumOptions_GreenText 4 -#define kSetLumOptions_BlueText 5 - - -#define kSetRadialOptions_dlg 301 -#define kSetRadialOptions_radial 22 -#define kSetRadialOptions_vertical 23 -#define kSetRadialOptions_horizontal 24 -#define kSetRadialOptions_Red0 10 -#define kSetRadialOptions_Red1 11 -#define kSetRadialOptions_Red2 12 -#define kSetRadialOptions_Red3 13 -#define kSetRadialOptions_Green0 14 -#define kSetRadialOptions_Green1 15 -#define kSetRadialOptions_Green2 16 -#define kSetRadialOptions_Green3 17 -#define kSetRadialOptions_Blue0 18 -#define kSetRadialOptions_Blue1 19 -#define kSetRadialOptions_Blue2 20 -#define kSetRadialOptions_Blue3 21 - -#define kSetHorizontalOptions_dlg 302 -#define kSetHorizontalOptions_Red 6 -#define kSetHorizontalOptions_Green 7 -#define kSetHorizontalOptions_Blue 8 - -#define kSetShearOptions_dlg 303 -#define kSetShearOptions_vname 3 -#define kSetShearOptions_vvar 4 -#define kSetShearOptions_hname 5 -#define kSetShearOptions_hvar 6 - -#define kSetFourierOptions_dlg 450 -#define kSetFourierOptions_PSDname 5 -#define kSetFourierOptions_findPSD 6 -#define kSetFourierOptions_addBlur 7 -#define kSetFourierOptions_remBlur 8 -#define kSetFourierOptions_internal 11 -#define kSetFourierOptions_custom 12 -#define kSetFourierOptions_findNFF 13 -#define kSetFourierOptions_filterfactor 15 -#define kSetFourierOptions_fourier_frame 17 -#define kSetFourierOptions_scale 18 - - -//------------------- Dialogs for Adjust -------------------------- - - -#define kSetAdjustPrefs_dlg 330 -#define kSetAdjustPrefs_Insert 7 -#define kSetAdjustPrefs_Extract 10 -#define kSetAdjustPrefs_SetCtrlPts 9 -#define kSetAdjustPrefs_RunOptimizer 5 -#define kSetAdjustPrefs_Options 3 -#define kSetAdjustPrefs_Script 11 -#define kSetAdjustPrefs_FindScript 6 -#define kSetAdjustPrefs_SetOpt 4 -#define kSetAdjustPrefs_SetPrefs 8 - -#define kSetCreateOptions_dlg 331 -#define kSetCreateOptions_ImR 4 -#define kSetCreateOptions_ImP 14 -#define kSetCreateOptions_ImFf 5 -#define kSetCreateOptions_ImFc 20 -#define kSetCreateOptions_ImEq 51 -#define kSetCreateOptions_ImHfov 6 -#define kSetCreateOptions_ImW 21 -#define kSetCreateOptions_ImH 22 -#define kSetCreateOptions_Correct 43 -#define kSetCreateOptions_PRe 26 -#define kSetCreateOptions_PPa 27 -#define kSetCreateOptions_PSp 28 -#define kSetCreateOptions_PHfov 30 -#define kSetCreateOptions_PWi 32 -#define kSetCreateOptions_PHe 34 -#define kSetCreateOptions_PSave 44 -#define kSetCreateOptions_TY 9 -#define kSetCreateOptions_TP 11 -#define kSetCreateOptions_TR 13 -#define kSetCreateOptions_SLoad 37 -#define kSetCreateOptions_SPaste 39 -#define kSetCreateOptions_SBlend 40 -#define kSetCreateOptions_SF 42 -#define kSetCreateOptions_SIm 46 -#define kSetCreateOptions_SBuf 47 -#define kSetCreateOptions_Sboth 48 -#define kSetCreateOptions_Snone 49 - - -#define kSetIntpPrefs_Gamma 1 -#define kSetIntpPrefs_Poly 2 -//#define kSetIntpPrefs_Sp16 2 -#define kSetIntpPrefs_Sp36 3 -#define kSetIntpPrefs_Sp64 4 -#define kSetIntpPrefs_Sinc256 5 -#define kSetIntpPrefs_AAHammering 6 -#define kSetIntpPrefs_AAGaussian 7 -#define kSetIntpPrefs_AAQuadratic 8 -#define kSetIntpPrefs_AAMitchell 9 -#define kSetIntpPrefs_AALauczos2 10 -#define kSetIntpPrefs_AALauczos3 11 -#define kSetIntpPrefs_FastTNorm 12 -#define kSetIntpPrefs_FastTMed 13 -#define kSetIntpPrefs_FastTFast 14 -#define kSetIntpPrefs_SetIntp 400 - - -#define kSetSizePrefs_dlg (can_resize ? 350 : 360) -#define kSetSizePrefs_Crop 4 -#define kSetSizePrefs_SFile 5 -#define kSetSizePrefs_OpenF 8 -#define kSetSizePrefs_BrFile 7 -#define kSetSizePrefs_SetInt 6 -#define kSetSizePrefs_NoAlpha 9 - - -void open_selection( FSSpec *filespec ); - -unsigned char *MyCtoPStr(char *x); // added by Kekus Digital - -#endif - Modified: branches/dmgLibPano/tiff.c =================================================================== --- branches/dmgLibPano/tiff.c 2008-08-11 10:36:23 UTC (rev 869) +++ branches/dmgLibPano/tiff.c 2008-08-12 03:28:10 UTC (rev 870) @@ -1639,7 +1639,7 @@ if (firstFile == NULL) { - PrintError("Unable to read tiff file %s", tiffFiles[0].name); + // PrintError("Unable to read tiff file %s", tiffFiles[0].name); return FALSE; } Modified: branches/dmgLibPano/tools/CMakeLists.txt =================================================================== --- branches/dmgLibPano/tools/CMakeLists.txt 2008-08-11 10:36:23 UTC (rev 869) +++ branches/dmgLibPano/tools/CMakeLists.txt 2008-08-12 03:28:10 UTC (rev 870) @@ -1,4 +1,9 @@ ADD_EXECUTABLE(ptmender PTmender.c) +ADD_EXECUTABLE(ptroller PTroller.c) TARGET_LINK_LIBRARIES(ptmender tpano14 m jpeg ${JPEG_LIBRARIES} ${TIFF_LIBRARIES} ${ZLIB_LIBRARIES} ${PNG_LIBRARIES} ) + +TARGET_LINK_LIBRARIES(ptroller tpano14 m jpeg tparser ${JPEG_LIBRARIES} + ${TIFF_LIBRARIES} ${ZLIB_LIBRARIES} ${PNG_LIBRARIES} + ) Modified: branches/dmgLibPano/t... [truncated message content] |