/* ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** http://www.apache.org/licenses/LICENSE-2.0 ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ #include "training.h" #include "debug.h" #include "memry.h" #include "grphics.h" #include "evnts.h" make_int_var (LearningDebugLevel, 0, MakeLearningDebugLevel, 18, 5, SetLearningDebugLevel, "Learning Debug Level: "); make_int_var (NormMethod, character, MakeNormMethod, 15, 10, SetNormMethod, "Normalization Method ...") char *demodir; /*demo home directory */ void cprintf( //Trace printf const char *format,... //special message ) { } char *c_alloc_string( //allocate string INT32 count //no of chars required ) { return alloc_string(count); } void c_free_string( //free a string char *string //string to free ) { free_string(string); } void *c_alloc_mem_p( //allocate permanent space INT32 count //block size to allocate ) { return alloc_mem_p(count); } void *c_alloc_mem( //get some memory INT32 count //no of bytes to get ) { return alloc_mem(count); } void c_free_mem( //free mem from alloc_mem void *oldchunk //chunk to free ) { free_mem(oldchunk); } void c_check_mem( //check consistency const char *string, //context message INT8 level //level of check ) { check_mem(string,level); } void* c_alloc_struct( //allocate memory INT32 count, //no of chars required const char* name //class name ) { return alloc_struct(count,name); } void c_free_struct( //free a structure void* deadstruct, //structure to free INT32 count, //no of bytes const char* name //class name ) { free_struct(deadstruct,count,name); } void c_make_current( /*move pen*/ void* win ) { WINDOW window=(WINDOW)win; window->Make_picture_current(); } void reverse32( void* ptr ) { char tmp; char* cptr=(char*)ptr; tmp=*cptr; *cptr=*(cptr+3); *(cptr+3)=tmp; tmp=*(cptr+1); *(cptr+1)=*(cptr+2); *(cptr+2)=tmp; } void reverse16( void* ptr ) { char tmp; char* cptr=(char*)ptr; tmp=*cptr; *cptr=*(cptr+1); *(cptr+1)=tmp; } void* c_create_window( /*create a window*/ const char *name, /*name/title of window*/ INT16 xpos, /*coords of window*/ INT16 ypos, /*coords of window*/ INT16 xsize, /*size of window*/ INT16 ysize, /*size of window*/ double xmin, /*scrolling limits*/ double xmax, /*to stop users*/ double ymin, /*getting lost in*/ double ymax /*empty space*/ ) { return create_window(name,SCROLLINGWIN,xpos,ypos,xsize,ysize, xmin,xmax,ymin,ymax,TRUE,FALSE,FALSE,TRUE); } void c_line_color_index( /*set color*/ void* win, C_COL index ) { WINDOW window=(WINDOW)win; // ASSERT_HOST(index>=0 && index<=48); if (index<0 || index>48) index=(C_COL)1; window->Line_color_index((COLOUR)index); } void c_move( /*move pen*/ void* win, double x, double y ) { WINDOW window=(WINDOW)win; window->Move2d(x,y); } void c_draw( /*move pen*/ void* win, double x, double y ) { WINDOW window=(WINDOW)win; window->Draw2d(x,y); } void c_clear_window( /*move pen*/ void* win ) { WINDOW window=(WINDOW)win; window->Clear_view_surface(); } char window_wait( /*move pen*/ void* win ) { WINDOW window=(WINDOW)win; GRAPHICS_EVENT event; await_event(window,TRUE,ANY_EVENT,&event); if (event.type==KEYPRESS_EVENT) return event.key; else return '\0'; }