*/}}
Browse Source

read progress

YimingWu 1 year ago
parent
commit
844f417542
4 changed files with 8 additions and 9 deletions
  1. 4 1
      la_data.c
  2. 2 0
      la_data.h
  3. 1 2
      la_interface.h
  4. 1 6
      la_kernel.c

+ 4 - 1
la_data.c

@@ -803,6 +803,7 @@ laProp *la_CreateProperty(laPropContainer *Container, int Type, const char *Iden
     p->ReadOnly = (Tag & LA_READ_ONLY) ? 1 : 0;
     p->IsRadAngle = (Tag & LA_RAD_ANGLE)? 1 : 0;
     p->UDFHideInSave = (Tag & LA_HIDE_IN_SAVE)? 1 : 0;
+    p->UDFReadProgress = (Tag & LA_PROP_READ_PROGRESS)?1:0;
     if(p->IsRadAngle&&(!p->Unit)) p->Unit="°"; 
 
     return p;
@@ -3196,7 +3197,7 @@ int la_ExtractProp(laUDF *udf, laManagedUDF* mUDF, laPropPack *pp, void *ParentI
 
                     if (Parent) uci = la_AppendUDFContentInstance(Parent, la_Tell(udf));
 
-                    printf("add pc %s\n",pc->Identifier);
+                    if(p->UDFReadProgress){ laShowProgress((real)i/NumItems,-1); } //printf("add pc %s\n",pc->Identifier);
 
                     if(pc==LA_PC_SOCKET_OUT || pc==LA_PC_SOCKET_IN){ laMappingRequestRebuild(); laDriverRequestRebuild(); }
 
@@ -3450,6 +3451,8 @@ int laExtractUDF(laUDF *udf, laManagedUDF* mUDF, int Mode, laListHandle *Parent)
 
     la_RematchPointers(Mode);
 
+    laHideProgress();
+
     return EStatus;
 }
 

+ 2 - 0
la_data.h

@@ -110,6 +110,7 @@ typedef void (*laContainerpUDFPropagateF)(void *, void* udf, int Force);
 #define LA_PROP_IS_FILE   (1<<23)
 #define LA_PROP_RAW       (1<<24)
 #define LA_PROP_IS_LINEAR_SRGB (1<<24)
+#define LA_PROP_READ_PROGRESS (1<<25)
 
 #define LA_PROP_OTHER_ALLOC (1<<3)
 #define LA_PROP_HYPER_BITS (1|2)
@@ -222,6 +223,7 @@ STRUCTURE(laProp){
     char UDFIsSingle;
     char UDFHideInSave;
     char UDFSingleManageable;
+    char UDFReadProgress;
     char IsRadAngle;
 
     //int           SignalThrow;

+ 1 - 2
la_interface.h

@@ -1547,8 +1547,7 @@ laValueMapper* laValueMapperInit();
 laValueMapper* laValueMapperDestroy(laValueMapper* vm);
 real laValueMapperEvaluate(laValueMapper* vm, real x, real* force_InMin, real* force_InMax, real* force_OutMin, real* force_OutMax, int ClampIn, int ClampOut);
 
-void laShowProgressV(real p1, real p2, char* format, va_list v);
-void laShowProgress(real p1, real p2, char* format, ...);
+void laShowProgress(real p1, real p2);
 void laHideProgress();
 
 void logPrintT(int Type, char* format, ...);

+ 1 - 6
la_kernel.c

@@ -312,7 +312,7 @@ void logClear(){
 
 #define PROGRESSW (LA_RH*15)
 
-void laShowProgressV(real p1, real p2, char* format, va_list v){
+void laShowProgress(real p1, real p2){
     laBoxedTheme *bt = _LA_THEME_TAB; real* fg=laThemeColor(bt,LA_BT_TEXT); real* bg=laThemeColor(bt,LA_BT_NORMAL);
     if(!MAIN.Progress.Called){
         laRecordTime(&MAIN.Progress.TimeCalled); MAIN.Progress.Called=1;
@@ -339,11 +339,6 @@ void laShowProgressV(real p1, real p2, char* format, va_list v){
     tnsDrawLCD7_ProgressX11(LA_RH*1.5,LA_RH,MAIN.Progress.p2);
     XFlush(MAIN.dpy); XSync(MAIN.dpy, 0);
 }
-void laShowProgress(real p1, real p2, char* format, ...){
-    va_list aptr; va_start(aptr, format);
-    laShowProgressV(p1,p2,format,aptr);
-    va_end(aptr);
-}
 void laHideProgress(){
     if(!MAIN.Progress.Shown){
         MAIN.Progress.Called=0; return;