with Gmface.Gm_Common; use Gmface.Gm_Common; with Gmface.Gm_MIDI.Instruments; use Gmface.Gm_MIDI.Instruments; with Gmface.Gm_Virtual; use Gmface.Gm_Virtual; with Gmface.Gm_Virtual.Gmface.Gmface_Plugins; use Gmface.Gm_Virtual.Gmface.Gmface_Plugins; with Gmface.Gm_Processing.Gm_Common; use Gmface.Gm_Processing.Gm_Common; with Gmface.Gm_Processing.Gm_Plugins; use Gmface.Gm_Processing; with Ada.Calendar; use Ada.Calendar; with Interfaces.C; use Interfaces.C; package Gmface.Gm_Processing.Gmface.Gm_Plugin_Processing is type Plugin_Processing(Class : Plugin_Enum); type Plugin_Processing(Class : Plugin_Enum) is abstract new Gm_Plugins.Gm_Plugin_Processing with record null; end record; procedure Initialize(Plugin_Process : in Plugin_Processing; Options : in Work_Options_access) is abstract; procedure Start(Plugin_Process : in Plugin_Processing'Class; Start_Time : in Time; Tempo : in Tempo_Type; Signature : in Time_Signature_Type) is abstract; procedure Stop(Plugin_Process : in Plugin_Processing'Class) is abstract; procedure Halt(Plugin_Process : in Plugin_Processing'Class) is abstract; end Gmface.Gm_Processing.Gmface.Gm_Plugin_Processing;