[01;34mwith[m Ada[31m.[mCalendar[31m;[m
[01;34mwith[m Libsens[31m.[mCommon[31m;[m                    [01;34muse[m Libsens[31m.[mCommon[31m;[m

[01;34mwith[m Libsens[31m.[mVirtual[31m.[mPlugins[31m;[m
[01;34mpackage[m Libsens[31m.[mVirtual[31m.[mWork_Class [01;34mis[m
   
   
   
   
   [01;34mtype[m Categories_Access [01;34mis[m [01;34maccess[m Categories_Record[31m;[m
   
   [01;34mtype[m Breaks_Set_Access [01;34mis[m [01;34maccess[m Breaks_Set_Type[31m;[m
   
   [01;34mtype[m Work_Options_Record [01;34mis[m [01;34mtagged[m
      [01;34mrecord[m
	 Track_Length [31m:[m Positive [31m:=[m [35m129[m[31m;[m
	 Tempo      [31m:[m Tempo_Type [31m:=[m [35m120.0[m[31m;[m
	 Signature  [31m:[m Time_Signature_Type [31m:=[m [31m([m[35m4[m[31m,[m [35m4[m[31m);[m	    
	 In_Loop    [31m:[m [32mBoolean[m [31m:=[m False[31m;[m	 
	 Current_Form [31m:[m Form_Index_Type [31m:=[m [35m1[m[31m;[m
	 Current_Break    [31m:[m Break_Type [31m:=[m Down_Break[31m;[m
	 Prev_Break       [31m:[m Break_Type [31m:=[m Null_Break[31m;[m	 
	 Next_Break       [31m:[m Break_Type [31m:=[m Down_Break[31m;[m
	 Forms_Names    [31m:[m Forms_Names_Set_Type [31m:=[m Forms_Names_Set[31m;[m
	 Categories      [31m:[m Categories_Access [31m:=[m [01;34mnew[m Categories_Record ' [31m([m[35m16[m[31m,[m Categories_Default[31m,[m [35m16[m[31m);[m
	 Breaks_Set [31m:[m Breaks_Set_Access [31m:=[m [01;34mnew[m Breaks_Set_Type ' [31m([mNull_Break[31m,[m Down_Break[31m,[m
								  Up_Break[31m,[m Full_Break[31m,[m
								  Down_Break[31m,[m Null_Break[31m,[m
								  Up_Break[31m,[m Null_Break[31m,[m								  
								  Full_Break[31m,[m Full_Break[31m,[m
								  Down_Break[31m,[m Null_Break[31m,[m
								  Full_Break[31m,[m Down_Break[31m);[m
	 True_Table [31m:[m True_Table_Type[31m;[m
	 
	 Filename [31m:[m [01;34maccess[m [32mString[m [31m:=[m [01;34mnew[m [32mString[m ' [31m([m[31m""[m[31m);[m
	 
      [01;34mend[m [01;34mrecord[m[31m;[m
   
   [01;34mtype[m Work_Options_Access [01;34mis[m [01;34maccess[m [01;34mall[m Work_Options_Record[31m;[m
   
   [01;34muse[m Libsens[31m.[mVirtual[31m.[mPlugins[31m;[m
      
   [01;34mtype[m Abstract_Plugin_Access [01;34mis[m [01;34maccess[m [01;34mall[m Plugin_Class'class[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[31m;[m
   
   [01;34mprocedure[m [01;30mPrint[m [31m([mFilename [31m:[m [01;34min[m [32mString[m[31m;[m Plugin [31m:[m [01;34min[m Abstract_Plugin_Access[31m);[m      
   
   [01;34mtype[m Plugin_Set [01;34mis[m [01;34marray[m [31m([mPlugin_num'[01;34mrange[m[31m)[m [01;34mof[m Abstract_Plugin_Access[31m;[m      
   
   [01;34mtype[m Work_Num [01;34mis[m [01;34mnew[m Positive [01;34mrange[m [35m1[m[31m..[m[35m128[m[31m;[m
   
   [01;34mtype[m States_Record [01;34mis[m [01;34mtagged[m
      [01;34mrecord[m
	 Start_Time [31m:[m Ada[31m.[mCalendar[31m.[mTime [31m:=[m Ada[31m.[mCalendar[31m.[mClock[31m;[m	 
	 Bar_Beat [31m:[m Bar_Beat_Type [31m:=[m [31m([m[35m1[m[31m,[m [35m1[m[31m,[m [35m1[m[31m);[m
	 Elapsed    [31m:[m [32mDuration[m [31m:=[m [35m0.0[m[31m;[m
      [01;34mend[m [01;34mrecord[m[31m;[m
   
   [01;34mtype[m Work_Record [01;34mis[m [01;34mtagged[m
      [01;34mrecord[m
	 
	 Id      [31m:[m Work_Num [31m:=[m [35m1[m[31m;[m	 
	 Started [31m:[m [32mBoolean[m [31m:=[m False[31m;[m	 	 
	 Filename [31m:[m [01;34maccess[m [32mString[m [31m:=[m [01;34mnew[m [32mString[m ' [31m([m[31m""[m[31m);[m
	 
	 Options    [31m:[m [01;34maliased[m Work_Options_Record[31m;[m
	 Plugins    [31m:[m Plugin_Set[31m;[m
	 
	 States     [31m:[m States_Record[31m;[m
      [01;34mend[m [01;34mrecord[m[31m;[m
   
   [01;34mprocedure[m [01;30mInitialize[m[31m([mWork [31m:[m [01;34min[m [01;34mout[m 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;34mprocedure[m [01;30mSave[m[31m([mWork [31m:[m [01;34min[m [01;34mout[m Work_Record'Class[31m;[m
		  Filename [31m:[m [01;34min[m [32mString[m [31m:=[m [31m""[m[31m);[m
   
   
   
   [01;34mprocedure[m [01;30mFinalize[m[31m([mWork [31m:[m [01;34min[m [01;34mout[m Work_Record[31m);[m
   
   [01;34mfunction[m [01;30mGet_Plugin[m[31m([mWork [31m:[m [01;34min[m Work_Record[31m;[m
		       Plugin_Id [31m:[m [01;34min[m Plugin_Num[31m)[m
		      [01;34mreturn[m Abstract_Plugin_Access[31m;[m
   
   [01;34mtype[m Work_Access [01;34mis[m [01;34maccess[m [01;34mall[m Work_Record'class[31m;[m      
   
   [01;34mtype[m Work_Array [01;34mis[m [01;34marray[m [31m([mWork_Num'[01;34mRange[m[31m)[m [01;34mof[m Work_Access[31m;[m      
   
[01;34mend[m Libsens[31m.[mVirtual[31m.[mWork_Class[31m;[m
