Exemple #1
0
def GetMarkers(rec, current_time=0):
    markers = rec.markers.get()
    mrks = []
    for m in markers:
        p = m['position']
        l = m[aem.AEType('leng')]
        if p > current_time:
            mrks.append((p, p + l))
    return mrks
Exemple #2
0
from CarbonX import kAE
from CarbonX.AE import AECreateList, AECreateDesc
import aem

from genericreference import GenericReference
from terminology import tablesforapp, tablesfordata, kProperty, kElement, kCommand
from referencerenderer import renderreference
from keywordwrapper import Keyword

######################################################################
# PRIVATE
######################################################################
# Codecs

_keyAECompOperator = aem.AEType(kAE.keyAECompOperator)
_keyAEObject1 = aem.AEType(kAE.keyAEObject1)
_keyAEObject2 = aem.AEType(kAE.keyAEObject2)

_kTypeCompDescriptorOperators = {
    kAE.kAEGreaterThan: 'AS__gt__',
    kAE.kAEGreaterThanEquals: 'AS__ge__',
    kAE.kAEEquals: 'AS__eq__',
    kAE.kAELessThan: 'AS__lt__',
    kAE.kAELessThanEquals: 'AS__le__',
    kAE.kAEBeginsWith: 'startswith',
    kAE.kAEEndsWith: 'endswith',
    kAE.kAEContains: 'contains'
}

#######
 def customSendProc(event, modeFlags, priority, timeout):
     args = []
     # unpack required attributes
     eventcode, target = _unpackEventAttributes(event)
     try:
         # get app instance and associated data
         if not _appCache.has_key((target.type, target.data)):
             if target.type != kAE.typeProcessSerialNumber:
                 raise OSAError(
                     10000,
                     "Can't identify application (target descriptor not typeProcessSerialNumber)"
                 )
             app = appscript.app(
                 _pathToAppByPSN(*struct.unpack('LL', target.data)))
             appData = app.AS_appdata
             commandsbycode = dict([
                 (data[1][0], (name,
                               dict([(v, k)
                                     for (k, v) in data[1][-1].items()])))
                 for (name, data) in appData.referencebyname.items()
                 if data[0] == 'c'
             ])
             _appCache[(target.type, target.data)] = (app, appData,
                                                      commandsbycode)
         app, appData, commandsbycode = _appCache[(target.type,
                                                   target.data)]
         # unpack parameters
         params = appData.unpack(event.AECoerceDesc(kAE.typeAERecord))
         resultType = params.pop(aem.AEType('rtyp'), None)
         directParam = params.pop(aem.AEType('----'), None)
         # apply special cases
         if eventcode == 'corecrel' and params.has_key(aem.AEType('insh')):
             # Special case: if 'make' command has an 'at' parameter, use 'at' parameter as target reference
             target = params.pop(aem.AEType('insh'))
         elif eventcode == 'coresetd':
             # Special case: for 'set' command, use direct parameter as target reference and use 'to' parameter for direct argument
             target = directParam
             directParam = params.pop(aem.AEType('data'))
         elif isinstance(directParam, appscript.reference.Reference):
             # Special case: if direct parameter is a reference, use this as target reference
             target = directParam
             directParam = None
         else:
             target = app
         # build command and arguments list
         commandName, argNames = commandsbycode[eventcode]
         if directParam is not None:
             args.append( ` directParam `)
         for key, val in params.items():
             args.append('%s=%r' % (argNames[key.code], val))
         if resultType:
             args.append('resulttype=%r' % resultType)
         if modeFlags & kAE.kAEWaitReply != kAE.kAEWaitReply:
             args.append('waitreply=False')
         if timeout != -1:
             args.append('timeout=%i' % (timeout / 60))
         # result!
         out('%r.%s(%s)' % (target, commandName, ', '.join(args)))
     except Exception, e:
         import traceback
         traceback.print_exc()
         out('Untranslated event %r' % eventcode)