Changeset 3103
- Timestamp:
- 03/05/10 03:12:44 (6 months ago)
- Location:
- libburn/trunk/cdrskin
- Files:
-
- 2 modified
-
cdrskin.c (modified) (23 diffs)
-
cdrskin_timestamp.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
libburn/trunk/cdrskin/cdrskin.c
r3101 r3103 149 149 */ 150 150 151 /* Do not stay in signal handler but only cancel and set Cdrskin_abort_leveL 151 /* Do not stay in signal handler but only cancel and set Cdrskin_abort_leveL. 152 Make use of burn_is_aborting() to detect pending libburn aborts. 152 153 */ 153 154 #define Cdrskin_signal_handler_return_2 1 … … 373 374 #else 374 375 #include "cleanup.h" 376 #ifdef Cdrskin_use_libburn_cleanuP 377 #undef Cdrskin_use_libburn_cleanuP 378 #endif 375 379 #endif 376 380 … … 388 392 #define Cleanup_handler_funC NULL 389 393 #define Cleanup_handler_handlE "cdrskin: " 394 #define Cleanup_handler_flaG 48 390 395 #else 391 396 #define Cleanup_handler_funC (Cleanup_app_handler_T) Cdrskin_abort_handler 392 397 #define Cleanup_handler_handlE skin 398 #define Cleanup_handler_flaG 4 393 399 #endif /* ! Cdrskin_use_libburn_cleanuP */ 394 400 … … 4114 4120 if(restore_handler) { 4115 4121 int Cdrskin_abort_handler(struct CdrskiN *, int, int); 4116 Cleanup_set_handlers(Cleanup_handler_handlE, Cleanup_handler_funC, 4); 4122 Cleanup_set_handlers(Cleanup_handler_handlE, Cleanup_handler_funC, 4123 Cleanup_handler_flaG); 4117 4124 } 4118 4125 #endif /* Cdrskin_grab_abort_brokeN */ … … 4144 4151 skin->grabbed_drive= NULL; 4145 4152 return(1); 4153 } 4154 4155 4156 int Cdrskin__is_aborting(int flag) 4157 { 4158 if(Cdrskin_abort_leveL) 4159 return(-1); 4160 #ifdef Cdrskin_signal_handler_return_2 4161 return(burn_is_aborting(0)); 4162 #else 4163 return 0; 4164 #endif 4146 4165 } 4147 4166 … … 6095 6114 if(skin->drive_is_grabbed) 6096 6115 Cdrskin_release_drive(skin,0); 6097 if(Cdrskin_ abort_leveL)6116 if(Cdrskin__is_aborting(0)) 6098 6117 Cdrskin_abort(skin, 0); /* Never comes back */ 6099 6118 return(ret); … … 6150 6169 static double last_fifo_in= 0.0,last_fifo_out= 0.0,curr_fifo_in,curr_fifo_out; 6151 6170 6152 if(Cdrskin_ abort_leveL)6171 if(Cdrskin__is_aborting(0)) 6153 6172 Cdrskin_abort(skin, 0); /* Never comes back */ 6154 6173 … … 7361 7380 burn_disc_write(o, disc); 7362 7381 if(skin->preskin->abort_handler==-1) 7363 Cleanup_set_handlers(Cleanup_handler_handlE, Cleanup_handler_funC, 4); 7382 Cleanup_set_handlers(Cleanup_handler_handlE, Cleanup_handler_funC, 7383 Cleanup_handler_flaG); 7364 7384 last_time= start_time= Sfile_microtime(0); 7365 7385 … … 7380 7400 /* >>> how do i learn about success or failure ? */ 7381 7401 7382 if(loop_counter>0 || Cdrskin_ abort_leveL)7402 if(loop_counter>0 || Cdrskin__is_aborting(0)) 7383 7403 Cdrskin_burn_pacifier(skin,drive_status,&p,start_time,&last_time, 7384 7404 &total_count,&last_count,&min_buffer_fill,0); … … 7454 7474 printf("\n"); 7455 7475 7456 if(Cdrskin_ abort_leveL)7476 if(Cdrskin__is_aborting(0)) 7457 7477 Cdrskin_abort(skin, 0); /* Never comes back */ 7458 7478 … … 8955 8975 if(skin->preskin->abort_handler==1 || skin->preskin->abort_handler==3 || 8956 8976 skin->preskin->abort_handler==4) 8957 Cleanup_set_handlers(Cleanup_handler_handlE, Cleanup_handler_funC, 4); 8977 Cleanup_set_handlers(Cleanup_handler_handlE, Cleanup_handler_funC, 8978 Cleanup_handler_flaG); 8958 8979 else if(skin->preskin->abort_handler==2) 8959 Cleanup_set_handlers(Cleanup_handler_handlE, Cleanup_handler_funC, 2|8); 8980 Cleanup_set_handlers(Cleanup_handler_handlE, Cleanup_handler_funC, 8981 2 | 8); 8960 8982 8961 8983 printf("cdrskin: scanning for devices ...\n"); … … 9033 9055 if(skin->n_drives<=0 && skin->preskin->scan_demands_drive) 9034 9056 {*exit_value= 4; goto no_drive;} 9035 if(Cdrskin_ abort_leveL)9057 if(Cdrskin__is_aborting(0)) 9036 9058 goto ex; 9037 9059 ret= Cdrskin_scanbus(skin,1); … … 9045 9067 if(skin->n_drives<=0 && skin->preskin->scan_demands_drive) 9046 9068 {*exit_value= 5; goto no_drive;} 9047 if(Cdrskin_ abort_leveL)9069 if(Cdrskin__is_aborting(0)) 9048 9070 goto ex; 9049 9071 ret= Cdrskin_scanbus(skin,0); … … 9053 9075 } 9054 9076 if(skin->do_load) { 9055 if(Cdrskin_ abort_leveL)9077 if(Cdrskin__is_aborting(0)) 9056 9078 goto ex; 9057 9079 ret= Cdrskin_grab_drive(skin,8); … … 9070 9092 } 9071 9093 if(skin->do_checkdrive) { 9072 if(Cdrskin_ abort_leveL)9094 if(Cdrskin__is_aborting(0)) 9073 9095 goto ex; 9074 9096 ret= Cdrskin_checkdrive(skin,"",(skin->do_checkdrive==2)<<1); … … 9078 9100 if(skin->n_drives<=0) 9079 9101 {*exit_value= 12; goto no_drive;} 9080 if(Cdrskin_ abort_leveL)9102 if(Cdrskin__is_aborting(0)) 9081 9103 goto ex; 9082 9104 ret= Cdrskin_msinfo(skin,0); … … 9087 9109 if(skin->n_drives<=0) 9088 9110 {*exit_value= 7; goto no_drive;} 9089 if(Cdrskin_ abort_leveL)9111 if(Cdrskin__is_aborting(0)) 9090 9112 goto ex; 9091 9113 ret= Cdrskin_atip(skin, skin->do_atip == 4 ? 4 : … … 9097 9119 if(skin->n_drives<=0) 9098 9120 {*exit_value= 14; goto no_drive;} 9099 if(Cdrskin_ abort_leveL)9121 if(Cdrskin__is_aborting(0)) 9100 9122 goto ex; 9101 9123 ret= Cdrskin_list_formats(skin, 0); … … 9106 9128 if(skin->n_drives<=0) 9107 9129 {*exit_value= 8; goto no_drive;} 9108 if(Cdrskin_ abort_leveL)9130 if(Cdrskin__is_aborting(0)) 9109 9131 goto ex; 9110 9132 ret= Cdrskin_blank(skin,0); … … 9116 9138 if(skin->do_direct_write) { 9117 9139 skin->do_burn= 0; 9118 if(Cdrskin_ abort_leveL)9140 if(Cdrskin__is_aborting(0)) 9119 9141 goto ex; 9120 9142 ret= Cdrskin_direct_write(skin,0); … … 9127 9149 if(skin->n_drives<=0) 9128 9150 {*exit_value= 10; goto no_drive;} 9129 if(Cdrskin_ abort_leveL)9151 if(Cdrskin__is_aborting(0)) 9130 9152 goto ex; 9131 9153 ret= Cdrskin_burn(skin,0); … … 9134 9156 } 9135 9157 ex:; 9136 if(Cdrskin_ abort_leveL)9158 if(Cdrskin__is_aborting(0)) 9137 9159 Cdrskin_abort(skin, 0); /* Never comes back */ 9138 9160 return((*exit_value)==0); … … 9223 9245 } 9224 9246 9225 if(!Cdrskin_ abort_leveL)9247 if(!Cdrskin__is_aborting(0)) 9226 9248 Cdrskin_run(skin,&exit_value,0); 9227 9249 9228 9250 ex:; 9229 if(Cdrskin_ abort_leveL)9251 if(Cdrskin__is_aborting(0)) 9230 9252 Cdrskin_abort(skin, 0); /* Never comes back */ 9231 9253 -
libburn/trunk/cdrskin/cdrskin_timestamp.h
r3102 r3103 1 #define Cdrskin_timestamP "2010.03.05.09 0948"1 #define Cdrskin_timestamP "2010.03.05.091432"
