home *** CD-ROM | disk | FTP | other *** search
-
- /* SV_InfoSubs.c
- - Functions for SVO-Support -
- (c) 1990-94 by Andreas R. Kleinert
- Last changes : 07.05.1994
- */
-
- #include "svobject.h"
-
-
- ULONG __saveds __asm SVO_FileInfoRequest( register __a1 struct SVObjectHandle *SVObjectHandle_a1, register __a2 struct Window *window, register __a3 ULONG future);
- ULONG __saveds __asm SVO_CheckFileType(register __a1 BPTR handle_a1, register __a2 UBYTE *filename, register __a3 APTR future);
-
-
- void __saveds __stdargs SVLI_SPrintf(APTR buffer, char *formatstring, ...);
-
-
- /* *************************************************** */
- /* * * */
- /* * SVO_FileInfoRequest : Display File Information * */
- /* * * */
- /* *************************************************** */
-
- ULONG __saveds __asm SVO_FileInfoRequest( register __a1 struct SVObjectHandle *SVObjectHandle_a1, register __a2 struct Window *window, register __a3 ULONG future)
- {
- struct SVObjectHandle *SVObjectHandle = SVObjectHandle_a1;
-
- ULONG retval = SVERR_NO_ERROR;
- char hbuf[80], buffer [1024];
- ULONG idcmp = N, noinfo = TRUE;
- struct EasyStruct *estr;
- struct Window *disp_win = window;
-
- if(!SVObjectHandle) return(SVERR_NO_HANDLE);
-
- buffer[0] = (char) 0;
-
- if(SVObjectHandle->ah_SVOHeader)
- {
- noinfo = FALSE;
-
- strcat(buffer, "\n File Information"
- "\n\n SVO V1.0");
-
- strcat(buffer, "\n");
-
- sprintf(hbuf, "\n GfxWidth : %ld", (long) SVObjectHandle->ah_SVOHeader->svo_Width);
- strcat(buffer, hbuf);
-
- sprintf(hbuf, "\n GfxHeight : %ld", (long) SVObjectHandle->ah_SVOHeader->svo_Height);
- strcat(buffer, hbuf);
-
- sprintf(hbuf, "\n Colordepth : %ld", (long) SVObjectHandle->ah_SVOHeader->svo_Depth);
- strcat(buffer, hbuf);
-
- sprintf(hbuf, "\n => # of Colors : %ld", (long) (1<<SVObjectHandle->ah_SVOHeader->svo_Depth));
- strcat(buffer, hbuf);
-
- if(SVObjectHandle->ah_SVOHeader->svo_Version)
- {
- sprintf(hbuf, "\n\n Version %ld Header. AGA ModeID found.", (ULONG) SVObjectHandle->ah_SVOHeader->svo_Version);
- strcat(buffer, hbuf);
- }else strcat(buffer, "\n\n Note : Header Version is obsolete.");
-
- strcat(buffer, "\n");
- }else retval = SVERR_NO_HANDLE;
-
- if(!retval)
- {
- if(noinfo)
- {
- strcat(buffer, "\n File Information"
- "\n\n No information available\n");
- }
-
- estr = AllocVec(sizeof(struct EasyStruct), MEMF_CLEAR);
- if(estr)
- {
- estr->es_StructSize = sizeof(struct EasyStruct);
- estr->es_Flags = N;
- estr->es_Title = "SuperView InfoRequester";
- estr->es_TextFormat = buffer;
- estr->es_GadgetFormat = "Confirm";
-
- if(!disp_win) disp_win = SVObjectHandle->ah_Window;
-
- EasyRequestArgs(disp_win, estr, &idcmp, N);
- FreeVec(estr);
- }
- }
-
- return(retval);
- }
-
- /* *************************************************** */
- /* * * */
- /* * SVLI_CheckFileType : ... * */
- /* * * */
- /* *************************************************** */
-
- ULONG __saveds __asm SVO_CheckFileType(register __a1 BPTR handle_a1, register __a2 UBYTE *filename, register __a3 APTR future)
- {
- BPTR handle = handle_a1, handle2;
- ULONG retval = FALSE;
- UBYTE SVO_id[256];
- char svo_name [256];
-
- if(!handle) return(FALSE);
-
- Seek(handle, N, OFFSET_BEGINNING);
- Read(handle, &SVO_id[0], 256);
- Seek(handle, N, OFFSET_BEGINNING);
-
- if(!strncmp(SVO_id, SVO_ID, strlen(SVO_ID))) retval = TRUE;
-
- if(!retval && filename)
- {
- strcpy(svo_name, filename);
- strcat(svo_name, ".svo");
-
- handle2 = Open(svo_name, MODE_OLDFILE);
- if(handle2)
- {
- Read(handle2, &SVO_id[0], 256);
-
- if(!strncmp(SVO_id, SVO_ID, strlen(SVO_ID))) retval = TRUE;
-
- Close(handle2);
- }
- }
-
- return(retval);
- }
-
- extern void Fmt(void); /* Assembler-Routine for RawDoFmt */
-
- void __saveds __stdargs SVLI_SPrintf(APTR buffer, char *formatstring, ...)
- {
- RawDoFmt((APTR) formatstring, (APTR) (((ULONG *)&formatstring)+1), (APTR) &Fmt, (APTR) buffer);
- }
-