with PragmARC.REM_NN_Wrapper;
use PragmARC.REM_NN_Wrapper;

with Libsens.Virtual.Plugins;           use Libsens.Virtual.Plugins;
package Libsens.Virtual.NN_Plugin is
   
   type NN_Mono_Plugin_Record is
     new Plugin_Class(Nn_Mono) with
      record	 	 
	 Network_Name : access  String := new String ' ("neural-mono.wgt");
	 Width        : Positive := 6;
	 Sample_Max   : Positive := 12;
	 Reuse        : Boolean  := False;
	 Converged    : Real    := 0.1;
	 Max_Epoch    : Positive := 1024;	 
      end record;
   
   procedure Print (Filename : in String; Plug : in NN_Mono_Plugin_Record);
      
   type NN_Poly_Plugin_Record is
     new Plugin_Class(Nn_Poly) with
      record
	 Network_Name : access  String := new String ' ("neural-poly.wgt");
	 Width        : Positive := 6;
	 Sample_Max   : Positive := 12;
	 Reuse        : Boolean  := False;
	 Converged    : Real    := 0.1;
	 Max_Epoch    : Positive := 1024;
      end record;   
	   
   procedure Print (Filename : in String; Plug : in NN_Poly_Plugin_Record);
   
   type NN_Rythm_Plugin_Record is
     new Plugin_Class(Nn_Rythm) with
      record
	 Network_Name : access  String := new String ' ("neural-rythm.wgt");
	 Width        : Positive := 6;
	 Sample_Max   : Positive := 12;
	 Reuse        : Boolean  := False;
	 Converged    : Real    := 0.1;
	 Max_Epoch    : Positive := 1024;
      end record;   
   
   procedure Print (Filename : in String; Plug : in NN_Rythm_Plugin_Record);
   
end Libsens.Virtual.NN_Plugin;