
[01;34mwith[m Gmface[31m.[mGm_Virtual[31m.[mGmface[31m.[mStep_Sequencer[31m;[m
[01;34muse[m Gmface[31m.[mGm_Virtual[31m.[mGmface[31m.[mStep_Sequencer[31m;[m
[01;34mwith[m Gmface[31m.[mGm_Virtual[31m.[mGmface[31m.[mCtrl_Change[31m;[m
[01;34muse[m Gmface[31m.[mGm_Virtual[31m.[mGmface[31m.[mCtrl_Change[31m;[m
[01;34mwith[m Gmface[31m.[mGm_Virtual[31m.[mGmface[31m.[mPrgm_Change[31m;[m
[01;34muse[m Gmface[31m.[mGm_Virtual[31m.[mGmface[31m.[mPrgm_Change[31m;[m

[01;34mwith[m Gmface[31m.[mGm_MIDI[31m.[mMessages[31m;[m           [01;34muse[m Gmface[31m.[mGm_MIDI[31m.[mMessages[31m;[m

[01;34mwith[m Ada[31m.[mDirectories[31m;[m                   [01;34muse[m Ada[31m.[mDirectories[31m;[m
[01;34mwith[m Gnat[31m.[mOS_Lib[31m;[m                       [01;34muse[m Gnat[31m;[m
[01;34mwith[m Text_Io[31m;[m                           [01;34muse[m Text_Io[31m;[m
[01;34mpackage[m [01;34mbody[m Gmface[31m.[mGm_Virtual[31m.[mGmface[31m.[mGmface_Work [01;34mis[m
   
   
   [01;34mfunction[m [01;30mimage[m[31m([mSignature [31m:[m [01;34min[m Time_Signature_Type[31m)[m [01;34mreturn[m [32mString[m [01;34mis[m
      
   [01;34mbegin[m      
      
      [01;34mreturn[m 
	Positive[31m'Image(Signature.Number) & '[m[31m/[m' [31m&[m
	Positive'[01;30mImage[m[31m([msignature[31m.[mUnit[31m);[m
   [01;34mend[m Image[31m;[m      
   
   
   [01;34mfunction[m [01;30mImage[m[31m([mBar_Beat [31m:[m [01;34min[m Bar_Beat_Type[31m)[m [01;34mreturn[m [32mString[m [01;34mis[m
      
   [01;34mbegin[m
      
      [01;34mreturn[m Positive[31m'Image(Bar_Beat.Bar) & '[m[31m.[m' [31m&[m
	Positive[31m'Image(Bar_Beat.Time_Number) & '[m[31m.[m' [31m&[m
	Positive'[01;30mImage[m[31m([mBar_Beat[31m.[mTime_unit[31m);[m
   [01;34mend[m Image[31m;[m
   
   [01;34mprocedure[m [01;30mNext[m[31m([mBar_Beat    [31m:[m [01;34min[m [01;34mout[m Bar_Beat_Type[31m;[m
		  Bar         [31m:[m [01;34min[m Natural[31m;[m
		  Number      [31m:[m [01;34min[m Time_Number_Type[31m;[m
		  Unit        [31m:[m [01;34min[m Time_Unit_Type[31m)[m [01;34mis[m
      
   [01;34mbegin[m
      
      [01;34mif[m Bar_Beat[31m.[mTime_Unit [31m+[m [35m1[m [31m>[m Unit [01;34mthen[m
	 Bar_Beat[31m.[mTime_Unit [31m:=[m [35m1[m[31m;[m
	 [01;34mif[m Bar_Beat[31m.[mTime_Number [31m+[m [35m1[m [31m>[m Number [01;34mthen[m
	    Bar_Beat[31m.[mTime_Number [31m:=[m [35m1[m[31m;[m
	    [01;34mif[m Bar_Beat[31m.[mBar [31m<[m Bar [01;34mthen[m
	       Bar_Beat[31m.[mBar [31m:=[m Bar_Beat[31m.[mBar [31m+[m [35m1[m[31m;[m
	    [01;34melse[m
	       Bar_Beat[31m.[mBar [31m:=[m [35m1[m[31m;[m
	    [01;34mend[m [01;34mif[m[31m;[m
	 [01;34melse[m
	    Bar_Beat[31m.[mTime_Number [31m:=[m Bar_Beat[31m.[mTime_Number [31m+[m [35m1[m[31m;[m
	 [01;34mend[m [01;34mif[m[31m;[m
      [01;34melse[m
	 Bar_Beat[31m.[mTime_Unit [31m:=[m Bar_Beat[31m.[mTime_Unit [31m+[m [35m1[m[31m;[m
      [01;34mend[m [01;34mif[m[31m;[m      
   [01;34mend[m Next[31m;[m
   
   
   [01;34mfunction[m [01;30mInitialize[m[31m([mClass [31m:[m [01;34min[m Plugin_Enum[31m;[m
		       Id        [31m:[m [01;34min[m Plugin_num[31m;[m
		       Device    [31m:[m [01;34min[m Device_Num[31m;[m
		       Ch        [31m:[m [01;34min[m Channel_Num[31m;[m
		       Form      [31m:[m [01;34min[m Form_Index_Type[31m;[m
		       cat       [31m:[m [01;34min[m Category_Index_Type[31m)[m
     
		      [01;34mreturn[m abstract_Plugin_Access [01;34mis[m

      Plugin [31m:[m abstract_Plugin_Access[31m;[m
      
   [01;34mbegin[m
      [01;34mcase[m Class [01;34mis[m
	 [01;34mwhen[m Null_Plugin [31m=>[m
	    Plugin [31m:=[m [01;34mnew[m [01;30mGmface_Plugin_Class[m[31m([mNull_Plugin[31m);[m
	 [01;34mwhen[m Step_Seq [31m=>[m
	    Plugin [31m:=[m [01;34mnew[m Step_Seq_Plugin_Record[31m;[m
	 [01;34mwhen[m CC_List [31m=>[m
	    Plugin [31m:=[m [01;34mnew[m Ctrl_Change_Plugin_Record[31m;[m
	 [01;34mwhen[m PC_List [31m=>[m
	    Plugin [31m:=[m [01;34mnew[m Prgm_Change_Plugin_Record[31m;[m
	 [01;34mwhen[m [01;34mothers[m [31m=>[m
	    [01;34mnull[m[31m;[m
      [01;34mend[m [01;34mcase[m[31m;[m
      [01;30mGmface_Plugin_Class[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mInitialize[m[31m([mId[31m,[m Device[31m,[m Ch[31m,[m Form[31m,[m Cat[31m);[m
      [01;34mreturn[m Plugin[31m;[m
   [01;34mend[m Initialize[31m;[m
   
   
   
   [01;34mprocedure[m [01;30mRead_Plugin[m[31m([mFile [31m:[m [01;34min[m [01;34mout[m File_Type[31m;[m Plugin [31m:[m [01;34mout[m Abstract_Plugin_access[31m)[m [01;34mis[m


      Class  [31m:[m Plugin_Enum [31m:=[m Null_Plugin[31m;[m

      Image [31m:[m [01;34maccess[m [32mString[m[31m;[m

   [01;34mbegin[m
      [31m--Put_Line("get plugin class...");[m
      Image [31m:=[m [01;34mnew[m [32mString[m ' [31m([m[01;30mGet_line[m[31m([mFile[31m));[m
      [01;34mif[m Image'Length [31m/=[m [35m0[m [01;34mthen[m
	 [31m--Put_Line("Plugin class :" & Image.all);[m
	 Class [31m:=[m Plugin_Enum'[01;30mvalue[m[31m([mImage[31m.[m[01;34mall[m[31m);[m
	 [31m--Put_Line("Initializing plugin...");[m
	 Plugin [31m:=[m [01;30mInitialize[m[31m([mClass[31m,[m [35m1[m[31m,[m [35m1[m[31m,[m [35m1[m[31m,[m [35m1[m[31m,[m [35m1[m[31m);[m
	 [31m--Put_Line("Plugin initialized...");[m
	 Plugin[31m.[mPrinted [31m:=[m [32mBoolean[m'[01;30mvalue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
	 [31m--Put_Line("Printed setted");[m
	 Plugin[31m.[mMutted [31m:=[m [32mBoolean[m'[01;30mvalue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
	 [31m--Put_Line("Mutted setted");[m
	 Plugin[31m.[mForm_Id [31m:=[m Form_Index_Type'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
	 [31m--Put_Line("Form_id setted");[m
	 Plugin[31m.[mCat_Id [31m:=[m Category_Index_Type'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
	 [31m--Put_Line("Cat setted");[m
	 Plugin[31m.[mCh_Id [31m:=[m Channel_num'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
	 [31m--Put_Line("Ch_id setted");[m
	 Plugin[31m.[mDevice_Id[31m:=[m Device_num'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
	 [31m--Put_Line("Device_id setted");[m
	 Plugin[31m.[mName [31m:=[m [01;34mnew[m [32mString[m ' [31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
	 [31m--Put_Line("name setted");[m
	 [01;34mcase[m Class [01;34mis[m
	    
	    [01;34mwhen[m Null_Plugin [31m=>[m
	       [01;34mnull[m[31m;[m

	    [01;34mwhen[m Step_Seq [31m=>[m
	       [01;30mStep_Seq_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[mBars_Max [31m:=[m Positive'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
	       [31m--Put_Line("Bars max setted");[m
	       [01;34mfor[m Voice_Id [01;34min[m [01;30mStep_Seq_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[mSequencer'[01;34mRange[m [01;34mloop[m

		  [01;34mbegin[m
		     [01;30mStep_Seq_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mId [31m:=[m Positive'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
		     [01;30mStep_Seq_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mKey [31m:=[m Value_Type'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
		     [01;30mStep_Seq_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mSens [31m:=[m Value_Type'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
		     [01;30mStep_Seq_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mLength [31m:=[m Value_Type'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
		     [01;30mStep_Seq_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mBar [31m:=[m Positive'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
		     [01;30mStep_Seq_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mNumber [31m:=[m Time_Number_Type'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
		     [01;30mStep_Seq_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mStep [31m:=[m Time_Unit_Type'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
		     [01;30mStep_Seq_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mPlayed [31m:=[m [32mboolean[m'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m

		     [01;30mStep_Seq_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mOctave [31m:=[m Value_Type'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
		     [01;30mStep_Seq_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mIn_Loop [31m:=[m [32mboolean[m'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
		     [01;30mStep_Seq_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mNote [31m:=[m [01;34mnew[m [32mString[m ' [31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
		     [31m--Put_Line("voice N°" & Positive'Image(Voice_Id) & "  setted !");[m
		  [01;34mend[m[31m;[m
	       [01;34mend[m [01;34mloop[m[31m;[m

	       [01;34mwhen[m Pc_List [31m=>[m
		  [01;30mPrgm_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[mBars_Max [31m:=[m Positive'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
		 [31m-- Put_Line("Bars max setted");[m
		  [01;34mfor[m Voice_Id [01;34min[m [01;30mPrgm_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[mSequencer'[01;34mRange[m [01;34mloop[m

		     [01;34mbegin[m
			[01;30mPrgm_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mId [31m:=[m Positive'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
			[01;30mPrgm_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mMSB_select [31m:=[m Value_Type'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
			[01;30mPrgm_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mLSB_Select [31m:=[m Value_Type'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
			[01;30mPrgm_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mPrgm_Num [31m:=[m Program_Type'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
			[01;30mPrgm_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mBar [31m:=[m Positive'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
			[01;30mPrgm_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mNumber [31m:=[m Time_Number_Type'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
			[01;30mPrgm_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mStep [31m:=[m Time_Unit_Type'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
			[01;30mPrgm_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mPlayed [31m:=[m [32mboolean[m'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
			[01;30mPrgm_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mNote [31m:=[m [01;34mnew[m [32mString[m ' [31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
			[01;30mPrgm_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mIn_Loop [31m:=[m [32mboolean[m'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m

			[31m--Put_Line("voice N°" & Positive'Image(Voice_Id) & "  setted !");[m
		     [01;34mend[m[31m;[m
		  [01;34mend[m [01;34mloop[m[31m;[m

	    [01;34mwhen[m CC_List [31m=>[m
	       [01;30mCtrl_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[mBars_Max [31m:=[m Positive'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
	       [31m--Put_Line("Bars max setted");[m
	       [01;34mfor[m Voice_Id [01;34min[m [01;30mCtrl_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[mSequencer'[01;34mRange[m [01;34mloop[m

		  [01;34mbegin[m
		     [01;30mCtrl_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mId [31m:=[m Positive'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
		     [01;30mCtrl_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mCtrl_Name [31m:=[m [01;34mnew[m [32mString[m ' [31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
		     [01;30mCtrl_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mCtrl_num [31m:=[m Value_Type'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
		     [01;30mCtrl_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mCtrl_val [31m:=[m Value_Type'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
		     [01;30mCtrl_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mBar [31m:=[m Positive'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
		     [01;30mCtrl_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mNumber [31m:=[m Time_Number_Type'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
		     [01;30mCtrl_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mStep [31m:=[m Time_Unit_Type'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
		     [01;30mCtrl_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mPlayed [31m:=[m [32mboolean[m'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
		     [01;30mCtrl_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mNote [31m:=[m [01;34mnew[m [32mString[m ' [31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
		     [01;30mCtrl_Change_Plugin_Record[m[31m([mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mIn_Loop [31m:=[m [32mboolean[m'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
		     [31m--Put_Line("voice N°" & Positive'Image(Voice_Id) & "  setted !");[m
		  [01;34mend[m[31m;[m
	       [01;34mend[m [01;34mloop[m[31m;[m
	    [01;34mwhen[m [01;34mothers[m [31m=>[m
	       [01;34mnull[m[31m;[m
	 [01;34mend[m [01;34mcase[m[31m;[m
      [01;34mend[m [01;34mif[m[31m;[m

   [01;34mend[m Read_Plugin[31m;[m

   
   [01;34mprocedure[m [01;30mLoad_File[m [31m([mWork [31m:[m [01;34min[m [01;34mout[m Gmface_Work_Record'Class[31m)[m [01;34mis[m
      File [31m:[m Text_Io[31m.[mFile_Type[31m;[m
   [01;34mbegin[m      
      [01;34mfor[m Plugin_Id [01;34min[m Work[31m.[mPlugins'[01;34mRange[m [01;34mloop[m
	 [01;34mbegin[m
	    Work[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m)[m [31m:=[m [01;34mnull[m[31m;[m	       
	 [01;34mend[m[31m;[m
      [01;34mend[m [01;34mloop[m[31m;[m
      
      [01;34mif[m Work[31m.[mFilename'length [31m=[m [35m0[m [01;34mthen[m
	 [01;34mfor[m Plugin_Id [01;34min[m Work[31m.[mPlugins'[01;34mRange[m [01;34mloop[m
	    [01;34mbegin[m
	       Work[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m)[m [31m:=[m [01;30mInitialize[m[31m([mNull_Plugin[31m,[m Plugin_Id[31m,[m [35m1[m[31m,[m [35m1[m[31m,[m [35m1[m[31m,[m [35m1[m[31m);[m
	    [01;34mend[m[31m;[m
	 [01;34mend[m [01;34mloop[m[31m;[m
      
	 [01;34mreturn[m[31m;[m      	 
      [01;34mend[m [01;34mif[m[31m;[m
      [01;30mPut_Line[m[31m([m[31m"Openning work filename : "[m [31m&[m Work[31m.[mFilename[31m.[m[01;34mall[m[31m);[m
      Text_Io[31m.[m[01;30mOpen[m[31m([mFile[31m,[m Text_Io[31m.[mIn_File[31m,[m Work[31m.[mFilename[31m.[m[01;34mall[m[31m);[m
      
      [31m-- Gmface header :[m
      [01;30mPut_Line[m[31m([m[01;30mGet_Line[m[31m([mFile[31m));[m
      
      [31m-------------[m
      [31m-- Options --[m
      Work[31m.[mFilename [31m:=[m [01;34mnew[m [32mString[m  ' [31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
      Work[31m.[mOptions[31m.[mTrack_Length [31m:=[m natural'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m[31m([mFile[31m));[m
      Work[31m.[mOptions[31m.[mTempo [31m:=[m Tempo_Type'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
      Work[31m.[mOptions[31m.[mSignature[31m.[mNumber [31m:=[m Time_Number_Type'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
      Work[31m.[mOptions[31m.[mSignature[31m.[mUnit [31m:=[m Time_Unit_Type'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
      Work[31m.[mOptions[31m.[mIn_Loop [31m:=[m [32mBoolean[m'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
      Work[31m.[mCurrent_Form [31m:=[m Form_Index_Type'[01;30mValue[m[31m([mText_Io[31m.[m[01;30mGet_Line[m [31m([mFile[31m));[m
      
      Work[31m.[mOptions[31m.[mFilename [31m:=[m [01;34mnew[m [32mString[m ' [31m([m[01;30mBase_Name[m[31m([mWork[31m.[mFilename[31m.[m[01;34mall[m[31m));[m
      
      [31m-- End Options. --[m
      [31m------------------[m
      [31m-----------------[m
      [31m-- Plugins_Set --[m
      [01;34mfor[m Plugin_Id [01;34min[m Work[31m.[mPlugins'[01;34mRange[m [01;34mloop[m
	 [01;34mbegin[m
	    [01;30mRead_plugin[m[31m([mFile[31m,[m Work[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m));[m	    	    
	    Work[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m).[mId [31m:=[m Plugin_Id[31m;[m
	    [01;34mexit[m [01;34mwhen[m [01;30mEnd_Of_File[m[31m([mFile[31m);[m
	 [01;34mexception[m
	    [01;34mwhen[m [01;34mothers[m [31m=>[m
	       [01;30mPut_Line[m[31m([m[31m"Read plugin : exception IO."[m[31m);[m
	 [01;34mend[m[31m;[m
      [01;34mend[m [01;34mloop[m[31m;[m

      Text_Io[31m.[m[01;30mClose[m[31m([mFile[31m);[m
   [01;34mend[m Load_File[31m;[m

   
   
   
   [01;34mprocedure[m [01;30mInitialize[m[31m([mWork [31m:[m [01;34min[m [01;34mout[m Gmface_Work_Record[31m;[m
			Work_Id [31m:[m [01;34min[m Work_Num[31m;[m
			Filename [31m:[m [01;34min[m [32mString[m[31m)[m [01;34mis[m
   [01;34mbegin[m
      Work[31m.[mFilename [31m:=[m [01;34mnew[m [32mString[m ' [31m([mFilename[31m);[m
      [01;34mif[m Os_Lib[31m.[m[01;30mIs_Regular_File[m[31m([mFilename[31m)[m [01;34mor[m [01;34melse[m
      	Filename'Length [31m=[m [35m0[m [01;34mthen[m
      	 Work[31m.[mLoad_File[31m;[m
      [01;34mend[m [01;34mif[m[31m;[m
      Work[31m.[mId [31m:=[m Work_Id[31m;[m
   [01;34mend[m Initialize[31m;[m

      
   [01;34mprocedure[m [01;30mSave[m[31m([mWork [31m:[m [01;34min[m [01;34mout[m Gmface_Work_Record[31m;[m
		  Filename [31m:[m [01;34min[m [32mString[m [31m:=[m [31m""[m[31m)[m [01;34mis[m

      Name [31m:[m String_Access [31m:=[m [01;34mnew[m [32mstring[m ' [31m([mWork[31m.[mFilename[31m.[m[01;34mall[m[31m);[m
      File [31m:[m Text_Io[31m.[mFile_Type[31m;[m
   [01;34mbegin[m
      [01;34mif[m Filename [31m/=[m [31m""[m [01;34mthen[m
	 Name [31m:=[m [01;34mnew[m [32mString[m ' [31m([mFilename[31m);[m
      [01;34mend[m [01;34mif[m[31m;[m
      Work[31m.[mFilename [31m:=[m [01;34mnew[m [32mString[m ' [31m([mName[31m.[m[01;34mall[m[31m);[m
      [01;30mCreate[m[31m([mFile[31m,[m Out_File[31m,[m Name[31m.[m[01;34mall[m[31m);[m
      
      [31m-------------[m
      [31m-- Options --[m
      [01;30mPut_Line[m[31m([m[31m"-- Options --"[m[31m);[m
      Work[31m.[mOptions[31m.[mFilename [31m:=[m [01;34mnew[m [32mString[m ' [31m([m[01;30mBase_Name[m[31m([mName[31m.[m[01;34mall[m[31m));[m
      
      [31m-- Gmface Header :[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [31m"GmFa"[m[31m);[m
      
      [01;30mPut_Line[m[31m([mFile[31m,[m Work[31m.[mFilename[31m.[m[01;34mall[m[31m);[m
      [01;30mPut_Line[m[31m([mFile[31m,[m Natural'[01;30mImage[m[31m([mWork[31m.[mOptions[31m.[mTrack_Length[31m));[m
      [01;30mPut_Line[m[31m([mFile[31m,[m Tempo_Type'[01;30mImage[m[31m([mWork[31m.[mOptions[31m.[mTempo[31m));[m
      [01;30mPut_Line[m[31m([mFile[31m,[m Positive'[01;30mImage[m[31m([mWork[31m.[mOptions[31m.[mSignature[31m.[mNumber[31m));[m
      [01;30mPut_Line[m[31m([mFile[31m,[m Positive'[01;30mImage[m[31m([mWork[31m.[mOptions[31m.[mSignature[31m.[mUnit[31m));[m
      [01;30mPut_Line[m[31m([mFile[31m,[m [32mBoolean[m'[01;30mImage[m[31m([mWork[31m.[mOptions[31m.[mIn_Loop[31m));[m
      [01;30mPut_Line[m[31m([mFile[31m,[m Form_Index_Type'[01;30mImage[m[31m([mWork[31m.[mOptions[31m.[mCurrent_Form[31m));[m
      [01;30mPut_Line[m[31m([m[31m"-- End Options. --"[m[31m);[m
      [31m------------------[m
      [01;30mClose[m[31m([mFile[31m);[m
      [31m------------------[m
      [01;30mPut_Line[m[31m([m[31m"-- Plugins_Set --"[m[31m);[m
      [01;34mfor[m Plugin_Id [01;34min[m Work[31m.[mPlugins'[01;34mRange[m [01;34mloop[m
	 [01;34mif[m Work[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m)[m [31m/=[m [01;34mnull[m [01;34mthen[m
	    [01;30mPrint[m[31m([mWork[31m.[mFilename[31m.[m[01;34mall[m[31m,[m [01;30mGmface_Plugin_Class[m[31m([mWork[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m).[m[01;34mall[m[31m));[m
	    [01;30mPrint[m[31m([mWork[31m.[mFilename[31m.[m[01;34mall[m[31m,[m Work[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m).[m[01;34mall[m[31m);[m
	 [01;34mend[m [01;34mif[m[31m;[m
      [01;34mend[m [01;34mloop[m[31m;[m
      [01;30mOpen[m[31m([mFile[31m,[m Append_File[31m,[m Work[31m.[mFilename[31m.[m[01;34mall[m[31m);[m
      [01;30mPut_Line[m[31m([m[31m"End plugins"[m[31m);[m

      [01;30mClose[m[31m([mFile[31m);[m
   [01;34mend[m Save[31m;[m

[01;34mend[m Gmface[31m.[mGm_Virtual[31m.[mGmface[31m.[mGmface_Work[31m;[m
