fm_engine_base <RegisterType, RegisterType_OPS> m_owner; //fm_engine_base<RegisterType> &m_owner; // reference to the owning engine // constructor public fm_channel(fm_engine_base <RegisterType, RegisterType_OPS> owner, uint32_t choffs) { m_choffs = choffs; m_feedback = new int16_t[] { 0, 0 }; m_feedback_in = 0; m_op = new ymfm.fm_operator <RegisterType, RegisterType_OPS>[] { null, null, null, null }; m_regs = owner.regs(); m_owner = owner; }
fm_engine_base <RegisterType, RegisterType_OPS> m_owner; // reference to the owning engine // constructor public fm_operator(fm_engine_base <RegisterType, RegisterType_OPS> owner, uint32_t opoffs) { m_choffs = 0; m_opoffs = opoffs; m_phase = 0; m_env_attenuation = 0x3ff; m_env_state = envelope_state.EG_RELEASE; m_ssg_inverted = 0; //false; m_key_state = 0; m_keyon_live = 0; m_regs = owner.regs(); m_owner = owner; }