ERIS CORE

◆ loadModuleSource()

const char * AppWren::loadModuleSource ( const char *  name)

receiver for the wren c callback function getSourceForModule

Parameters
name
Returns
const char*

Definition at line 1690 of file AppWren.cpp.

1690  {
1691  char file_name[128];
1692  FsFile file;
1693  int16_t file_size; //max file size 32K
1694  safer_strncpy(file_name,name,sizeof(file_name));
1695  strcat(file_name,".wren");
1696  sd->chdir("/wren");
1697  if(!sd->exists(file_name)){
1698  sd->chdir("/wren/lib");
1699  }
1700  if(sd->exists(file_name)){
1701  file = sd->open(file_name, O_RDONLY);
1702  file_size = file.available() + 1;
1703 #ifdef USE_EXTMEM
1704  module_load_buffer = (char*)extmem_malloc(file_size);
1705 #else
1706  module_load_buffer = (char*)malloc(file_size);
1707 #endif
1708  if (module_load_buffer == NULL){
1709  Serial.println(F("M AppWren::loadModuleSource ERROR: Not Enough Memory"));
1710  return NULL;
1711  }
1712  memset(module_load_buffer,0,file_size);
1713  file.read(module_load_buffer,file_size);
1714  file.close();
1715  }
1716  return module_load_buffer;
1717 }
bool safer_strncpy(char *dest, const char *source, uint16_t dest_size)
a safer strncpy
Definition: ErisUtils.cpp:20
char name[MAX_NAME_LENGTH]
Definition: AppBaseClass.h:74
char * module_load_buffer
Definition: AppWren.h:769

References module_load_buffer, AppBaseClass::name, safer_strncpy(), and AppBaseClass::sd.

Referenced by getSourceForModule(), and render().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: