iDevices can be created in two different ways:
- Generic iDevices These are the iDevices a user can create using the iDevice Editor.
- Extended iDevices aka interactive iDevices or iDevicePlugins These are the iDevices which are coded in Python.
iDevices register themselves with the eXe iDeviceStore which makes them available for using in a package.
When a Generic iDevice is used in a package, the iDevice template is stored in the package as well as the content. When the package is loaded the iDevices which come with the package are available, but not permanently installed on the users machine (unless the user chooses to do so). I.e. some iDevices are available only on a per-package basis.
Extended iDevices are not included in a package (for security reasons) and must be downloaded and installed separately.
Architecture
The iDevice editor requires unique field IDs. When we designed eXe, David went with a replicator model. iDevices in the iDevice pane are the same as the iDevices in the authoring pane and the same as the iDevices in the iDevice editor. This means an iDevice instance may exist outside of a package (in an iDeviceStore) and it has an ID unique to whatever container it is in.
- idevice in pane, has a unique id inside of package bieng edited
- idevice in AUTHORING pane, has a unique id inside of package bieng edited
- idevice in IDEVICE PANE, has a unique id in the "package" loaded from generic.data
- idevice in IDEVICE EDITOR, has a UID in the "IDeviceStore"...
And iDevices in packages are in the IDevice store (Matthew thinks).
iDevice Editor
Stuff
Exchanging a package