[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27074] trunk/blender/source/blender: - Jack transport update: Moving the playhead in another jack app when not playing back now triggers an update in blender .

Joerg Mueller nexyon at gmail.com
Mon Feb 22 10:01:50 CET 2010


Revision: 27074
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27074
Author:   nexyon
Date:     2010-02-22 10:01:49 +0100 (Mon, 22 Feb 2010)

Log Message:
-----------
- Jack transport update: Moving the playhead in another jack app when not playing back now triggers an update in blender.
- Missing stub fix from last commit by nazg-gul, blenderplayer works now atm.

Modified Paths:
--------------
    trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
    trunk/blender/source/blenderplayer/bad_level_call_stubs/stubs.c

Modified: trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_event_system.c	2010-02-22 08:27:45 UTC (rev 27073)
+++ trunk/blender/source/blender/windowmanager/intern/wm_event_system.c	2010-02-22 09:01:49 UTC (rev 27074)
@@ -1533,23 +1533,32 @@
 			wm_event_free_all(win);
 		else
 		{
-			if(win->screen->scene)
+			Scene* scene = win->screen->scene;
+			if(scene)
 			{
 				int playing = sound_scene_playing(win->screen->scene);
 				if(playing != -1)
 				{
+					CTX_wm_window_set(C, win);
+					CTX_wm_screen_set(C, win->screen);
+					CTX_data_scene_set(C, scene);
 					if(((playing == 1) && (!win->screen->animtimer)) || ((playing == 0) && (win->screen->animtimer)))
 					{
-						CTX_wm_window_set(C, win);
-						CTX_wm_screen_set(C, win->screen);
-						CTX_data_scene_set(C, win->screen->scene);
-
 						ED_screen_animation_play(C, -1, 1);
-
-						CTX_data_scene_set(C, NULL);
-						CTX_wm_screen_set(C, NULL);
-						CTX_wm_window_set(C, NULL);
 					}
+					if(playing == 0)
+					{
+						int ncfra = floor(sound_sync_scene(scene) * FPS);
+						if(ncfra != scene->r.cfra)
+						{
+							scene->r.cfra = ncfra;
+							ED_update_for_newframe(C, 1);
+							WM_event_add_notifier(C, NC_WINDOW, NULL);
+						}
+					}
+					CTX_data_scene_set(C, NULL);
+					CTX_wm_screen_set(C, NULL);
+					CTX_wm_window_set(C, NULL);
 				}
 			}
 		}

Modified: trunk/blender/source/blenderplayer/bad_level_call_stubs/stubs.c
===================================================================
--- trunk/blender/source/blenderplayer/bad_level_call_stubs/stubs.c	2010-02-22 08:27:45 UTC (rev 27073)
+++ trunk/blender/source/blenderplayer/bad_level_call_stubs/stubs.c	2010-02-22 09:01:49 UTC (rev 27074)
@@ -88,6 +88,7 @@
 void WM_event_add_notifier(const struct bContext *C, unsigned int type, void *reference){}
 void WM_main_add_notifier(unsigned int type, void *reference){}
 void ED_armature_bone_rename(struct bArmature *arm, char *oldnamep, char *newnamep){}
+struct wmEventHandler *WM_event_add_modal_handler(struct bContext *C, struct wmOperator *op){return (struct wmEventHandler *)NULL;};
 void ED_armature_edit_bone_remove(struct bArmature *arm, struct EditBone *exBone){}
 void object_test_constraints (struct Object *owner){}
 void ED_object_parent(struct Object *ob, struct Object *par, int type, const char *substr){}





More information about the Bf-blender-cvs mailing list