Description d’un « .info »
10 sujets de 1 à 10 (sur un total de 10)
-
Il n’y a pas qu’un seul format « .info », c’est le système qui se charge de gérer ces fichiers de manière transparente (par exemple pour les icônes png les tooltypes sont stockés dans le fichier d’image PNG). Donc il vaudrait mieux que tu utilises par exemple l’icon.library si tu programmes en C (à moins que tu cherches un outil en ligne de commande ?).
Merci de t’être intéressé a ma question.
En verité je développe une petite application sous linux qui permet de naviguer sur des Cds Amiga et je voulais pouvoir decoder le fichier.info en gros une explication sur sa construction. le plus important etant la récupération des tools types.
un peu comme la description du format wav ici : http://sub0.developpez.com/FormatWAV/FormatWAV.htm
Merci d’avance
De rien .
Je ne crois pas que le format original des .info soit documenté publiquement, en tout cas pas en regardant le SDK officiel. Mais par contre, tu peux jeter un coup d’oeil aux sources d’AROS, et en particulier celle de l’icon.library (dans workbench/libs/icon).
merci…je vais aller voir ça … j’ai trouvé quelques infos comme sur http://en.wikipedia.org/wiki/Amiga_Hunk
mais ça m’a l’air bien compliqué…
#ifndef CLIB_ICON_PROTOS_H
#define CLIB_ICON_PROTOS_H
/*
** $VER: icon_protos.h 38.2 (16.6.93)
** Includes Release 40.15
**
** C prototypes. For use with 32 bit integers only.
**
** (C) Copyright 1990-1993 Commodore-Amiga, Inc.
** All Rights Reserved
*/
#ifndef EXEC_TYPES_H
#include
#endif
#ifndef WORKBENCH_WORKBENCH_H
#include
#endif
void FreeFreeList( struct FreeList *freelist );
BOOL AddFreeList( struct FreeList *freelist, APTR mem, unsigned long size );
struct DiskObject *GetDiskObject( UBYTE *name );
BOOL PutDiskObject( UBYTE *name, struct DiskObject *diskobj );
void FreeDiskObject( struct DiskObject *diskobj );
UBYTE *FindToolType( UBYTE **toolTypeArray, UBYTE *typeName );
BOOL MatchToolValue( UBYTE *typeString, UBYTE *value );
UBYTE *BumpRevision( UBYTE *newname, UBYTE *oldname );
/*— functions in V36 or higher (Release 2.0) —*/
struct DiskObject *GetDefDiskObject( long type );
BOOL PutDefDiskObject( struct DiskObject *diskObject );
struct DiskObject *GetDiskObjectNew( UBYTE *name );
/*— functions in V37 or higher (Release 2.04) —*/
BOOL DeleteDiskObject( UBYTE *name );
#endif /* CLIB_ICON_PROTOS_H */
#ifndef WORKBENCH_WORKBENCH_H
#define WORKBENCH_WORKBENCH_H
/*
** $VER: workbench.h 40.1 (26.8.93)
** Includes Release 40.15
**
** workbench.library general definitions
**
** (C) Copyright 1985-1993 Commodore-Amiga, Inc.
** All Rights Reserved
*/
#ifndef EXEC_TYPES_H
#include « exec/types.h »
#endif
#ifndef EXEC_NODES_H
#include « exec/nodes.h »
#endif
#ifndef EXEC_LISTS_H
#include « exec/lists.h »
#endif
#ifndef EXEC_TASKS_H
#include « exec/tasks.h »
#endif
#ifndef INTUITION_INTUITION_H
#include « intuition/intuition.h »
#endif
#define WBDISK 1
#define WBDRAWER 2
#define WBTOOL 3
#define WBPROJECT 4
#define WBGARBAGE 5
#define WBDEVICE 6
#define WBKICK 7
#define WBAPPICON 8
struct OldDrawerData { /* pre V36 definition */
struct NewWindow dd_NewWindow; /* args to open window */
LONG dd_CurrentX; /* current x coordinate of origin */
LONG dd_CurrentY; /* current y coordinate of origin */
};
/* the amount of DrawerData actually written to disk */
#define OLDDRAWERDATAFILESIZE (sizeof(struct OldDrawerData))
struct DrawerData {
struct NewWindow dd_NewWindow; /* args to open window */
LONG dd_CurrentX; /* current x coordinate of origin */
LONG dd_CurrentY; /* current y coordinate of origin */
ULONG dd_Flags; /* flags for drawer */
UWORD dd_ViewModes; /* view mode for drawer */
};
/* the amount of DrawerData actually written to disk */
#define DRAWERDATAFILESIZE (sizeof(struct DrawerData))
struct DiskObject {
UWORD do_Magic; /* a magic number at the start of the file */
UWORD do_Version; /* a version number, so we can change it */
struct Gadget do_Gadget; /* a copy of in core gadget */
UBYTE do_Type;
char * do_DefaultTool;
char ** do_ToolTypes;
LONG do_CurrentX;
LONG do_CurrentY;
struct DrawerData * do_DrawerData;
char * do_ToolWindow; /* only applies to tools */
LONG do_StackSize; /* only applies to tools */
};
#define WB_DISKMAGIC 0xe310 /* a magic number, not easily impersonated */
#define WB_DISKVERSION 1 /* our current version number */
#define WB_DISKREVISION 1 /* our current revision number */
/* I only use the lower 8 bits of Gadget.UserData for the revision # */
#define WB_DISKREVISIONMASK 255
struct FreeList {
WORD fl_NumFree;
struct List fl_MemList;
};
/* workbench does different complement modes for its gadgets.
** It supports separate images, complement mode, and backfill mode.
** The first two are identical to intuitions GFLG_GADGIMAGE and GFLG_GADGHCOMP.
** backfill is similar to GFLG_GADGHCOMP, but the region outside of the
** image (which normally would be color three when complemented)
** is flood-filled to color zero.
*/
#define GFLG_GADGBACKFILL 0x0001
#define GADGBACKFILL 0x0001 /* an old synonym */
/* if an icon does not really live anywhere, set its current position
** to here
*/
#define NO_ICON_POSITION (0x80000000)
/* workbench now is a library. this is it’s name */
#define WORKBENCH_NAME « workbench.library »
/* If you find am_Version >= AM_VERSION, you know this structure has
* at least the fields defined in this version of the include file
*/
#define AM_VERSION 1
struct AppMessage {
struct Message am_Message; /* standard message structure */
UWORD am_Type; /* message type */
ULONG am_UserData; /* application specific */
ULONG am_ID; /* application definable ID */
LONG am_NumArgs; /* # of elements in arglist */
struct WBArg *am_ArgList; /* the arguements themselves */
UWORD am_Version; /* will be AM_VERSION */
UWORD am_Class; /* message class */
WORD am_MouseX; /* mouse x position of event */
WORD am_MouseY; /* mouse y position of event */
ULONG am_Seconds; /* current system clock time */
ULONG am_Micros; /* current system clock time */
ULONG am_Reserved[8]; /* avoid recompilation */
};
/* types of app messages */
#define AMTYPE_APPWINDOW 7 /* app window message */
#define AMTYPE_APPICON 8 /* app icon message */
#define AMTYPE_APPMENUITEM 9 /* app menu item message */
/*
* The following structures are private. These are just stub
* structures for code compatibility…
*/
struct AppWindow { void *aw_PRIVATE; };
struct AppIcon { void *ai_PRIVATE; };
struct AppMenuItem { void *ami_PRIVATE; };
#endif /* !WORKBENCH_WORKBENCH_H */
10 sujets de 1 à 10 (sur un total de 10)
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › Description d’un « .info »