giuliomoro@1088: /** giuliomoro@1088: * WAET Blank Template giuliomoro@1088: * Use this to start building your custom interface giuliomoro@1088: */ giuliomoro@1088: giuliomoro@1088: // Once this is loaded and parsed, begin execution giuliomoro@1088: loadInterface(); giuliomoro@1088: giuliomoro@1088: function loadInterface() { giuliomoro@1088: // Use this to do any one-time page / element construction. For instance, placing any stationary text objects, giuliomoro@1088: // holding div's, or setting up any nodes which are present for the entire test sequence giuliomoro@1088: }; giuliomoro@1088: giuliomoro@1088: function loadTest(page) giuliomoro@1088: { giuliomoro@1088: // Called each time a new test page is to be build. The page specification node is the only item passed in giuliomoro@1088: } giuliomoro@1088: giuliomoro@1088: function interfaceObject() giuliomoro@1088: { giuliomoro@1088: // An example node, you can make this however you want for each audioElement. giuliomoro@1088: // However, every audioObject (audioEngineContext.audioObject) MUST have an interface object with the following giuliomoro@1088: // You attach them by calling audioObject.bindInterface( ) giuliomoro@1088: this.enable = function() giuliomoro@1088: { giuliomoro@1088: // This is used to tell the interface object that playback of this node is ready giuliomoro@1088: }; giuliomoro@1088: this.updateLoading = function(progress) giuliomoro@1088: { giuliomoro@1088: // progress is a value from 0 to 100 indicating the current download state of media files giuliomoro@1088: }; giuliomoro@1088: this.startPlayback = function() giuliomoro@1088: { giuliomoro@1088: // Called when playback has begun giuliomoro@1088: }; giuliomoro@1088: this.stopPlayback = function() giuliomoro@1088: { giuliomoro@1088: // Called when playback has stopped. This gets called even if playback never started! giuliomoro@1088: }; giuliomoro@1088: this.getValue = function() giuliomoro@1088: { giuliomoro@1088: // Return the current value of the object. If there is no value, return 0 giuliomoro@1088: }; giuliomoro@1088: this.getPresentedId = function() giuliomoro@1088: { giuliomoro@1088: // Return the presented ID of the object. For instance, the APE has sliders starting from 0. Whilst AB has alphabetical scale giuliomoro@1088: }; giuliomoro@1088: this.canMove = function() giuliomoro@1088: { giuliomoro@1088: // Return either true or false if the interface object can be moved. AB / Reference cannot, whilst sliders can and therefore have a continuous scale. giuliomoro@1088: // These are checked primarily if the interface check option 'fragmentMoved' is enabled. giuliomoro@1088: }; giuliomoro@1088: this.exportXMLDOM = function(audioObject) { giuliomoro@1088: // Called by the audioObject holding this element to export the interface node. giuliomoro@1088: // If there is no value node (such as outside reference), return null giuliomoro@1088: // If there are multiple value nodes (such as multiple scale / 2D scales), return an array of nodes with each value node having an 'interfaceName' attribute giuliomoro@1088: // Use storage.document.createElement('value'); to generate the XML node. giuliomoro@1088: giuliomoro@1088: }; giuliomoro@1088: }; giuliomoro@1088: giuliomoro@1088: function resizeWindow(event) giuliomoro@1088: { giuliomoro@1088: // Called on every window resize event, use this to scale your page properly giuliomoro@1088: } giuliomoro@1088: giuliomoro@1088: function pageXMLSave(store, pageSpecification) giuliomoro@1088: { giuliomoro@1088: // MANDATORY giuliomoro@1088: // Saves a specific test page giuliomoro@1088: // You can use this space to add any extra nodes to your XML saves giuliomoro@1088: // Get the current information in store (remember to appendChild your data to it) giuliomoro@1088: // pageSpecification is the current page node configuration giuliomoro@1088: // To create new XML nodes, use storage.document.createElement(); giuliomoro@1088: }