Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Ebb <matt@mke3.net>2009-12-14 02:30:18 +0300
committerMatt Ebb <matt@mke3.net>2009-12-14 02:30:18 +0300
commit3f612b6ea5b15b0a868f1472053378949722c88a (patch)
treea9e90b187efc7f9e2524bb0383f37533b7a264d8
parent9f965ba62bc26c8c8f66c473f70d288800aec8d3 (diff)
Description and more presets for animation players (rv / framecycler).
Also put a bit more logic for guessing player paths based on my system. If anyone can make this a bit more clever/bulletproof, please feel free to get involved in it, it's all python!
-rw-r--r--release/scripts/op/screen_play_rendered_anim.py49
-rw-r--r--source/blender/editors/interface/resources.c3
-rw-r--r--source/blender/makesrna/intern/rna_userdef.c7
3 files changed, 50 insertions, 9 deletions
diff --git a/release/scripts/op/screen_play_rendered_anim.py b/release/scripts/op/screen_play_rendered_anim.py
index bee73968b84..a2e21f0d510 100644
--- a/release/scripts/op/screen_play_rendered_anim.py
+++ b/release/scripts/op/screen_play_rendered_anim.py
@@ -24,7 +24,7 @@
# Originally written by Matt Ebb
import bpy
-import subprocess, platform
+import subprocess, os, platform
# from BKE_add_image_extension()
img_format_exts = {
@@ -50,8 +50,35 @@ img_format_exts = {
'THEORA':'ogg',
}
-class PlayRenderedAnim(bpy.types.Operator):
+def guess_player_path(preset):
+ if preset == 'BLENDER24':
+ player_path = 'blender'
+
+ if platform.system() == 'Darwin':
+ test_path = '/Applications/blender 2.49.app/Contents/MacOS/blender'
+ if os.path.exists(test_path):
+ player_path = test_path
+
+ elif preset == 'DJV':
+ player_path = 'djv_view'
+
+ if platform.system() == 'Darwin':
+ test_path = '/Applications/djv-0.8.2.app/Contents/Resources/bin/djv_view'
+ if os.path.exists(test_path):
+ player_path = test_path
+
+ elif preset == 'FRAMECYCLER':
+ player_path = 'framecycler'
+
+ elif preset == 'RV':
+ player_path = 'rv'
+
+
+ return player_path
+
+class PlayRenderedAnim(bpy.types.Operator):
+ '''Plays back rendered frames/movies using an external player.'''
bl_idname = "screen.play_rendered_anim"
bl_label = "Play Rendered Animation"
bl_register = True
@@ -67,13 +94,14 @@ class PlayRenderedAnim(bpy.types.Operator):
# try and guess a command line if it doesn't exist
if player_path == '':
- if preset == 'BLENDER24':
- player_path = 'blender'
- elif preset == 'DJV':
- player_path = 'djv_view'
+ player_path = guess_player_path(preset)
# doesn't support ### frame notation yet
- file = "%s%04d" % (bpy.utils.expandpath(rd.output_path), sce.start_frame)
+ if preset in ('BLENDER24', 'DJV', 'CUSTOM'):
+ file = "%s%04d" % (bpy.utils.expandpath(rd.output_path), sce.start_frame)
+ elif preset in ('FRAMECYCLER', 'RV'):
+ file = "%s#" % bpy.utils.expandpath(rd.output_path)
+
if rd.file_extensions:
file += '.' + img_format_exts[rd.file_format]
@@ -85,6 +113,12 @@ class PlayRenderedAnim(bpy.types.Operator):
elif preset == 'DJV':
opts = [file, "-playback_speed", str(rd.fps)]
cmd.extend(opts)
+ elif preset == 'FRAMECYCLER':
+ opts = [file, "%d-%d" % (sce.start_frame, sce.end_frame)]
+ cmd.extend(opts)
+ elif preset == 'RV':
+ opts = ["-fps", str(rd.fps), "-play", "[ %s ]" % file]
+ cmd.extend(opts)
else: # 'CUSTOM'
cmd.extend(file)
@@ -93,6 +127,7 @@ class PlayRenderedAnim(bpy.types.Operator):
process = subprocess.Popen(cmd)
except:
pass
+ #raise OSError("Couldn't find an external animation player.")
return('FINISHED',)
diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c
index 809b3387f28..b2ae5572a05 100644
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@ -1283,6 +1283,9 @@ void init_userdef_do_versions(void)
if (U.dbl_click_time == 0) {
U.dbl_click_time = 350;
}
+ if (U.anim_player_preset == 0) {
+ U.anim_player_preset =1 ;
+ }
/* funny name, but it is GE stuff, moves userdef stuff to engine */
// XXX space_set_commmandline_options();
diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c
index 21e601c3ba3..d3329907939 100644
--- a/source/blender/makesrna/intern/rna_userdef.c
+++ b/source/blender/makesrna/intern/rna_userdef.c
@@ -2360,9 +2360,11 @@ static void rna_def_userdef_filepaths(BlenderRNA *brna)
static EnumPropertyItem anim_player_presets[] = {
//{0, "INTERNAL", 0, "Internal", "Built-in animation player"}, // doesn't work yet!
- {0, "BLENDER24", 0, "Blender 2.4", "Blender command line animation playback - path to Blender 2.4"},
+ {1, "BLENDER24", 0, "Blender 2.4", "Blender command line animation playback - path to Blender 2.4"},
{2, "DJV", 0, "Djv", "Open source frame player: http://djv.sourceforge.net"},
- {3, "CUSTOM", 0, "Custom", "Custom animation player executable path"},
+ {3, "FRAMECYCLER", 0, "FrameCycler", "Frame player from IRIDAS"},
+ {4, "RV", 0, "rv", "Frame player from Tweak Software"},
+ {50, "CUSTOM", 0, "Custom", "Custom animation player executable path"},
{0, NULL, 0, NULL, NULL}};
srna= RNA_def_struct(brna, "UserPreferencesFilePaths", NULL);
@@ -2430,6 +2432,7 @@ static void rna_def_userdef_filepaths(BlenderRNA *brna)
RNA_def_property_enum_sdna(prop, NULL, "anim_player_preset");
RNA_def_property_enum_items(prop, anim_player_presets);
RNA_def_property_ui_text(prop, "Animation Player Preset", "Preset configs for external animation players");
+ RNA_def_property_enum_default(prop, 1); /* set default to blender 2.4 player until an internal one is back */
/* Autosave */