From 2f1fe373b784fedbcc15eac722364d744a036294 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Thu, 27 Feb 2020 09:39:19 +0100 Subject: [PATCH] feat(nks): wip loader in lib --- pype/nukestudio/lib.py | 65 +++++++++++++++++++++++++++++------------- 1 file changed, 45 insertions(+), 20 deletions(-) diff --git a/pype/nukestudio/lib.py b/pype/nukestudio/lib.py index 9cc4df1683..6caae770e6 100644 --- a/pype/nukestudio/lib.py +++ b/pype/nukestudio/lib.py @@ -385,8 +385,6 @@ class ClipLoader: self.kwargs = kwargs self.active_project = self._get_active_project() self.project_bin = self.active_project.clipsBin() - self.active_sequence = self._get_active_sequence(sequence) - self.active_track = self._get_active_track(track) self.data = dict() @@ -397,6 +395,10 @@ class ClipLoader: self._get_asset_data() log.debug("__init__ self.data: `{}`".format(self.data)) + # add active components to class + self.active_sequence = self._get_active_sequence(sequence) + self.active_track = self._get_active_track(track) + def _set_data(self): """ Gets context and convert it to self.data data structure: @@ -564,40 +566,63 @@ class ClipLoader: media = hiero.core.MediaSource(self.data["path"]) media_in = int(media.startTime()) media_duration = int(media.duration()) + log.debug("__ media_in: `{}`".format(media_in)) + log.debug("__ media_duration: `{}`".format(media_duration)) handle_start = self.data["assetData"]["handleStart"] handle_end = self.data["assetData"]["handleEnd"] + fps = self.data["assetData"]["fps"] + if media_in: - source_in = media_in + handle_start + source_in = int(media_in + handle_start) else: - source_in = self.data["assetData"]["frameStart"] + handle_start + source_in = int(self.data["assetData"]["frameStart"] + handle_start) if media_duration: - source_out = (media_in + media_duration - 1) - handle_end + source_out = int((media_in + media_duration - 1) - handle_end) else: - source_out = self.data["assetData"]["frameEnd"]- handle_end + source_out = int(self.data["assetData"]["frameEnd"] - handle_end) - source = hiero.core.Clip(media) + log.debug("__ source_in: `{}`".format(source_in)) + log.debug("__ source_out: `{}`".format(source_out)) + log.debug("__ handle_start: `{}`".format(handle_start)) + log.debug("__ handle_end: `{}`".format(handle_end)) - # add to bin as clip item - items_in_bin = [b.name() for b in bin.items()] - if self.data["name"] not in items_in_bin: - binItem = hiero.core.BinItem(source) - bin.addItem(binItem) + # create Clip from Media + _clip = hiero.core.Clip(media) + _clip.setName(self.data["name"]) - new_source = [ - item for item in bin.items() if split_name in item.name() - ][0].items()[0].item() + # add Clip to bin if not there yet + if self.data["name"] not in [b.name() for b in self.active_bin.items()]: + binItem = hiero.core.BinItem(_clip) + self.active_bin.addItem(binItem) + + _source = next((item for item in self.active_bin.items() + if self.data["name"] in item.name()), None) + + if not _source: + log.warning("Problem with created Source clip: `{}`".format( + self.data["name"])) + + version = next((s for s in _source.items()), None) + clip = version.item() # add to track as clip item trackItem = hiero.core.TrackItem( self.data["name"], hiero.core.TrackItem.kVideo) - trackItem.setSource(new_source) - trackItem.setSourceIn(self.data["assetData"]["sourceIn"]) - trackItem.setSourceOut(self.data["assetData"]["sourceOut"]) - trackItem.setTimelineIn(self.data["assetData"]["clipIn"]) - trackItem.setTimelineOut(self.data["assetData"]["clipOut"]) + + log.info("clip: `{}`".format(clip)) + log.info("_clip: `{}`".format(_clip)) + log.info("clip.sourceIn(): `{}`".format(clip.sourceIn())) + log.info("clip.sourceOut(): `{}`".format(clip.sourceOut())) + + trackItem.setSource(clip) + # trackItem.setTimelineIn(self.data["assetData"]["clipIn"]) + trackItem.setSourceIn(5) + # trackItem.setTimelineOut(self.data["assetData"]["clipOut"]) + trackItem.setSourceOut(10) + self.active_track.addTrackItem(trackItem) log.info("Loading clips: `{}`".format(self.data["name"]))