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)21int 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