with Text_Io;                           use Text_Io;

package body Gmface.Gm_Virtual.Gmface.Prgm_Change is
   
      procedure Print (Filename : in String; Plug : in Prgm_Change_Plugin_Record) is
      
      File : File_Type;
   begin
      
      Put_line("Prgm Change : ");
      --Print(Filename, Plugin_Class(Plug));
      
      Open(File, Append_File, Filename);      
      Put_Line(File, Positive'Image(Plug.Bars_Max));
      for Voice_Id in Plug.Sequencer'Range loop
	 Put_Line(File, Positive'Image(Plug.Sequencer(Voice_Id).Id));
	 Put_Line(File, Value_Type'Image(Plug.Sequencer(Voice_Id).MSB_select));
	 Put_Line(File, Value_Type'Image(Plug.Sequencer(Voice_Id).LSB_select));
	 Put_Line(File, Program_Type'Image(Plug.Sequencer(Voice_Id).Prgm_num));
	 Put_Line(File, Positive'Image(Plug.Sequencer(Voice_Id).Bar));
	 Put_Line(File, Time_Number_Type'Image(Plug.Sequencer(Voice_Id).Number));
	 Put_Line(File, Time_Unit_Type'Image(Plug.Sequencer(Voice_Id).Step));
	 Put_Line(File, boolean'Image(Plug.Sequencer(Voice_Id).Played));	    
	 Put_Line(File, Plug.Sequencer(Voice_Id).Note.all);	 
	 Put_Line(File, boolean'Image(Plug.Sequencer(Voice_Id).In_Loop));	 
      end loop;
      Close(File);            
   end Print;
   
end Gmface.Gm_Virtual.Gmface.Prgm_Change;