static void mcc_cb(const char *fnname, const unsigned char chn, const unsigned char cc, const unsigned char flags, void *arg) { B3S* b3s = (B3S*)arg; char mmv[20]; sprintf(mmv, "%d|%d ", chn, cc); LV2_Atom_Forge_Frame frame; lv2_atom_forge_frame_time(&b3s->forge, 0); x_forge_object(&b3s->forge, &frame, 1, b3s->uris.sb3_uimccset); lv2_atom_forge_property_head(&b3s->forge, b3s->uris.sb3_cckey, 0); lv2_atom_forge_string(&b3s->forge, fnname, strlen(fnname)); lv2_atom_forge_property_head(&b3s->forge, b3s->uris.sb3_ccval, 0); lv2_atom_forge_string(&b3s->forge, mmv, strlen(mmv)); lv2_atom_forge_pop(&b3s->forge, &frame); }
static void forge_message_str(B3S *b3s, LV2_URID uri, const char *msg) { LV2_Atom_Forge_Frame frame; lv2_atom_forge_frame_time(&b3s->forge, 0); x_forge_object(&b3s->forge, &frame, 1, uri); lv2_atom_forge_property_head(&b3s->forge, b3s->uris.sb3_uimsg, 0); lv2_atom_forge_string(&b3s->forge, msg, strlen(msg)); lv2_atom_forge_pop(&b3s->forge, &frame); }
static void pgm_cb(int num, int pc, const char *name, void *arg) { B3S* b3s = (B3S*)arg; char tmp[256]; int pco = pc - b3s->inst->progs->MIDIControllerPgmOffset; #ifdef DEBUGPRINT fprintf(stderr, "PGM CB %d %d %s\n",num, pc, name); #endif LV2_Atom_Forge_Frame frame; lv2_atom_forge_frame_time(&b3s->forge, 0); x_forge_object(&b3s->forge, &frame, 1, b3s->uris.sb3_midipgm); lv2_atom_forge_property_head(&b3s->forge, b3s->uris.sb3_cckey, 0); lv2_atom_forge_int(&b3s->forge, pco); lv2_atom_forge_property_head(&b3s->forge, b3s->uris.sb3_ccval, 0); lv2_atom_forge_string(&b3s->forge, name, strlen(name)); formatProgram(&b3s->inst->progs->programmes[pc], tmp, 256); lv2_atom_forge_property_head(&b3s->forge, b3s->uris.sb3_ccdsc, 0); lv2_atom_forge_string(&b3s->forge, tmp, strlen(tmp)); lv2_atom_forge_pop(&b3s->forge, &frame); }
/** Forge a string value */ inline ForgeRef write_string (const char* str) { return lv2_atom_forge_string (this, str, strlen (str)); }