
    g
fI                         d Z dZdZdZdZdZddlZ ej                  dd	       dd
lm	Z	 ddl
mZ ddl
mZ  G d dej                        Zy)z;Utilities for obtaining sounds to be presented for objects.z$Id:$z$Revision:$z$Date:$zCopyright (c) 2016 Igalia, S.L.LGPL    NAtspiz2.0)r   )settings_manager)sound_generatorc                   :     e Zd Z fdZd Zd Z fdZd Z xZS )SoundGeneratorc                 $    t         |   |       y N)super__init__)selfscript	__class__s     B/usr/lib/python3/dist-packages/orca/scripts/web/sound_generator.pyr   zSoundGenerator.__init__(   s         c                    t        j                         j                  d      sg S | j                  j                  j                  |      sg S |j                  dd      s| j                  |d<   d|d<   | j                  j                  j                  |      rJ | j                  j                  j                  di |g}t        t        | j                  |            }|r|S g S )z7Returns an array of sounds indicating obj is clickable.playSoundForStatemodeN	clickable
stringType )r   
getManager
getSetting_script	utilitiesinDocumentContentget_modeisClickableElement
formatting	getStringlistmap_convertFilenameToIconr   objargs	filenamesresults        r   _generateClickablez!SoundGenerator._generateClickable+   s      **,778KLI||%%77<Ixx%::DL(\<<!!44S9:00::BTBCI#d999EFF	r   c                    t        j                         j                  d      sg S | j                  j                  j                  |      sg S |j                  dd      s| j                  |d<   d|d<   | j                  j                  j                  |      rJ | j                  j                  j                  di |g}t        t        | j                  |            }|r|S g S )z9Returns an array of sounds indicating obj has a longdesc.r   r   Nhaslongdescr   r   )r   r   r   r   r   r   r   r   hasLongDescr    r!   r"   r#   r$   r%   s        r   _generateHasLongDescz#SoundGenerator._generateHasLongDesc@   s      **,778KLI||%%77<Ixx%::DL*\<<!!--c2:00::BTBCI#d999EFF	r   c                    | j                   j                  j                  |      st        |   |fi |S g }|j                  d      dk(  r| j                  d|      }n| j                   j                  j                  |      r+| j                  t        j                  j                  |      }ns| j                   j                  j                  |      r+| j                  t        j                  j                  |      }n#| j                   | j                  |fi ||      }|j                  t        |   |fi |       t        t!        d |            }| j#                  ||       |S )z@Returns an array of sounds for the complete presentation of obj.
formatTypedetailedWhereAmIdefaultc                     | S r
   r   )xs    r   <lambda>z.SoundGenerator.generateSound.<locals>.<lambda>f   s    q r   )r   r   r   r   generateSoundr   _overrideRoleisLinkr   RoleLINK
treatAsDivSECTION_getAlternativeRoleextendr"   filter_restoreRole)r   r&   r'   r)   oldRoler   s        r   r6   zSoundGenerator.generateSoundU   s(    ||%%77<7(55588L!%77((D9G\\##**3/(($?G\\##..s3((););TBG(()A)A)A#)N)NPTUGeg+C8489f[&12'4(r   c                 
   t        |      sg S g }| j                  j                  j                  |d      }t	        |      D ]?  \  }}|\  }}}}	 | j
                  |f|||	|t        |      d|}
|j                  |
       A |S )z8Returns an array of an array of sounds for the contents.F)startOffset	endOffsetstringindextotal)lenr   r   filterContentsForPresentation	enumerater6   append)r   contentsr'   r)   icontentr&   startendrE   icons              r   generateContentszSoundGenerator.generateContentsk   s     8}I<<))GGRWX#H- 	 JAw&-#CV%4%%6!&#fs8}6046D MM$	  r   )	__name__
__module____qualname__r   r*   r.   r6   rR   __classcell__)r   s   @r   r   r   &   s    !**,r   r   )__doc____id____version____date____copyright____license__girequire_versiongi.repositoryr   orcar   r   r   r   r   r   <module>ra      sV   , B1 	   7E "  !  T_33 Tr   