Overview
XnConvert’s present clear and intuitive interface provides an Input tab where the files to be processed can be loaded, an Actions tab on which the actions to be performed on each input file can be set, an Output tab on which the type of output required can be set, and a Settings tab on which certain general program options can be set. When the loaded files are processed, a Status tab enables progress to be monitored and any issues that arise to be viewed. Finally, the About tab enables the program version and other fixed information to be viewed when required.
The basis of the proposal to add support for multiple outputs is to add to the Settings tab a new option that, when enabled, opens a panel to the right of the existing program window on which the desired outputs can be set up. The default value of the new setting would be unselected. For convenience in describing operation, the existing program operation is referred to as Single output mode, the proposed new mode as Multi output mode, and the operation of converting the loaded input files into a set of output files as a Process.
When the Multi output mode option is selected:
1. The program window is immediately extended to the right to display a Control panel, which can be used to set up the required program operation.
2. The Input tab can be used in the normal way to load the files to be processed, and the Settings and About tabs may also be used if required.
3. The Actions and Output tabs can be used in conjunction with the controls on the Control panel to set up each required Process in turn.
An important practical advantage of the proposed interface is that when the program is used in the present Single output mode the interface is unchanged, so users familiar with the existing program will be able to continue to use it without even knowing that Multi output operation has been added.
The proposed interface also allows full flexibility in the outputs that can be created as each Process runs independently using its own Actions and Output settings, so there are no constraints on the outputs that can be obtained from the files loaded.
Control panel
The following controls will be required on the Control panel as a minimum:
1. A means to enter the number of Processes required, a minimum of five is suggested as users always ask for more than the number initially provided.

2. A means to select the Process to which the Actions and Output tabs currently relate.
3. A way to initiate conversion, such as a Convert all button.
Design of the Actions, Output and Status tabs
While users could be assumed to just ‘know’ that the above tabs apply to the Process currently selected on the Control panel, it seems better to modify their appearance in some way to distinguish them from the same tabs when Single output mode is selected to indicate that their function has changed.
One option would be to place the Actions, Output and Status tabs on a separate row below the Input, Status and About tabs to indicate their changed function.
Another option could be to modify the content of each tab in some way to indicate the change: some possible options might be to show the Process number so that the tab text becomes 1 Actions, 1 Output, 1 Status, etc. Other options could be to add some kind of symbol to the tabs, such as a small blue circle or rectangle, or to use a different tab text colour, remembering though that some people are colour blind.
Since in Multi mode conversion is initiated from the Control panel rather than from a tab, the Convert buttons on each tab of the main program window should be deactivated and greyed out to avoid possible confusion.
When finished with using Multi mode, the new Settings option added would be unchecked to deselect the mode, the Control panel would then close and the program interface revert to the default Single mode window. Job done!
Additional considerations
When it is required to output, for example, different pixel size versions of the input files for possible web use, each Process will operate entirely independently, resulting in some actions being repeated for different final output file versions. That would probably only be a practical issue when a large number of files were being converted when run time could be noticeably increased, but could be avoided if later some form of additional control were provided to allow the result of the actions from one Process to be used as the input for the next Process, possibly either copied or linked.
The design outlined could also allow someone who regularly uses a number of unrelated scripts to leave them loaded as separate Processes, avoiding the need to load a required script before running it again. That possible option might be implemented by providing an additional Control panel button that runs only the currently selected Process.
It is assumed above that the same Settings tab settings will be used for all Processes. While that is normally likely to be the case, if there could be a need to use different settings in different Processes, such as to enable multi-core operation only for a certain Process, the Settings tab could probably like the Actions and Output tabs be configured from the Control panel, provided that any possible conflicts have been considered.
The above outline is presented for consideration, while recognising that detailed examination may identify possible issues to be considered and hopefully resolved, or certain limitations on possible use.
Maybe with some thought XnConvert


