mirror of
https://github.com/iluvcapra/pycmx.git
synced 2025-12-31 08:50:54 +00:00
Implemented better logic for reading event-modifying lines
This commit is contained in:
@@ -20,8 +20,11 @@ class CmxEvent:
|
||||
self.aux_source = (source_name == 'AX')
|
||||
|
||||
|
||||
def accept_statement(statement):
|
||||
atement_type = type(statement).__name__
|
||||
def can_accept(self):
|
||||
return {'AudioExt','Remark','SourceFile','ClipName','EffectsName'}
|
||||
|
||||
def accept_statement(self, statement):
|
||||
statement_type = type(statement).__name__
|
||||
if statement_type == 'AudioExt':
|
||||
self.channels.appendExt(statement)
|
||||
elif statement_type == 'Remark':
|
||||
@@ -34,7 +37,7 @@ class CmxEvent:
|
||||
self.transition.name = statement.name
|
||||
|
||||
def __repr__(self):
|
||||
return f"""CmxEvent(title="{self.title}",number="{self.number}",\
|
||||
return f"""CmxEvent(title="{self.title}",number={self.number},\
|
||||
clip_name="{self.clip_name}",source_name="{self.source_name}",\
|
||||
channels={self.channels},transition={self.transition},\
|
||||
source_start="{self.source_start}",source_finish="{self.source_finish}",\
|
||||
|
||||
@@ -141,36 +141,32 @@ def event_list(title, parser):
|
||||
state['fcm_drop'] = parser.current_token.drop
|
||||
elif parser.accept('Event'):
|
||||
if this_event != None:
|
||||
event_t = CmxEvent(**this_event)
|
||||
events_result.append(event_t)
|
||||
events_result.append(this_event)
|
||||
|
||||
raw_event = parser.current_token
|
||||
channels = CmxChannelMap(v=False, audio_channels=set([]))
|
||||
channels.appendEvent(raw_event.channels)
|
||||
|
||||
this_event = {'title': title, 'number': raw_event.event, 'clip_name': None ,
|
||||
'source_name': raw_event.source,
|
||||
'channels': channels,
|
||||
'transition': CmxTransition(raw_event.trans, raw_event.trans_op),
|
||||
'source_start': raw_event.source_in,
|
||||
'source_finish': raw_event.source_out,
|
||||
'record_start': raw_event.record_in,
|
||||
'record_finish': raw_event.record_out,
|
||||
'fcm_drop': state['fcm_drop']}
|
||||
elif parser.accept('AudioExt'):
|
||||
this_event['channels'].appendExt(parser.current_token)
|
||||
elif parser.accept('ClipName'):
|
||||
this_event['clip_name'] = parser.current_token.name
|
||||
elif parser.accept('SourceFile'):
|
||||
this_event['source_name'] = parser.current_token.filename
|
||||
this_event = CmxEvent(title=title,number=int(raw_event.event), clip_name=None ,
|
||||
source_name=raw_event.source,
|
||||
channels=channels,
|
||||
transition=CmxTransition(raw_event.trans, raw_event.trans_op),
|
||||
source_start= raw_event.source_in,
|
||||
source_finish= raw_event.source_out,
|
||||
record_start= raw_event.record_in,
|
||||
record_finish= raw_event.record_out,
|
||||
fcm_drop= state['fcm_drop'])
|
||||
elif parser.accept('AudioExt') or parser.accept('ClipName') or \
|
||||
parser.accept('SourceFile') or parser.accept('EffectsName') or \
|
||||
parser.accept('Remark'):
|
||||
this_event.accept_statement(parser.current_token)
|
||||
elif parser.accept('Trailer'):
|
||||
break
|
||||
else:
|
||||
parser.next_token()
|
||||
|
||||
if this_event != None:
|
||||
event_t = CmxEvent(**this_event)
|
||||
events_result.append(event_t)
|
||||
events_result.append(this_event)
|
||||
|
||||
return events_result
|
||||
|
||||
|
||||
Reference in New Issue
Block a user