home *** CD-ROM | disk | FTP | other *** search
- IFND XPK_XPKPREFS_I
- XPK_XPKPREFS_I SET 1
-
- **
- ** $VER: xpk/xpkprefs.i 4.10 (05.04.97) by SDI
- **
- ** (C) Copyright 1997 by Dirk Stöcker
- ** All Rights Reserved
- **
-
- IFND EXEC_SEMAPHORES_I
- INCLUDE "exec/semaphores.i"
- ENDC
-
- IFND LIBRARIES_IFFPARSE_I
- INCLUDE "libraries/iffparse.i"
- ENDC
-
- ID_XPKT EQU 'XPKT'
- ID_XPKM EQU 'XPKM'
-
- *****************************************************************************
- *
- *
- * XpkTypeData structure
- *
- *
-
- XTD_NoPack EQU $0001 ; filetype should not be crunched
- XTD_ReturnError EQU $0002 ; return XPKERR_BADPARAMS -- this equals version 3 handling
- * These two cannot be set same time!
-
- STRUCTURE XpkTypeData, 0
- ULONG xtd_Flags ; see above XTD flags
- ULONG xtd_StdID ; holding the ID --> 'NUKE'
- ULONG xtd_ChunkSize ; maybe useless with external crunchers
- UWORD xtd_Mode ; PackMode
- UWORD xtd_Version ; structure version --> 0 at the moment
- APTR xtd_Password ; not used at the moment
- APTR xtd_Memory ; memory pointer - when should be freed by
- ULONG xtd_MemorySize ; memory size - receiver (xpkmaster)
- LABEL XpkTypeData_SIZEOF
-
- ******************************************************************************
- *
- *
- * XpkTypePrefs structure
- *
- *
-
- XPKT_NamePattern EQU $0001 ; File Pattern is given
- XPKT_FilePattern EQU $0002 ; Name Pattern is given
- * These can both be set (in loading this means File AND Name Pattern have
- * to match), but one is needed
-
- STRUCTURE XpkTypePrefs,0
- ULONG xtp_Flags ; See above XPKT Flags
- APTR xtp_TypeName ; Name of this file type (for prefs program)
- APTR xtp_NamePattern ; Pointer to NamePattern
- APTR xtp_FilePattern ; Pointer to FilePattern
- ULONG xtp_PackerData ; Pointer to PackerData
- LABEL XpkTypePrefs_SIZEOF
-
- *****************************************************************************
- *
- *
- * XpkMainPrefs structure
- *
- *
-
- XPKM_UseXFD EQU $0001 ; Use xfdmaster.library for unpacking
- XPKM_UseExternals EQU $0002 ; Use xex libraries
- XPKM_AutoPassword EQU $0004 ; Use the automatic password requester
-
- STRUCTURE XpkMainPrefs,0
- ULONG xmp_Version ; version of structure ==> 0
- ULONG xmp_Flags ; above defined XPKM flags
- APTR xmp_DefaultType ; sets the mode used as default (struct XpkTypeData *)
- UWORD xmp_Timeout ; Timeout for password requester
- ; given in seconds, zero means no timeout
- LABEL XpkMainPrefs_SIZEOF
-
- * The library internal defaults are:
- * XPKM_UseXFD FALSE
- * XPKM_AutoPassword FALSE
- * XPKM_UseExternals TRUE
- * XTD_ReturnError defined as default
- * xmp_TimeOut set to 120 (two minutes)
- *
- * These defaults are used, when no preferences file is given.
-
- *****************************************************************************
- *
- *
- * XpkMasterPrefs Semaphore structure
- *
- * find with FindSemaphore(XPKPREFSSEMNAME);
- *
- * obtain with ObtainSemaphoreShared(),
- * programs WRITING into the structure fields must know:
- * - use ObtainSemaphore() instead of ObtainSemaphoreShared()
- * - free memory of elements you remove
- * - xb_MainPrefsSize is the length of memory allocated for xb_MainPrefs
- * - all other nodes are freed, when XpkMasterPrefs program finishes, do
- * not do it your own, but you have to allocate memory for new ones!
- * Generally there should be no need to write to these fields !!!!
- *
-
- XPKPREFSSEMNAME MACRO
- DC.B '« XpkMasterPrefs »',0
- ENDM
-
- * Defines used for xps_PrefsType. These help to find out, which preferences
- * type is used.
-
- XPREFSTYPE_STANDARD EQU $58504B4D ; 'XPKM'
- XPREFSTYPE_CYB EQU $20435942 ; ' CYB'
-
- STRUCTURE XpkPrefsSemaphore,0
- STRUCT xps_Semaphore,SS_SIZE
- ULONG xps_Version ; at the moment 0
- ULONG xps_PrefsType ; preferences type
- APTR xps_PrefsData ; preferences data
- APTR xps_MainPrefs ; defined defaults (struct XpkMainPrefs *)
- ULONG xps_RecogSize ; needed size of Recogbuffer
- APTR xps_RecogFunc ; Recog function
- APTR xps_ProgressHook; hook function
- APTR xps_MasterTask ; Creater's task
- LABEL XpkPrefsSemaphore_SIZEOF
-
- * Use Signal(sem->xps_MasterTask, SIGBREAKF_CTRL_C); to get the installer
- * program to remove the semaphore.
-
- ENDC
-