static void _bmlw_get_machine_info (BmlIpcBuf * bi, BmlIpcBuf * bo) { BuzzMachineHandle *bmh = (BuzzMachineHandle *) bmlipc_read_int (bi); BuzzMachineProperty key = bmlipc_read_int (bi); int ival, ret; char *sval; switch (key) { case BM_PROP_TYPE: case BM_PROP_VERSION: case BM_PROP_FLAGS: case BM_PROP_MIN_TRACKS: case BM_PROP_MAX_TRACKS: case BM_PROP_NUM_GLOBAL_PARAMS: case BM_PROP_NUM_TRACK_PARAMS: case BM_PROP_NUM_ATTRIBUTES: case BM_PROP_NUM_INPUT_CHANNELS: case BM_PROP_NUM_OUTPUT_CHANNELS: ret = bmlw_get_machine_info (bmh, key, &ival); bmlipc_write_int (bo, (ret ? 1 : 0)); bmlipc_write_int (bo, ival); break; case BM_PROP_NAME: case BM_PROP_SHORT_NAME: case BM_PROP_AUTHOR: case BM_PROP_COMMANDS: case BM_PROP_DLL_NAME: ret = bmlw_get_machine_info (bmh, key, &sval); bmlipc_write_int (bo, (ret ? 2 : 0)); if (sval) { bmlipc_write_string (bo, sval); } break; } }
int bmlw_get_machine_info (BuzzMachineHandle * bmh, BuzzMachineProperty key, void *value) { int ret; win32_prolog (); ret = BMLX (bmlw_get_machine_info (bmh, key, value)); win32_eliplog (); return ret; }