namespace cw { namespace vtbl { enum { kVtMinId=2000, kVtDeviceSelectId, kVtPianoDevId, kVtSamplerDevId, kVtTableSelectId, kVtPlayVelSeqBtnId, kVtPitchId, kVtPlayPitchSeqBtnId, kVtVelocityId, kVtMinPitchId, kVtMaxPitchId, kVtIncPitchId, kVtApplyBtnId, kVtSaveBtnId, kVtDuplicateBtnId, kVtNameStrId, kVtStatusId, kVtEntry0, kVtEntry1, kVtEntry2, kVtEntry3, kVtEntry4, kVtEntry5, kVtEntry6, kVtEntry7, kVtEntry8, kVtEntry9, kVtEntry10, kVtEntry11, kVtEntry12, kVtEntry13, kVtEntry14, kVtEntry15, kVtEntry16, kVtEntry17, kVtEntry18, kVtEntry19, kVtEntry20, kVtEntry21, kVtEntry22, kVtEntry23, kVtEntry24, kLoadOptionBaseId = 2500, kVtMaxId = 3000 }; struct vtbl_str; typedef handle handle_t; unsigned get_ui_id_map_count(); const cw::ui::appIdMap_t* get_ui_id_map( unsigned panelAppId ); rc_t create( handle_t& hRef, io::handle_t ioH, midi_record_play::handle_t mrpH, const char* cfg_fname, const char* cfg_backup_dir); rc_t destroy( handle_t& hRef ); rc_t on_ui_value( handle_t h, const io::ui_msg_t& m ); rc_t on_ui_echo( handle_t h, const io::ui_msg_t& m ); // Update the state of the player rc_t exec( handle_t h ); } }