<!DOCTYPE HTML> <!-- NewPage --> <html lang="en"> <head> <!-- Generated by javadoc (11.0.15) on Wed Jun 08 22:58:27 CDT 2022 --> <title>ControllerEnvironment (jinput API)</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="dc.created" content="2022-06-08"> <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style"> <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style"> <script type="text/javascript" src="../../../../script.js"></script> <script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script> <script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script> <!--[if IE]> <script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script> <![endif]--> <script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script> <script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script> </head> <body> <script type="text/javascript"><!-- try { if (location.href.indexOf('is-external=true') == -1) { parent.document.title="ControllerEnvironment (jinput API)"; } } catch(err) { } //--> var data = {"i0":10,"i1":10,"i2":10,"i3":6,"i4":9,"i5":6,"i6":10,"i7":6}; var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; var tableTab = "tableTab"; var activeTableTab = "activeTableTab"; var pathtoroot = "../../../../"; var useModuleDirectories = true; loadScripts(document, 'script');</script> <noscript> <div>JavaScript is disabled on your browser.</div> </noscript> <header role="banner"> <nav role="navigation"> <div class="fixedNav"> <!-- ========= START OF TOP NAVBAR ======= --> <div class="topNav"><a id="navbar.top"> <!-- --> </a> <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> <a id="navbar.top.firstrow"> <!-- --> </a> <ul class="navList" title="Navigation"> <li><a href="../../../../index.html">Overview</a></li> <li><a href="package-summary.html">Package</a></li> <li class="navBarCell1Rev">Class</li> <li><a href="class-use/ControllerEnvironment.html">Use</a></li> <li><a href="package-tree.html">Tree</a></li> <li><a href="../../../../deprecated-list.html">Deprecated</a></li> <li><a href="../../../../index-files/index-1.html">Index</a></li> <li><a href="../../../../help-doc.html">Help</a></li> </ul> </div> <div class="subNav"> <ul class="navList" id="allclasses_navbar_top"> <li><a href="../../../../allclasses.html">All Classes</a></li> </ul> <ul class="navListSearch"> <li><label for="search">SEARCH:</label> <input type="text" id="search" value="search" disabled="disabled"> <input type="reset" id="reset" value="reset" disabled="disabled"> </li> </ul> <div> <script type="text/javascript"><!-- allClassesLink = document.getElementById("allclasses_navbar_top"); if(window==top) { allClassesLink.style.display = "block"; } else { allClassesLink.style.display = "none"; } //--> </script> <noscript> <div>JavaScript is disabled on your browser.</div> </noscript> </div> <div> <ul class="subNavList"> <li>Summary: </li> <li>Nested | </li> <li><a href="#field.summary">Field</a> | </li> <li><a href="#constructor.summary">Constr</a> | </li> <li><a href="#method.summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail: </li> <li><a href="#field.detail">Field</a> | </li> <li><a href="#constructor.detail">Constr</a> | </li> <li><a href="#method.detail">Method</a></li> </ul> </div> <a id="skip.navbar.top"> <!-- --> </a></div> <!-- ========= END OF TOP NAVBAR ========= --> </div> <div class="navPadding"> </div> <script type="text/javascript"><!-- $('.navPadding').css('padding-top', $('.fixedNav').css("height")); //--> </script> </nav> </header> <!-- ======== START OF CLASS DATA ======== --> <main role="main"> <div class="header"> <div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">net.java.games.input</a></div> <h2 title="Class ControllerEnvironment" class="title">Class ControllerEnvironment</h2> </div> <div class="contentContainer"> <ul class="inheritance"> <li>java.lang.Object</li> <li> <ul class="inheritance"> <li>net.java.games.input.ControllerEnvironment</li> </ul> </li> </ul> <div class="description"> <ul class="blockList"> <li class="blockList"> <dl> <dt>Direct Known Subclasses:</dt> <dd><code><a href="AWTEnvironmentPlugin.html" title="class in net.java.games.input">AWTEnvironmentPlugin</a></code>, <code><a href="DirectAndRawInputEnvironmentPlugin.html" title="class in net.java.games.input">DirectAndRawInputEnvironmentPlugin</a></code>, <code><a href="DirectInputEnvironmentPlugin.html" title="class in net.java.games.input">DirectInputEnvironmentPlugin</a></code>, <code><a href="LinuxEnvironmentPlugin.html" title="class in net.java.games.input">LinuxEnvironmentPlugin</a></code>, <code><a href="OSXEnvironmentPlugin.html" title="class in net.java.games.input">OSXEnvironmentPlugin</a></code>, <code><a href="RawInputEnvironmentPlugin.html" title="class in net.java.games.input">RawInputEnvironmentPlugin</a></code>, <code><a href="WinTabEnvironmentPlugin.html" title="class in net.java.games.input">WinTabEnvironmentPlugin</a></code></dd> </dl> <hr> <pre>public abstract class <span class="typeNameLabel">ControllerEnvironment</span> extends java.lang.Object</pre> <div class="block">A ControllerEnvironment represents a collection of controllers that are physically or logically linked. By default, this corresponds to the environment for the local machine. <p> In this reference implementation, this class can also be used to register controllers with the default environment as "plug-ins". A plug-in is created by subclassing ControllerEnvironment with a class that has a public no-argument constructor, implements the net.java.games.util.plugins.Plugin interface and has a name ending in "Plugin". (See net.java.games.input.DirectInputEnvironmentPlugin in the DXplugin part of the source tree for an example.) When the DefaultControllerEnvrionment is instanced it uses the plugin library to look for Plugins in both [java.home]/lib/controller and [user.dir]/controller. This allows controller plugins to be installed either globally for the entire Java environment or locally for just one particular Java app. For more information on the organization of plugins within the controller root directories, see net.java.games.util.plugins.Plugins (Note the plural -- "Plugins" not "Plugin" which is just a marker interface.)</div> </li> </ul> </div> <div class="summary"> <ul class="blockList"> <li class="blockList"> <!-- =========== FIELD SUMMARY =========== --> <section role="region"> <ul class="blockList"> <li class="blockList"><a id="field.summary"> <!-- --> </a> <h3>Field Summary</h3> <table class="memberSummary"> <caption><span>Fields</span><span class="tabEnd"> </span></caption> <tr> <th class="colFirst" scope="col">Modifier and Type</th> <th class="colSecond" scope="col">Field</th> <th class="colLast" scope="col">Description</th> </tr> <tr class="altColor"> <td class="colFirst"><code>protected java.util.ArrayList</code></td> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#controllerListeners">controllerListeners</a></span></code></th> <td class="colLast"> <div class="block">List of controller listeners</div> </td> </tr> </table> </li> </ul> </section> <!-- ======== CONSTRUCTOR SUMMARY ======== --> <section role="region"> <ul class="blockList"> <li class="blockList"><a id="constructor.summary"> <!-- --> </a> <h3>Constructor Summary</h3> <table class="memberSummary"> <caption><span>Constructors</span><span class="tabEnd"> </span></caption> <tr> <th class="colFirst" scope="col">Modifier</th> <th class="colSecond" scope="col">Constructor</th> <th class="colLast" scope="col">Description</th> </tr> <tr class="altColor"> <td class="colFirst"><code>protected </code></td> <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ControllerEnvironment</a></span>()</code></th> <td class="colLast"> <div class="block">Protected constructor for subclassing.</div> </td> </tr> </table> </li> </ul> </section> <!-- ========== METHOD SUMMARY =========== --> <section role="region"> <ul class="blockList"> <li class="blockList"><a id="method.summary"> <!-- --> </a> <h3>Method Summary</h3> <table class="memberSummary"> <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> <tr> <th class="colFirst" scope="col">Modifier and Type</th> <th class="colSecond" scope="col">Method</th> <th class="colLast" scope="col">Description</th> </tr> <tr id="i0" class="altColor"> <td class="colFirst"><code>void</code></td> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addControllerListener(net.java.games.input.ControllerListener)">addControllerListener</a></span>​(<a href="ControllerListener.html" title="interface in net.java.games.input">ControllerListener</a> l)</code></th> <td class="colLast"> <div class="block">Adds a listener for controller state change events.</div> </td> </tr> <tr id="i1" class="rowColor"> <td class="colFirst"><code>protected void</code></td> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fireControllerAdded(net.java.games.input.Controller)">fireControllerAdded</a></span>​(<a href="Controller.html" title="interface in net.java.games.input">Controller</a> c)</code></th> <td class="colLast"> <div class="block">Creates and sends an event to the controller listeners that a controller has been added.</div> </td> </tr> <tr id="i2" class="altColor"> <td class="colFirst"><code>protected void</code></td> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fireControllerRemoved(net.java.games.input.Controller)">fireControllerRemoved</a></span>​(<a href="Controller.html" title="interface in net.java.games.input">Controller</a> c)</code></th> <td class="colLast"> <div class="block">Creates and sends an event to the controller listeners that a controller has been lost.</div> </td> </tr> <tr id="i3" class="rowColor"> <td class="colFirst"><code>abstract <a href="Controller.html" title="interface in net.java.games.input">Controller</a>[]</code></td> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getControllers()">getControllers</a></span>()</code></th> <td class="colLast"> <div class="block">Returns a list of all controllers available to this environment, or an empty array if there are no controllers in this environment.</div> </td> </tr> <tr id="i4" class="altColor"> <td class="colFirst"><code>static <a href="ControllerEnvironment.html" title="class in net.java.games.input">ControllerEnvironment</a></code></td> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultEnvironment()">getDefaultEnvironment</a></span>()</code></th> <td class="colLast"> <div class="block">Returns the default environment for input controllers.</div> </td> </tr> <tr id="i5" class="rowColor"> <td class="colFirst"><code>abstract boolean</code></td> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSupported()">isSupported</a></span>()</code></th> <td class="colLast"> <div class="block">Returns the isSupported status of this environment.</div> </td> </tr> <tr id="i6" class="altColor"> <td class="colFirst"><code>void</code></td> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeControllerListener(net.java.games.input.ControllerListener)">removeControllerListener</a></span>​(<a href="ControllerListener.html" title="interface in net.java.games.input">ControllerListener</a> l)</code></th> <td class="colLast"> <div class="block">Removes a listener for controller state change events.</div> </td> </tr> <tr id="i7" class="rowColor"> <td class="colFirst"><code>abstract <a href="Controller.html" title="interface in net.java.games.input">Controller</a>[]</code></td> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rescanControllers()">rescanControllers</a></span>()</code></th> <td class="colLast"> <div class="block">Rescans the devices and provides a list of new controllers.</div> </td> </tr> </table> <ul class="blockList"> <li class="blockList"><a id="methods.inherited.from.class.java.lang.Object"> <!-- --> </a> <h3>Methods inherited from class java.lang.Object</h3> <code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li> </ul> </li> </ul> </section> </li> </ul> </div> <div class="details"> <ul class="blockList"> <li class="blockList"> <!-- ============ FIELD DETAIL =========== --> <section role="region"> <ul class="blockList"> <li class="blockList"><a id="field.detail"> <!-- --> </a> <h3>Field Detail</h3> <a id="controllerListeners"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>controllerListeners</h4> <pre>protected final java.util.ArrayList controllerListeners</pre> <div class="block">List of controller listeners</div> </li> </ul> </li> </ul> </section> <!-- ========= CONSTRUCTOR DETAIL ======== --> <section role="region"> <ul class="blockList"> <li class="blockList"><a id="constructor.detail"> <!-- --> </a> <h3>Constructor Detail</h3> <a id="<init>()"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>ControllerEnvironment</h4> <pre>protected ControllerEnvironment()</pre> <div class="block">Protected constructor for subclassing.</div> </li> </ul> </li> </ul> </section> <!-- ============ METHOD DETAIL ========== --> <section role="region"> <ul class="blockList"> <li class="blockList"><a id="method.detail"> <!-- --> </a> <h3>Method Detail</h3> <a id="getControllers()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getControllers</h4> <pre class="methodSignature">public abstract <a href="Controller.html" title="interface in net.java.games.input">Controller</a>[] getControllers()</pre> <div class="block">Returns a list of all controllers available to this environment, or an empty array if there are no controllers in this environment.</div> </li> </ul> <a id="rescanControllers()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>rescanControllers</h4> <pre class="methodSignature">public abstract <a href="Controller.html" title="interface in net.java.games.input">Controller</a>[] rescanControllers()</pre> <div class="block">Rescans the devices and provides a list of new controllers.</div> <dl> <dt><span class="returnLabel">Returns:</span></dt> <dd>a list of all controllers available to this environment.</dd> </dl> </li> </ul> <a id="addControllerListener(net.java.games.input.ControllerListener)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>addControllerListener</h4> <pre class="methodSignature">public void addControllerListener​(<a href="ControllerListener.html" title="interface in net.java.games.input">ControllerListener</a> l)</pre> <div class="block">Adds a listener for controller state change events.</div> </li> </ul> <a id="isSupported()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>isSupported</h4> <pre class="methodSignature">public abstract boolean isSupported()</pre> <div class="block">Returns the isSupported status of this environment. What makes an environment supported or not is up to the particular plugin, but may include OS or available hardware.</div> </li> </ul> <a id="removeControllerListener(net.java.games.input.ControllerListener)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>removeControllerListener</h4> <pre class="methodSignature">public void removeControllerListener​(<a href="ControllerListener.html" title="interface in net.java.games.input">ControllerListener</a> l)</pre> <div class="block">Removes a listener for controller state change events.</div> </li> </ul> <a id="fireControllerAdded(net.java.games.input.Controller)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>fireControllerAdded</h4> <pre class="methodSignature">protected void fireControllerAdded​(<a href="Controller.html" title="interface in net.java.games.input">Controller</a> c)</pre> <div class="block">Creates and sends an event to the controller listeners that a controller has been added.</div> </li> </ul> <a id="fireControllerRemoved(net.java.games.input.Controller)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>fireControllerRemoved</h4> <pre class="methodSignature">protected void fireControllerRemoved​(<a href="Controller.html" title="interface in net.java.games.input">Controller</a> c)</pre> <div class="block">Creates and sends an event to the controller listeners that a controller has been lost.</div> </li> </ul> <a id="getDefaultEnvironment()"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>getDefaultEnvironment</h4> <pre class="methodSignature">public static <a href="ControllerEnvironment.html" title="class in net.java.games.input">ControllerEnvironment</a> getDefaultEnvironment()</pre> <div class="block">Returns the default environment for input controllers. This usually corresponds to the environment for the local machine.</div> </li> </ul> </li> </ul> </section> </li> </ul> </div> </div> </main> <!-- ========= END OF CLASS DATA ========= --> <footer role="contentinfo"> <nav role="navigation"> <!-- ======= START OF BOTTOM NAVBAR ====== --> <div class="bottomNav"><a id="navbar.bottom"> <!-- --> </a> <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> <a id="navbar.bottom.firstrow"> <!-- --> </a> <ul class="navList" title="Navigation"> <li><a href="../../../../index.html">Overview</a></li> <li><a href="package-summary.html">Package</a></li> <li class="navBarCell1Rev">Class</li> <li><a href="class-use/ControllerEnvironment.html">Use</a></li> <li><a href="package-tree.html">Tree</a></li> <li><a href="../../../../deprecated-list.html">Deprecated</a></li> <li><a href="../../../../index-files/index-1.html">Index</a></li> <li><a href="../../../../help-doc.html">Help</a></li> </ul> </div> <div class="subNav"> <ul class="navList" id="allclasses_navbar_bottom"> <li><a href="../../../../allclasses.html">All Classes</a></li> </ul> <div> <script type="text/javascript"><!-- allClassesLink = document.getElementById("allclasses_navbar_bottom"); if(window==top) { allClassesLink.style.display = "block"; } else { allClassesLink.style.display = "none"; } //--> </script> <noscript> <div>JavaScript is disabled on your browser.</div> </noscript> </div> <div> <ul class="subNavList"> <li>Summary: </li> <li>Nested | </li> <li><a href="#field.summary">Field</a> | </li> <li><a href="#constructor.summary">Constr</a> | </li> <li><a href="#method.summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail: </li> <li><a href="#field.detail">Field</a> | </li> <li><a href="#constructor.detail">Constr</a> | </li> <li><a href="#method.detail">Method</a></li> </ul> </div> <a id="skip.navbar.bottom"> <!-- --> </a></div> <!-- ======== END OF BOTTOM NAVBAR ======= --> </nav> </footer> </body> </html>