with Gmface.Gm_MIDI.Instruments; use Gmface.Gm_MIDI.Instruments; with Gmface.Gm_Virtual; use Gmface.Gm_Virtual; with Gmface.Gm_Processing.Gm_Common; use Gmface.Gm_Processing.Gm_Common; with Gmface.Gm_Processing.Gm_Plugins; use Gmface.Gm_Processing.Gm_Plugins; package Gmface.Gm_Processing.Gm_Work_Processing is type Gm_Plugin_Processing_Access is access all Gm_Plugin_Processing'Class; -- function Process_Initialize(Class : in Plugin_Enum; -- Plugin : in Abstract_Plugin_Access) -- return Plugin_Processing_Access is abstract; type Process_Array is array (Plugin_Num'Range) of Gm_Plugin_Processing_Access; type Work_Processing_Record is abstract tagged limited record Box : aliased Messages_box; Processes : Process_Array; Instruments : access Bandmaster_Record; end record; procedure Initialize(Processing : in out Work_Processing_Record; Work : in Work_Access; Insts : access Bandmaster_record) is abstract; type Work_Processing_Access is access all Work_Processing_Record'Class; type Work_Process_Array is array (Work_Num'Range) of Work_Processing_Access; end Gmface.Gm_Processing.Gm_Work_Processing;