[libbluray-devel] gc_run(): reset is always valid operation

hpi1 git at videolan.org
Wed Feb 9 16:59:24 CET 2011


libbluray | branch: master | hpi1 <hpi1 at anonymous.org> | Wed Feb  9 17:59:07 2011 +0200| [96ff9fbe39138eea983cfc0347391733527e2f26] | committer: hpi1

gc_run(): reset is always valid operation

> http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=96ff9fbe39138eea983cfc0347391733527e2f26
---

 src/libbluray/decoders/graphics_controller.c |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/src/libbluray/decoders/graphics_controller.c b/src/libbluray/decoders/graphics_controller.c
index 5ec57ba..b95d567 100644
--- a/src/libbluray/decoders/graphics_controller.c
+++ b/src/libbluray/decoders/graphics_controller.c
@@ -756,6 +756,15 @@ int gc_run(GRAPHICS_CONTROLLER *gc, gc_ctrl_e ctrl, uint32_t param, GC_NAV_CMDS
         cmds->sound_id_ref = -1;
     }
 
+    /* always accept reset */
+    switch (ctrl) {
+        case GC_CTRL_RESET:
+            _gc_reset(gc);
+            return 0;
+        default:;
+    }
+
+    /* other operations require complete display set */
     if (!gc || !gc->igs || !gc->igs->ics || !gc->igs->complete) {
         TRACE("gc_run(): no interactive composition\n");
         return result;
@@ -795,10 +804,6 @@ int gc_run(GRAPHICS_CONTROLLER *gc, gc_ctrl_e ctrl, uint32_t param, GC_NAV_CMDS
             _render_page(gc, 0xffff, cmds);
             break;
 
-        case GC_CTRL_RESET:
-            _gc_reset(gc);
-            break;
-
         case GC_CTRL_IG_END:
             _update_selected_button(gc);
             _render_page(gc, 0xffff, cmds);
@@ -815,6 +820,9 @@ int gc_run(GRAPHICS_CONTROLLER *gc, gc_ctrl_e ctrl, uint32_t param, GC_NAV_CMDS
         case GC_CTRL_MOUSE_MOVE:
             result = _mouse_move(gc, param >> 16, param & 0xffff, cmds);
             break;
+        case GC_CTRL_RESET:
+            /* already handled */
+            break;
     }
 
     return result;



More information about the libbluray-devel mailing list