// pickle / unpickle u8* param_pickle(pnode_t* pnode, u8* dst) { u32 val; /// wasting some space to preserve 4-byte alignment // store idx //// TEST: don't //dst = pickle_32((u32)pnode->idx, dst); //// TEST: keep as dummy for compatibility dst = pickle_32(0, dst); //// // print_dbg("\r\n pickling param node, value: 0x"); // print_dbg_hex(pnode->data.value.asUint); // store value val = (u32)(pnode->data.value); dst = pickle_32(val, dst); // store play-inclusion dst = pickle_32((u32)(pnode->play), dst); // store descriptor dst = pdesc_pickle(&(pnode->desc), dst); return dst; }
// pickle / unpickle u8* param_pickle(pnode_t* pnode, u8* dst) { u32 val; /// wasting some space to preserve 4-byte alignment // store idx dst = pickle_32((u32)pnode->idx, dst); // print_dbg("\r\n pickling param node, value: 0x"); // print_dbg_hex(pnode->data.value.asUint); // store value val = (u32)(pnode->data.value); dst = pickle_32(val, dst); // store preset-inclusion // dst = pickle_32((u32)(pnode->preset), dst); // store descriptor dst = pdesc_pickle(&(pnode->desc), dst); return dst; }
//---- main function int main() { FILE* out; int i, j; // write pointer u8* pwr; // data.paramDesc = desc; strcat(str, NAME); strcat(str, ".dsc"); fill_param_desc(desc); printf("\r\n %s_desc_build ... ", NAME); printf("\r\n filled param descripor table... \r\n"); out = fopen(str, "w"); pwr = buf; // pack the count of parameters pwr = pickle_32(eParamNumParams, pwr); // serialize the descriptors for(i=0; i<eParamNumParams; i++) { pwr = pdesc_pickle(&(desc[i]), pwr); } // write to file fwrite(buf, 1, (size_t)((size_t)pwr - (size_t)&buf), out); printf("\r\n wrote %d bytes... \r\n", (int) ((size_t)pwr - (size_t)&buf)); fclose(out); printf("\r\n done. \r\n"); return 0; }