예제 #1
0
def setup_avid_extensions(f):
    uint8_typedef = f.dictionary.lookup_typedef("UInt8")
    unit16_typedef = f.dictionary.lookup_typedef("UInt16")
    int32_typedef = f.dictionary.lookup_typedef("Int32")

    # this property seems to stop mastermob from showing up in the bin
    mob_classdef = f.dictionary.lookup_classdef("Mob")
    appcode_id = AUID("urn:uuid:96c46992-4f62-11d3-a022-006094eb75cb")
    mob_classdef.register_optional_propertydef(int32_typedef, appcode_id,
                                               'AppCode')

    bagbit_id = AUID('urn:uuid:ccaa73d1-f538-11d3-a081-006094eb75cb')
    bagbit_typedef = aaf.define.TypeDefVariableArray(f, uint8_typedef,
                                                     bagbit_id,
                                                     'AvidBagOfBits')
    f.dictionary.register_def(bagbit_typedef)

    opdef_id = AUID('urn:uuid:2db619ef-7210-4e89-95d7-970336d72e8c')
    opdef = f.create.OperationDef(opdef_id, 'Title_2', "")
    opdef.media_kind = 'picture'

    # AvidGraphicFXAttr
    param_id = AUID('urn:uuid:1fdd2907-e48c-11d3-a078-006094eb75cb')
    graphic_fx_paramdef = f.create.ParameterDef(param_id, 'AvidGraphicFXAttr',
                                                "", bagbit_typedef)
    f.dictionary.register_def(graphic_fx_paramdef)
    opdef.add_parameterdef(graphic_fx_paramdef)

    # AvidParameterByteOrder
    param_id = AUID('urn:uuid:c0038672-a8cf-11d3-a05b-006094eb75cb')
    paramdef = f.create.ParameterDef(param_id, 'AvidParameterByteOrder', "",
                                     unit16_typedef)
    f.dictionary.register_def(paramdef)
    opdef.add_parameterdef(paramdef)

    # AvidEffectID
    param_id = AUID('urn:uuid:93994bd6-a81d-11d3-a05b-006094eb75cb')
    effect_id_paramdef = f.create.ParameterDef(param_id, 'AvidEffectID', "",
                                               bagbit_typedef)
    f.dictionary.register_def(effect_id_paramdef)
    opdef.add_parameterdef(effect_id_paramdef)

    f.dictionary.register_def(opdef)