def __init__(self, seq_name, project): """Constructor""" # Add language support translator = Language_Init.Translator(project) _ = translator.lang.gettext # init variables for sequence self.name = seq_name self.length = 600.0 # length in seconds of sequence. This controls how wide to render the tracks. self.project = project # reference to current project self.scale = 8.0 # this represents how many seconds per tick mark self.tick_pixels = 100 # number of pixels between each tick mark self.play_head_position = 0.0 # position of the play head in seconds # init the tracks on the sequence self.tracks = [] self.tracks.append(track.track(_("Track %s") % 2, self)) self.tracks.append(track.track(_("Track %s") % 1, self)) # init markers self.markers = [] # reference to play_head goocanvas group self.play_head = None self.ruler_time = None self.play_head_line = None self.enable_animated_playhead = True
def __init__(self, seq_name, project): """Constructor""" # Add language support translator = Language_Init.Translator(project) _ = translator.lang.gettext # init variables for sequence self.name = seq_name self.length = 600.0 # length in seconds of sequence. This controls how wide to render the tracks. self.project = project # reference to current project self.scale = 15.0 # this represents how many seconds per tick mark self.tick_pixels = 100 # number of pixels between each tick mark self.play_head_position = 0 # position of the play head in seconds # init the tracks on the sequence self.tracks = [] self.tracks.append(track.track(_("Track %s") % 2, self)) self.tracks.append(track.track(_("Track %s") % 1, self)) # init markers self.markers = [] # reference to play_head goocanvas group self.play_head = None self.ruler_time = None self.play_head_line = None
def GenerateXML(self, dom, xmlParentNode): # get frames per second fps = self.project.fps() multitrack = dom.createElement("multitrack") xmlParentNode.appendChild(multitrack) # create fake background track (i.e. black background) bg_track = track.track("Background Track", self) bg_track.parent = self bg_end_time = self.Calculate_Length() bg_image = files.OpenShotFile(self.project) #bg_image.name = "background_track" bg_image.name = os.path.join(self.project.IMAGE_DIR, "black.png") #bg_image.name = "/home/jonathan/Desktop/Temp OpenShot/background.png" bg_image.length = bg_end_time bg_image.max_frames = round(bg_end_time * fps) bg_clip = clip.clip("Background Clip", "Gold", 0.0, 0.0, bg_end_time, bg_track, bg_image) bg_clip.distort = True bg_clip.fill = True bg_track.clips.append(bg_clip) # add XML for background track bg_track.GenerateXML(dom, multitrack, fps=fps) # loop through each track, from the bottom up for MyTrack in reversed(self.tracks): # Render track MyTrack.GenerateXML(dom, multitrack, fps=fps)
def AddTrack(self, track_name, position="above", existing_track=None): # Add another track if existing_track: index_existing_track = self.tracks.index(existing_track) # insert next to an existing track if position == "above": self.tracks.insert(index_existing_track, track.track(track_name, self)) else: self.tracks.insert(index_existing_track + 1, track.track(track_name, self)) else: # insert at top of tracks self.tracks.insert(0, track.track(track_name, self)) # mark project as modified self.project.set_project_modified(is_modified=True, refresh_xml=True, type=_("Added Track"))
def GenerateXML(self, dom, xmlParentNode): # get frames per second fps = self.project.fps() multitrack = dom.createElement("multitrack") xmlParentNode.appendChild(multitrack) # create fake background track (i.e. black background) bg_track = track.track("Background Track", self) bg_track.parent = self bg_end_time = self.Calculate_Length() bg_image = files.LibreShotFile(self.project) bg_image.name = os.path.join(self.project.IMAGE_DIR, "black.png") bg_image.length = bg_end_time bg_image.max_frames = round(bg_end_time * fps) # set remaining length remaining_length = bg_end_time position = 0.0 current_length = 0.0 # Add the background black clip in sections (5 minute (i.e. 300 seconds) sections) while remaining_length > 0.0: # calculate length of this section if remaining_length > 300.0: current_length = 300.0 remaining_length -= 300.0 else: current_length = remaining_length remaining_length = 0.0 bg_clip = clip.clip("Background Clip", "Gold", position, 0.0, current_length, bg_track, bg_image) bg_clip.distort = True bg_clip.fill = True bg_track.clips.append(bg_clip) # calculate position for next section position += current_length # add XML for background track bg_track.GenerateXML(dom, multitrack, fps=fps) # loop through each track, from the bottom up for MyTrack in reversed(self.tracks): # Render track MyTrack.GenerateXML(dom, multitrack, fps=fps)
def GenerateXML(self, dom, xmlParentNode): # get frames per second fps = self.project.fps() multitrack = dom.createElement("multitrack") xmlParentNode.appendChild(multitrack) # create fake background track (i.e. black background) bg_track = track.track("Background Track", self) bg_track.parent = self bg_end_time = self.Calculate_Length() bg_image = files.OpenShotFile(self.project) bg_image.name = os.path.join(self.project.IMAGE_DIR, "black.png") bg_image.length = bg_end_time bg_image.max_frames = round(bg_end_time * fps) # set remaining length remaining_length = bg_end_time position = 0.0 current_length = 0.0 # Add the background black clip in sections (5 minute (i.e. 300 seconds) sections) while remaining_length > 0.0: # calculate length of this section if remaining_length > 300.0: current_length = 300.0 remaining_length -= 300.0 else: current_length = remaining_length remaining_length = 0.0 bg_clip = clip.clip("Background Clip", "Gold", position, 0.0, current_length, bg_track, bg_image) bg_clip.distort = True bg_clip.fill = True bg_track.clips.append(bg_clip) # calculate position for next section position += current_length # add XML for background track bg_track.GenerateXML(dom, multitrack, fps=fps) # loop through each track, from the bottom up for MyTrack in reversed(self.tracks): # Render track MyTrack.GenerateXML(dom, multitrack, fps=fps)