--- trunk/amsn/utils/TkCximage/src/TkCximage.cpp 2008/12/26 16:39:41 10817 +++ trunk/amsn/utils/TkCximage/src/TkCximage.cpp 2008/12/28 21:50:08 10818 @@ -26,6 +26,65 @@ char currenttime[30]; FILE * logfile; +#define AVAILABLE_FORMATS 6 +Tk_PhotoImageFormat cximageFormats[] = { + { + "cximage", + (Tk_ImageFileMatchProc *) ChanMatch, + (Tk_ImageStringMatchProc *) ObjMatch, + (Tk_ImageFileReadProc *) ChanRead, + (Tk_ImageStringReadProc *) ObjRead, + (Tk_ImageFileWriteProc *) ChanWrite, + (Tk_ImageStringWriteProc *) StringWrite + }, + { + "cxgif", + (Tk_ImageFileMatchProc *) ChanMatch, + (Tk_ImageStringMatchProc *) ObjMatch, + (Tk_ImageFileReadProc *) ChanRead, + (Tk_ImageStringReadProc *) ObjRead, + (Tk_ImageFileWriteProc *) ChanWrite, + (Tk_ImageStringWriteProc *) StringWrite + }, + { + "cxpng", + (Tk_ImageFileMatchProc *) ChanMatch, + (Tk_ImageStringMatchProc *) ObjMatch, + (Tk_ImageFileReadProc *) ChanRead, + (Tk_ImageStringReadProc *) ObjRead, + (Tk_ImageFileWriteProc *) ChanWrite, + (Tk_ImageStringWriteProc *) StringWrite + }, + { + "cxjpg", + (Tk_ImageFileMatchProc *) ChanMatch, + (Tk_ImageStringMatchProc *) ObjMatch, + (Tk_ImageFileReadProc *) ChanRead, + (Tk_ImageStringReadProc *) ObjRead, + (Tk_ImageFileWriteProc *) ChanWrite, + (Tk_ImageStringWriteProc *) StringWrite + }, + { + "cxtga", + (Tk_ImageFileMatchProc *) ChanMatch, + (Tk_ImageStringMatchProc *) ObjMatch, + (Tk_ImageFileReadProc *) ChanRead, + (Tk_ImageStringReadProc *) ObjRead, + (Tk_ImageFileWriteProc *) ChanWrite, + (Tk_ImageStringWriteProc *) StringWrite + }, + { + "cxbmp", + (Tk_ImageFileMatchProc *) ChanMatch, + (Tk_ImageStringMatchProc *) ObjMatch, + (Tk_ImageFileReadProc *) ChanRead, + (Tk_ImageStringReadProc *) ObjRead, + (Tk_ImageFileWriteProc *) ChanWrite, + (Tk_ImageStringWriteProc *) StringWrite + } +}; + + int RGB2BGR(Tk_PhotoImageBlock *data, BYTE * pixelPtr) { int i; int size = data->height * data->width * data->pixelSize; @@ -267,10 +326,6 @@ INITLOGS(); // LOG("---------------------------------"); // - - int AvailableFromats = 6; - const char *KnownFormats[] = {"cximage", "cxgif", "cxpng", "cxjpg", "cxtga", "cxbmp"}; - //Check Tcl version is 8.3 or higher if (Tcl_InitStubs(interp, TCL_VERSION, 1) == NULL) { return TCL_ERROR; @@ -285,15 +340,6 @@ LOG("Tk stub initialized"); // - Tk_PhotoImageFormat cximageFormats = { - NULL, - (Tk_ImageFileMatchProc *) ChanMatch, - (Tk_ImageStringMatchProc *) ObjMatch, - (Tk_ImageFileReadProc *) ChanRead, - (Tk_ImageStringReadProc *) ObjRead, - (Tk_ImageFileWriteProc *) ChanWrite, - (Tk_ImageStringWriteProc *) StringWrite - }; LOG("Creating commands"); // @@ -323,14 +369,9 @@ #endif LOG("Adding format : "); // - for (i = 0; i < AvailableFromats; i++) { - delete cximageFormats.name; - cximageFormats.name = new char[strlen(KnownFormats[i]) + 1]; - strcpy(cximageFormats.name, KnownFormats[i]); - Tk_CreatePhotoImageFormat(&cximageFormats); - APPENDLOG(cximageFormats.name); // - delete cximageFormats.name; - cximageFormats.name = NULL; + for (i = 0; i < AVAILABLE_FORMATS; i++) { + Tk_CreatePhotoImageFormat(&cximageFormats[i]); + APPENDLOG(cximageFormats[i].name); // } // end of Initialisation