[FL-2150] Dolphin animation refactoring (#938)
* Dolphin Animation Refactoring, part 1 * Remove animations from desktop * Remove excess, first start * Split animation_manager with callbacks * allocate view inside animation_view * Work on ViewComposed * Draw white rectangles under bubble corners * Fix bubbles sequence * RPC: remove obsolete include "status.pb.h" * Add animations manifest decoding * Flipper file: add strict mode * FFF: Animation structures parsing * Assembling structure of animation * Lot of view fixes: Add multi-line bubbles Add support for passive bubbles (frame_order values starts from passive now) Add hard-coded delay (active_shift) for active state enabling Fix active state handling Fix leaks Fix parsing uncorrect bubble_animation meta file Fix bubble rules of showing * Animation load/unload & view freeze/unfreeze * Blocking & system animations, fixes: View correct activation Refactoring + blocking animation Freeze first passive/active frames Many insert/eject SD tests fixes Add system animations Add Loader events app started/finished Add system no_sd animation * Assets: dolphin packer. Scripts: minor refactoring. * Desktop: update logging tags. Scripts: add metadata to dolphin bundling process, extra sorting for fs traversing. Make: phony assets rules. * Github: rebuild assets on build * Docker: add missing dependencies for assets compilation * Docker: fix run command syntax * ReadMe: update naming rules with link to source * Assets: recompile icons * Loader: add loader event * Desktop, Gui, Furi Core: const shenanigans macros Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
This commit is contained in:
@@ -52,6 +52,17 @@ class Main:
|
||||
self.parser_copro.add_argument("mcu", help="MCU series as in copro folder")
|
||||
self.parser_copro.set_defaults(func=self.copro)
|
||||
|
||||
self.parser_dolphin = self.subparsers.add_parser(
|
||||
"dolphin", help="Assemble dolphin resources"
|
||||
)
|
||||
self.parser_dolphin.add_argument(
|
||||
"dolphin_sources", help="Doplhin sources directory"
|
||||
)
|
||||
self.parser_dolphin.add_argument(
|
||||
"dolphin_output", help="Doplhin output directory"
|
||||
)
|
||||
self.parser_dolphin.set_defaults(func=self.dolphin)
|
||||
|
||||
# logging
|
||||
self.logger = logging.getLogger()
|
||||
|
||||
@@ -79,6 +90,7 @@ class Main:
|
||||
for dirpath, dirnames, filenames in os.walk(self.args.source_directory):
|
||||
self.logger.debug(f"Processing directory {dirpath}")
|
||||
dirnames.sort()
|
||||
filenames.sort()
|
||||
if not filenames:
|
||||
continue
|
||||
if "frame_rate" in filenames:
|
||||
@@ -193,7 +205,7 @@ class Main:
|
||||
return extension in ICONS_SUPPORTED_FORMATS
|
||||
|
||||
def manifest(self):
|
||||
from flipper.manifest import Manifest
|
||||
from flipper.assets.manifest import Manifest
|
||||
|
||||
directory_path = os.path.normpath(self.args.local_path)
|
||||
if not os.path.isdir(directory_path):
|
||||
@@ -222,12 +234,17 @@ class Main:
|
||||
self.logger.info(f"Complete")
|
||||
|
||||
def copro(self):
|
||||
from flipper.copro import Copro
|
||||
from flipper.assets.copro import Copro
|
||||
|
||||
copro = Copro(self.args.mcu)
|
||||
copro.loadCubeInfo(self.args.cube_dir)
|
||||
copro.bundle(self.args.output_dir)
|
||||
|
||||
def dolphin(self):
|
||||
from flipper.assets.dolphin import pack_dolphin
|
||||
|
||||
pack_dolphin(self.args.dolphin_sources, self.args.dolphin_output)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
Main()()
|
||||
|
Reference in New Issue
Block a user