src/js/libs/popcorn.code.js
changeset 944 8a6c9e3d0158
parent 907 27b248a13355
parent 943 a882cc0c936f
child 945 7d9f6fd6f904
--- a/src/js/libs/popcorn.code.js	Thu May 24 15:05:47 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,182 +0,0 @@
-// PLUGIN: Code
-
-(function ( Popcorn ) {
-
-  /**
-   * Code Popcorn Plug-in
-   *
-   * Adds the ability to run arbitrary code (JavaScript functions) according to video timing.
-   *
-   * @param {Object} options
-   *
-   * Required parameters: start, end, template, data, and target.
-   * Optional parameter: static.
-   *
-   *   start: the time in seconds when the mustache template should be rendered
-   *          in the target div.
-   *
-   *   end: the time in seconds when the rendered mustache template should be
-   *        removed from the target div.
-   *
-   *   onStart: the function to be run when the start time is reached.
-   *
-   *   onFrame: [optional] a function to be run on each paint call
-   *            (e.g., called ~60 times per second) between the start and end times.
-   *
-   *   onEnd: [optional] a function to be run when the end time is reached.
-   *
-   * Example:
-     var p = Popcorn('#video')
-
-        // onStart function only
-        .code({
-          start: 1,
-          end: 4,
-          onStart: function( options ) {
-            // called on start
-          }
-        })
-
-        // onStart + onEnd only
-        .code({
-          start: 6,
-          end: 8,
-          onStart: function( options ) {
-            // called on start
-          },
-          onEnd: function ( options ) {
-            // called on end
-          }
-        })
-
-        // onStart, onEnd, onFrame
-        .code({
-          start: 10,
-          end: 14,
-          onStart: function( options ) {
-            // called on start
-          },
-          onFrame: function ( options ) {
-            // called on every paint frame between start and end.
-            // uses mozRequestAnimationFrame, webkitRequestAnimationFrame,
-            // or setTimeout with 16ms window.
-          },
-          onEnd: function ( options ) {
-            // called on end
-          }
-        });
-  *
-  */
-
-  Popcorn.plugin( "code" , function( options ) {
-    var running = false;
-
-    // Setup a proper frame interval function (60fps), favouring paint events.
-    var step = (function() {
-
-      var buildFrameRunner = function( runner ) {
-        return function( f, options ) {
-
-          var _f = function() {
-            running && f();
-            running && runner( _f );
-          };
-
-          _f();
-        };
-      };
-
-      // Figure out which level of browser support we have for this
-      if ( window.webkitRequestAnimationFrame ) {
-        return buildFrameRunner( window.webkitRequestAnimationFrame );
-      } else if ( window.mozRequestAnimationFrame ) {
-        return buildFrameRunner( window.mozRequestAnimationFrame );
-      } else {
-        return buildFrameRunner( function( f ) {
-          window.setTimeout( f, 16 );
-        });
-      }
-
-    })();
-
-    if ( !options.onStart || typeof options.onStart !== "function" ) {
-
-      if ( Popcorn.plugin.debug ) {
-        throw new Error( "Popcorn Code Plugin Error: onStart must be a function." );
-      }
-      options.onStart = Popcorn.nop;
-    }
-
-    if ( options.onEnd && typeof options.onEnd !== "function" ) {
-
-      if ( Popcorn.plugin.debug ) {
-        throw new Error( "Popcorn Code Plugin Error: onEnd  must be a function." );
-      }
-      options.onEnd = undefined;
-    }
-
-    if ( options.onFrame && typeof options.onFrame !== "function" ) {
-
-      if ( Popcorn.plugin.debug ) {
-        throw new Error( "Popcorn Code Plugin Error: onFrame  must be a function." );
-      }
-      options.onFrame = undefined;
-    }
-
-    return {
-      start: function( event, options ) {
-        options.onStart( options );
-
-        if ( options.onFrame ) {
-          running = true;
-          step( options.onFrame, options );
-        }
-      },
-
-      end: function( event, options ) {
-        if ( options.onFrame ) {
-          running = false;
-        }
-
-        if ( options.onEnd ) {
-          options.onEnd( options );
-        }
-      }
-    };
-  },
-  {
-    about: {
-      name: "Popcorn Code Plugin",
-      version: "0.1",
-      author: "David Humphrey (@humphd)",
-      website: "http://vocamus.net/dave"
-    },
-    options: {
-      start: {
-       elem: "input",
-       type: "text",
-       label: "In"
-      },
-      end: {
-        elem: "input",
-        type: "text",
-        label: "Out"
-      },
-      onStart: {
-        elem: "input",
-        type: "function",
-        label: "onStart"
-      },
-      onFrame: {
-        elem: "input",
-        type: "function",
-        label: "onFrame"
-      },
-      onEnd: {
-        elem: "input",
-        type: "function",
-        label: "onEnd"
-      }
-    }
-  });
-})( Popcorn );