JD2022-TU1/main/tools/framework/Shuttle.Api/ClientAPI/IAfterEffectsClient.cs

209 lines
No EOL
8.1 KiB
C#

using System.Collections.Generic;
using System.Threading.Tasks;
using Shuttle.Api.AfterEffectsDTO.Items;
using Shuttle.Api.AfterEffectsDTO.Render;
using Shuttle.Api.AfterEffectsDTO.UpdatedData;
using Shuttle.Api.CommunicationDTO;
namespace Shuttle.Api.ClientAPI
{
/// <summary>
/// Client API, called from Orbit.
/// </summary>
// WARNING: The return type of methods must be void or Task.
// WANRING: Methods cannot have more than 7 parameters.
public interface IAfterEffectsClient : IShuttleClient
{
#region TaskRequests
/// <summary>
/// Requests AfterEffects to purge its cache.
/// </summary>
Task RequestPurgeCache(string requestToken);
/// <summary>
/// Requests AfterEffects to save the current project.
/// </summary>
Task RequestSave(string requestToken);
/// <summary>
/// Requests AfterEffects to save the current project to the given file path.
/// </summary>
Task RequestSaveTo(string requestToken, string filepath);
/// <summary>
/// Requests AfterEffects to open the given .aep project file.
/// </summary>
Task RequestOpenProject(string requestToken, string projectFilePath);
/// <summary>
/// Requests AfterEffects to show (or hide) the Render window.
/// </summary>
Task RequestShowRenderWindow(string requestToken, bool show);
/// <summary>
/// Requests AfterEffects to begin an undo group with the given name.
/// </summary>
Task RequestBeginUndoGroup(string requestToken, string undoGroupName);
/// <summary>
/// Requests AfterEffects to end the latest undo group. Not having called <see cref="RequestBeginUndoGroup"/> before may cause some issues.
/// </summary>
Task RequestEndUndoGroup(string requestToken);
#endregion TaskRequests
#region ItemRequests
// -- GET --
/// <summary>
/// Requests AfterEffects to send back the name of the currently opened file.
/// </summary>
Task RequestProjectFile(string requestToken);
/// <summary>
/// Requests AfterEffects to send back all selected items in the Project Panel.
/// </summary>
Task RequestSelectedItemsInProjectPanel(string requestToken);
/// <summary>
/// Requests AfterEffects to send back all items in the current project.
/// </summary>
Task RequestAllItems(string requestToken);
/// <summary>
/// Requests AfterEffects to send back the Render Queue.
/// </summary>
Task RequestRenderQueue(string requestToken);
/// <summary>
/// Requests AfterEffects to send back the item in the Render Queue at the given index. First item is at index 1.
/// </summary>
Task RequestRenderQueueItem(string requestToken, int renderQueueItemIndex);
/// <summary>
/// Requests AfterEffects to send back a full <see cref="FolderItem"/> corresponding to the given item identifier.
/// </summary>
Task RequestFolderItem(string requestToken, int folderId);
/// <summary>
/// Requests AfterEffects to send back a full <see cref="CompItem"/> corresponding to the given item identifier.
/// </summary>
Task RequestCompItem(string requestToken, int compId);
/// <summary>
/// Requests AfterEffects to send back a full <see cref="FootageItem"/> corresponding to the given item identifier.
/// </summary>
Task RequestFootageItem(string requestToken, int footageId);
// -- CREATE --
/// <summary>
/// Requests AfterEffects to create a new folder witht the given name under the given folder.
/// </summary>
Task RequestFolderCreation(string requestToken, string folderName, int parentFolderId);
/// <summary>
/// Requests AfterEffects to create a new composition witht the given name and the given settings under the given folder.
/// </summary>
Task RequestCompCreation(string requestToken, string compName, CompSettings compSettings, int parentFolderId);
/// <summary>
/// Requests AfterEffects to import a file (footage) into the given folder.
/// </summary>
Task RequestImportFile(string requestToken, string footageFilePath, int parentFolderId);
/// <summary>
/// Requests AfterEffects to add the given composition to the RenderQueue (thus creating a new RenderQueueItem)
/// </summary>
Task RequestAddToRenderQueue(string requestToken, int compId);
/// <summary>
/// Requests AfterEffects to add a new empty layer in the given composition.
/// </summary>
Task RequestAddNullLayer(string requestToken, int compId, string layerName);
/// <summary>
/// Requests AfterEffects to add the given item as a new layer in the given composition.
/// </summary>
Task RequestAddLayer(string requestToken, int compId, int sourceItemId);
// -- UPDATE --
/// <summary>
/// Requests AfterEffects to update the given folder.
/// </summary>
Task RequestUpdateFolderItem(string requestToken, int folderId, FolderItemUpdatableData folderItemData);
/// <summary>
/// Requests AfterEffects to update the given composition.
/// </summary>
Task RequestUpdateCompItem(string requestToken, int compId, CompItemUpdatableData compItemData);
/// <summary>
/// Requests AfterEffects to copy all layers from the given source comp to the given target comp.
/// </summary>
Task RequestCopyLayers(string requestToken, int sourceCompId, int targetCompId);
/// <summary>
/// Requests AfterEffects to remove the given layers in the given composition.
/// </summary>
Task RequestRemoveLayers(string requestToken, int compId, ICollection<string> layerNames);
/// <summary>
/// Requests AfterEffects to update the given footage.
/// </summary>
Task RequestUpdateFootageItem(string requestToken, int footageId, FootageItemUpdatableData footageItemData);
/// <summary>
/// Requests AfterEffects to change the source of the given footage to the specified file.
/// </summary>
Task RequestReplaceFootageSource(string requestToken, int footageId, string sourceFilePath);
/// <summary>
/// Requests AfterEffects to change the source of the given footage to a sequence of files (typically images).
/// </summary>
Task RequestReplaceFootageSourceWithSequence(string requestToken, int footageId, string firstSourceFilePath, bool forceAlphabetical);
/// <summary>
/// Requests AfterEffects to update the given RenderQueueItem.
/// </summary>
Task RequestUpdateRenderQueueItem(string requestToken, int renderQueueItemId, RenderQueueItem dataToUpdate);
/// <summary>
/// Requests AfterEffects to configure the given RenderQueueItem.
/// </summary>
Task RequestConfigureRenderQueueItem(string requestToken, int renderQueueItemIndex, string settingsTemplateName, string outputModuleTemplateName, string outputFilePath);
/// <summary>
/// Requests AfterEffects to update the layer at the given index in the given comp.
/// </summary>
Task RequestUpdateLayer(string requestToken, int compId, int layerIndex, LayerUpdatableData layerData);
/// <summary>
/// Requests AfterEffects to set the given folder as parent of the given item.
/// </summary>
Task RequestSetParentFolder(string requestToken, int itemId, int parentFolderId);
/// <summary>
/// Requests AfterEffects to set the given name to the given item.
/// </summary>
Task RequestRenameItem(string requestToken, int itemId, string newName);
// DELETE
/// <summary>
/// Requests AfterEffects to remove the given item from the project.
/// </summary>
Task RequestRemoveItem(string requestToken, int itemId);
#endregion ItemRequests
}
}