## DuIO

### A collection of tools for exporting and importing stuff in After Effects

DuIO requires DuAEF, the Duduf After Effects Framework. Two builds of the DuIO API are available:

- `DuIO_api.jsxinc` does not include DuAEF, and can be used to compine multiple Duduf APIs with a single copy of DuAEF.
  Be careful to grab the right version of DuAEF in this case.
- `DuAEF_DuIO_api.jsxinc` includes all dependencies, with DuAEF, and is easier to include in your scripts.

Version:
  - 3.0.0
Author:
  - Nicolas Dufresne and contributors
Copyright:
  - 2008 - 2021 Nicolas Dufresne, RxLaboratory
License:
  - GPL-3.0
    DuIO is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
    DuIO is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.
    You should have received a copy of the GNU General Public License
    along with DuIO. If not, see http://www.gnu.org/licenses/.

View Source Duik_api_fordoc.jsxinc, line 33883

### Examples

    // Encapsulate everything to avoid global variables!
    // The parameter is either undefined (stand alone script) or the panel containing the ui (ScriptUI)
    (function(thisObj)
    {
         // If you only need Duik, just include DuAEF_Duik_api
         #include "DuAEF_DuIO_api.jsxinc";

         // Running the init() method of DuAEF is required to setup everything properly.
         DuAEF.init( "YourScriptName", "1.0.0", "YourCompanyName" );

         // These info can be used by the framework to improve UX, but they're optional
         DuESF.chatURL = 'http://chat.rxlab.info'; // A link to a live-chat server like Discord or Slack...
         DuESF.bugReportURL = 'https://github.com/RxLaboratory/DuAEF_Dugr/issues/new/choose'; // A link to a bug report form
         DuESF.featureRequestURL = 'https://github.com/RxLaboratory/DuAEF_Dugr/issues/new/choose'; // A link to a feature request form
         DuESF.aboutURL = 'http://rxlaboratory.org/tools/dugr'; // A link to the webpage about your script
         DuESF.docURL = 'http://dugr.rxlab.guide'; // A link to the documentation of the script
         DuESF.scriptAbout = 'Duduf Groups: group After Effects layers!'; // A short string describing your script
         DuESF.companyURL = 'https://rxlaboratory.org'; // A link to your company's website
         DuESF.rxVersionURL = 'http://version.rxlab.io' // A link to an RxVersion server to check for updates

         // Build your UI here, declare your methods, etc.

         // This will be our main panel
         var ui = DuScriptUI.scriptPanel( thisObj, true, true, new File($.fileName) );
         ui.addCommonSettings(); // Automatically adds the language settings, location of the settings file, etc

         DuScriptUI.staticText( ui.settingsGroup, "Hello world of settings!" ); // Adds a static text to the settings panel
         DuScriptUI.staticText( ui.mainGroup, "Hello worlds!" ); // Adds a static text to the main panel

         // When you're ready to display everything
         DuScriptUI.showUI(ui);

         // Note that if you don't have a UI or if you don't use DuScriptUI to show it,
         // you HAVE TO run this method before running any other function:
         // DuAEF.enterRunTime();

    })(this);

    // Encapsulate everything to avoid global variables!
    // The parameter is either undefined (stand alone script) or the panel containing the ui (ScriptUI)
    (function(thisObj)
    {
         // If you need to combine Duik and other APIs like DuIO or DuGR
         // Include DuAEF first, and then stand-alone APIs
         #include "DuAEF.jsxinc";
         #include "DuGR_api.jsxinc";
         #include "Duik_api.jsxinc";
         #include "DuIO_api.jsxinc";

         // Running the init() method of DuAEF is required to setup everything properly.
         DuAEF.init( "YourScriptName", "1.0.0", "YourCompanyName" );

         // These info can be used by the framework to improve UX, but they're optional
         DuESF.chatURL = 'http://chat.rxlab.info'; // A link to a live-chat server like Discord or Slack...
         DuESF.bugReportURL = 'https://github.com/RxLaboratory/DuAEF_Dugr/issues/new/choose'; // A link to a bug report form
         DuESF.featureRequestURL = 'https://github.com/RxLaboratory/DuAEF_Dugr/issues/new/choose'; // A link to a feature request form
         DuESF.aboutURL = 'http://rxlaboratory.org/tools/dugr'; // A link to the webpage about your script
         DuESF.docURL = 'http://dugr.rxlab.guide'; // A link to the documentation of the script
         DuESF.scriptAbout = 'Duduf Groups: group After Effects layers!'; // A short string describing your script
         DuESF.companyURL = 'https://rxlaboratory.org'; // A link to your company's website
         DuESF.rxVersionURL = 'http://version.rxlab.io' // A link to an RxVersion server to check for updates

         // Build your UI here, declare your methods, etc.

         // This will be our main panel
         var ui = DuScriptUI.scriptPanel( thisObj, true, true, new File($.fileName) );
         ui.addCommonSettings(); // Automatically adds the language settings, location of the settings file, etc

         DuScriptUI.staticText( ui.settingsGroup, "Hello world of settings!" ); // Adds a static text to the settings panel
         DuScriptUI.staticText( ui.mainGroup, "Hello worlds!" ); // Adds a static text to the main panel

         // When you're ready to display everything
         DuScriptUI.showUI(ui);

         // Note that if you don't have a UI or if you don't use DuScriptUI to show it,
         // you HAVE TO run this method before running any other function:
         // DuAEF.enterRunTime();

    })(this);

### Requires

- module:DuAEF>=1.0.0

### Namespaces

Animation