
    =	f7                         d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	 d dl
 d dlmZmZmZmZ dZd ZdZdZdZd	Zd
Z G d dej.                        Z G d dej2                        Zy)    N)queue)StringIO)*)deviceutilsstatuspml               c                   d    e Zd Z	 	 d	dZdddej
                  ej                  eddfdZd Z	d Z
y)
PMLCopyDeviceNc                 X    t         j                  j                  | ||||       d | _        y N)r   Device__init__copy_thread)self
device_uriprinter_nameservicecallbacks        !/usr/share/hplip/copier/copier.pyr   zPMLCopyDevice.__init__4   s+     	tZ&	2      r
   r   d   c	                     | j                         s3t        | ||||||||	      | _        | j                  j                          yy)NTF)isCopyActivePMLCopyThreadr   start)	r   
num_copiescontrast	reductionqualityfit_to_pagescan_srcupdate_queueevent_queues	            r   copyzPMLCopyDevice.copy<   sK       ",T:xT[-8(LR] _D""$r   c                 P    | j                   | j                   j                         S y)NF)r   is_aliver   s    r   r   zPMLCopyDevice.isCopyActiveJ   s&    '##,,..r   c                     | j                   6| j                   j                         r| j                   j                          y y y r   )r   r,   joinr-   s    r   waitForCopyThreadzPMLCopyDevice.waitForCopyThreadP   s<    '%%'!!# ( (r   )NNNN)__name__
__module____qualname__r   r	   COPIER_QUALITY_NORMALCOPIER_FIT_TO_PAGE_ENABLEDSCAN_SRC_FLATBEDr*   r   r0    r   r   r   r   3   s?    59(,   !s..77&D	$r   r   c                   (    e Zd Z	 ddZd Zd Zd Zy)r    Nc
                 H   t         j                  j                  |        || _        || _        || _        || _        || _        || _        || _	        |	| _
        || _        d| _        | j                  j                  | _        t        j                  d| j                  z         y )N zCopy-type = %d)	threadingThreadr   devr"   r#   r$   r%   r&   r'   r)   r(   prev_update	copy_typelogdebug)
r   r=   r"   r#   r$   r%   r&   r'   r(   r)   s
             r   r   zPMLCopyThread.__init__Y   s     	!!$'$ "& &(++		"T^^34r   c                    d}d}d}d}d}d}d}d}d	}	d
}
d}|}||k7  r]||k(  r/t         j                  ddz         | j                  t               |}||k(  r1t         j                  ddz         | j                  t               |}n||k(  r1t         j                  ddz         | j                  t               |}n||k(  r1t         j                  ddz         | j                  t               |}n||k(  r?t         j                  ddz         | j                  t
               	 | j                  j                  t        j                        \  }}|t        j                  kD  r|}t         j                  d       
nt        j                  dt        j                               }t         j                  d|z         	 | j                  j                  t        j                  |       | j                  j                  t        j                        \  }}||k(  r|}
nSt         j                  d       |}
n:||k(  rt         j                  ddz         | j"                  t$        k(  r| j                  j                  t        j&                        \  }}|t        j(                  k(  r<| j                  j                  t        j&                  t        j*                         |}	n|}	n| j"                  t,        k(  	rv| j                  j                  t        j.                        \  }}|t        j0                  k(  r|}	n3|}	n/||k(  rt         j                  ddz         | j2                  dk  rd| _        | j2                  dkD  rd| _        | j"                  t$        k(  r| j                  j                  t        j4                  | j2                         | j                  j                  t        j6                  | j8                         | j                  j                  t        j:                  | j<                         | j                  j                  t        j>                  | j@                         | jB                  tD        k(  r| j                  j                  t        jF                  | jH                         n| j                  j                  t        jJ                  | j2                         | j8                  dz  dz  dz   | _        | j                  j                  t        jL                  | j8                         | jH                  t        jN                  k(  rd| _        | j                  j                  t        jP                  | j<                         | j                  j                  t        jR                  | j@                         | j                  j                  t        jT                  t        jV                         | j                  j                  t        jX                  t        jZ                         | j                  j                  t        j\                  t        j^                  t        j`                  z         | j                  j                  t        jb                  t        jd                         | j                  j                  t        jf                  t        jh                         | j                  j                  t        jT                  t        jV                         | j                  j                  t        jX                  t        jZ                         | j                  j                  t        jj                  t        jl                         t         j                  d| j2                  z         t         j                  d| j8                  z         t         j                  d| j<                  z         t         j                  d| j@                  z         t         j                  d | jH                  z         |	}n*||	k(  rt         j                  d!dz         | j"                  t$        k(  r9| j                  j                  t        j&                  t        jn                         nK| j"                  t,        k(  r8| j                  j                  t        j.                  t        jp                         |
}nr||
k(  rt         j                  d"dz         | j"                  t$        k(  re	 | j                  j                  t        j&                        \  }}| js                         r<| j                  j                  t        j&                  t        j(                         |}n|t        jn                  k(  r+t         j                  d#       t        jt                  d       |t        jv                  k(  rA| j                  tx               t         j                  d$       t        jt                  d%       |t        jz                  k(  rt         j                  d&       |}n	|t        j(                  k(  rt         j                  d'       |}nݐd| j"                  t,        k(  r	 | j                  j                  t        j.                        \  }}| js                         r<| j                  j                  t        j.                  t        j0                         |}nN|t        jp                  k(  r+t         j                  d#       t        jt                  d       |t        j|                  k(  rA| j                  tx               t         j                  d$       t        jt                  d%       |t        j~                  k(  rt         j                  d&       |}n|t        j0                  k(  rt         j                  d'       |}nfb||k(  r_t         j                  d(dz         	 | j                  j                  t        j                  d)       | j                  j                          |}||k7  r\y y # t         $ r t         j                  d       t        }Y /w xY w# t         $ r t         j                  d       |}Y Uw xY w# t         $ r t         j                  d*       Y w xY w)+Nr   r   
            (   2   <   F   P   z%s State: Abortedz********************z%s State: Errorz%s State: Successz%s State: Busyz%s State: Acquire copy tokenzSkipping token acquisition.z%d%m%Y%H:%M:%SzSetting token: %sz!Unable to acquire copy token (3).z!Unable to acquire copy token (2).z!Unable to acquire copy token (1).z%s State: Setup statez%s State: Setup Paramsr
   c   znum_copies = %dzcontrast= %dzreduction = %dzquality = %dzfit_to_page = %dz%s State: Startz%s State: Activezstate = startzstate = activer   zstate = abortingzstate = idlez%s State: Release copy tokenz                zUnable to release copier token.)Ar@   rA   write_queueSTATUS_DONESTATUS_ERRORSTATUS_SETTING_UPr=   getPMLr	   OID_COPIER_TOKENERROR_MAX_OKtimestrftimegmtimesetPMLerrorErrorr?   COPY_TYPE_DEVICEOID_COPIER_JOBCOPIER_JOB_IDLECOPIER_JOB_SETUPCOPY_TYPE_AIO_DEVICEOID_SCAN_TO_PRINTERSCAN_TO_PRINTER_IDLEr"   OID_COPIER_JOB_NUM_COPIESOID_COPIER_JOB_CONTRASTr#   OID_COPIER_JOB_REDUCTIONr$   OID_COPIER_JOB_QUALITYr%   r'   r6   OID_COPIER_JOB_FIT_TO_PAGEr&   OID_COPIER_NUM_COPIES_AIOOID_COPIER_CONTRAST_AIOr5   OID_COPIER_REDUCTION_AIOOID_COPIER_QUALITY_AIOOID_PIXEL_DATA_TYPEPIXEL_DATA_TYPE_COLOR_24_BITOID_COPIER_SPECIAL_FEATURESCOPY_FEATURE_NONEOID_COPIER_PHOTO_MODEENHANCE_LIGHT_COLORSENHANCE_TEXT OID_COPIER_JOB_INPUT_TRAY_SELECTCOPIER_JOB_INPUT_TRAY_1OID_COPIER_MEDIA_TYPECOPIER_MEDIA_TYPE_AUTOMATICOID_COPIER_JOB_MEDIA_SIZECOPIER_JOB_MEDIA_SIZE_US_LETTERCOPIER_JOB_STARTSCAN_TO_PRINTER_STARTcheck_for_cancelsleepCOPIER_JOB_ACTIVESTATUS_ACTIVECOPIER_JOB_ABORTINGSCAN_TO_PRINTER_ACTIVESCAN_TO_PRINTER_ABORTEDclose)r   
STATE_DONESTATE_ERRORSTATE_ABORTEDSTATE_SUCCESS
STATE_BUSYSTATE_SET_TOKENSTATE_SETUP_STATESTATE_SETUP_PARAMSSTATE_STARTSTATE_ACTIVESTATE_RESET_TOKENstateresult_codetokencheck_token
copy_states                    r   runzPMLCopyThread.runk   s0	   

 "z! %		-89  -)#		+v67  .)-'		-89  -)*$		*f56  .)/)		8FCD  !234)-9M9M)N&K
 #S%5%55 1		"?@ $.> N		"5"=>4 HHOOC,@,@%H
 8<xxsG[G[7\4K*e3(9 #		*M N(3++		1V<=>>%55.2hhooc>P>P.Q+K!S%8%88(:(:C<P<PQ 2 !+^^';;.2hhooc>U>U.V+K!S%=%== 2 !+ ,,		2f=>??Q&!??R'2>>%55 HHOOC$A$A4??S HHOOC$?$?O HHOOC$@$@$..Q HHOOC$>$>M }}(88(F(FHXHXY HHOOC$A$A4??S &*]]R%7"%<$BDMHHOOC$?$?O''3+I+II)* HHOOC$@$@$..Q HHOOC$>$>MHHOOC$;$;S=]=]^HHOOC$C$CSEZEZ[HHOOC$=$=s?W?WZ]ZjZj?jk HHOOC$H$H#JeJef HHOOC$=$=s?^?^_ HHOOC$;$;S=]=]^ HHOOC$C$CSEZEZ[ HHOOC$A$A3CfCfg
 		+doo=>		.4==89		*T^^;<		.4<<78		,t/?/??@#+%		+v67>>%55HHOOC$6$68L8LM^^';;HHOOC$;$;S=V=VW$,&		,78>>%5526((//#BTBT2U/Z002 HHOOC,>,>@S@ST$1E!%)=)==IIo6 JJqM$%)>)>> ,,];II&67 JJqM$'3+B+BBII&89$1E!'3+>+>>IIn5$1E!7 : ^^';;26((//#BYBY2Z/Z002 HHOOC,C,CSE]E]^$1E!%)B)BBIIo6 JJqM$%)C)CC ,,];II&67 JJqM$'3+F+FFII&89$1E!'3+C+CCIIn5$1E!7 < ++		8FCDAHHOOC$8$8)D  "] z!\  % 1II&IJ$0E1  .IIAB-E.N  AII?@As6   ),r' *q= .*s =$r$#r$' s
	s
s.-s.c                     d}| j                   j                         rW	 | j                   j                  d      }|t        k(  rd}t        j                  d       | j                   j                         rW|S # t        j                  $ r Y |S w xY w)NFr   TzCancel pressed!)r)   qsizegetCOPY_CANCELEDr@   rA   r   Empty)r   canceledevents      r   ry   zPMLCopyThread.check_for_cancell  s    $$&((,,Q/M)#HII/0 $$&  ;; s   ;A6 6BBc                     | j                   H|| j                  k7  r8| j                   j                  |       t        j                  d       || _        y y y )Nr   )r(   r>   putrT   rz   )r   messages     r   rM   zPMLCopyThread.write_queuey  sK    (W8H8H-H!!'*JJqM&D .I(r   )NN)r1   r2   r3   r   r   ry   rM   r7   r   r   r    r    X   s     155$~#B'r   r    )sysosos.pathrT   r;   base.sixext.movesr   ior   base.g
base.codesbaser   r   r   r	   r   STATUS_IDLErP   STATUS_WARMING_UPr|   rN   rO   r   r   r<   r    r7   r   r   <module>r      sx   2  	    #    + +    !$FMM !$Je'I$$ e'r   