1 /************************************************************************/
2 /*  Scan, main module.							*/
3 /************************************************************************/
4 
5 #   include	"appFrameConfig.h"
6 
7 #   include	<stddef.h>
8 #   include	<stdio.h>
9 #   include	<stdlib.h>
10 
11 #   include	"appFrame.h"
12 
13 #   include	<appDebugon.h>
14 
15 /************************************************************************/
16 /*									*/
17 /*  Make the list of bitmap FileExtensions that can be opened/saved.	*/
18 /*									*/
19 /************************************************************************/
20 
appImgMakeFileExtensions(AppFileExtension ** pAfeList,int * pAfeCount)21 int appImgMakeFileExtensions(	AppFileExtension **	pAfeList,
22 				int *			pAfeCount )
23     {
24     int				i;
25     AppFileExtension *		afe;
26     int				afeCount;
27 
28     const BitmapFileFormat *	bff;
29     BitmapFileType **		pbft;
30 
31     afeCount=  bmNumberOfFileTypes+ bmNumberOfFileFormats;
32     afe= (AppFileExtension *)malloc( afeCount * sizeof(AppFileExtension) );
33     if  ( ! afe )
34 	{ LXDEB(afeCount,afe); return -1;	}
35 
36     afeCount= 0;
37 
38     bff= bmFileFormats;
39     for ( i= 0; i < bmNumberOfFileFormats; bff++, i++ )
40 	{
41 	unsigned	flags= APPFILE_IS_BASIC_TYPE;
42 
43 	afe[afeCount].afeId= bff->bffId;
44 	afe[afeCount].afeFilter= bff->bffFileType->bftFileFilter;
45 	afe[afeCount].afeDescription= bff->bffDescription;
46 	afe[afeCount].afeExtension= bff->bffFileType->bftFileExtension;
47 
48 	if  ( bff->bffFileType->bftRead )
49 	    { flags |= APPFILE_CAN_OPEN;	}
50 	if  ( bff->bffFileType->bftWrite )
51 	    { flags |= APPFILE_CAN_SAVE;	}
52 
53 	afe[afeCount].afeUseFlags= flags;
54 
55 	afeCount++;
56 	}
57 
58     pbft= bmFileTypes;
59     for ( i= 0; i < bmNumberOfFileTypes; pbft++, i++ )
60 	{
61 	afe[afeCount].afeId= (*pbft)->bftTypeId;
62 	afe[afeCount].afeFilter= (*pbft)->bftFileFilter;
63 	afe[afeCount].afeDescription= (*pbft)->bftTypeDescription;
64 	afe[afeCount].afeExtension= (*pbft)->bftFileExtension;
65 
66 	if  ( ! (*pbft)->bftRead )
67 	    { afe[afeCount].afeUseFlags= 0;			}
68 	else{ afe[afeCount].afeUseFlags= APPFILE_CAN_OPEN;	}
69 
70 	afeCount++;
71 	}
72 
73     *pAfeList= afe;
74     *pAfeCount= afeCount;
75 
76     return 0;
77     }
78