Daemon API - Calls

General

General machine operation and diagnostic endpoints.

Health [CALL]

Health

Checks whether the Daemon is alive and responsive.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

No params.

Result

Result

boolean

Always true when the Daemon responds.

Example - Health check

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "Health",
  "ID": "<ID>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "Health",
  "ID": "<ID>"
}
JSON
{
  "Result": true
}

Shows

Endpoints related to show file management and favourites on this machine.

CopyShowFileToLocal [CALL]

CopyShowFileToLocal

Copies a specific show file from the server machine to this machine (client). Fetches the file from the Store service and writes it to disk.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

Params

ShowName

string

Name of the show to copy.

Overwrite optional (default: false)

boolean

Whether to overwrite an existing local file with the same name.

Path optional

string

Destination path on disk. Defaults to the local shows database directory.

FileName optional

string

Override the filename to use when saving to disk. Defaults to `ShowName`.

Result

Success

boolean

Whether the copy operation succeeded.

Example 1 - Copy a show

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "CopyShowFileToLocal",
  "ID": "<ID>"
}
JSON
{
  "Params": {
    "ShowName": "Show1"
  }
}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "CopyShowFileToLocal",
  "ID": "<ID>"
}
JSON
{
  "Result": {
    "Success": true
  }
}
Example 2 - Show not found (failure)

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "CopyShowFileToLocal",
  "ID": "<ID>"
}
JSON
{
  "Params": {
    "ShowName": "NonExistentShow"
  }
}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "CopyShowFileToLocal",
  "ID": "<ID>"
}
JSON
{
  "Failure": {
    "Code": "SHOW_EMPTY",
    "Message": "Show name is empty or show was not found."
  }
}
CheckShowFileLocal [CALL]

CheckShowFileLocal

Checks whether a specific show file already exists on this machine's local disk.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

Params

ShowName

string

Name of the show to check.

Result

ShowName

string

The name of the show that was checked.

ShowExist

boolean

Whether the show file exists locally.

Example - Check if show exists

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "CheckShowFileLocal",
  "ID": "<ID>"
}
JSON
{
  "Params": {
    "ShowName": "Show1"
  }
}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "CheckShowFileLocal",
  "ID": "<ID>"
}
JSON
{
  "Result": {
    "ShowName": "Show1",
    "ShowExist": true
  }
}

Role

Endpoints for managing the machine role in the Pixotope network.

SetRole [CALL]

SetRole

This operation restarts services and may take several seconds. While running, the Daemon is busy and will reject further `SetRole` calls.

Sets the machine role and initiates any necessary service restarts. Returns both the new role values and the previous role for comparison.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

Params

Role

string

The machine role to assign. One of `"StandAlone"`, `"Director"`, `"Renderer"`, `"Client"`.

IPAddress optional

string

The IP address of the Director to connect to. Required when setting the `"Client"` or `"Renderer"` role.

BackupIPAddress optional

string

The IP address of the backup Director.

Result

Role

object

The new role state values after the change.

PreviousRole

object

The role state values before the change.

RoleHasChanged

boolean

Whether the role actually changed.

Example 1 - Set machine as Director

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "SetRole",
  "ID": "<ID>"
}
JSON
{
  "Params": {
    "Role": "Director"
  }
}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "SetRole",
  "ID": "<ID>"
}
JSON
{
  "Result": {
    "Role": {
      "Role": "Director",
      "IPAddress": "",
      "BackupIPAddress": ""
    },
    "PreviousRole": {
      "Role": "StandAlone",
      "IPAddress": "",
      "BackupIPAddress": ""
    },
    "RoleHasChanged": true
  }
}
Example 2 - Daemon busy (failure)

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "SetRole",
  "ID": "<ID>"
}
JSON
{
  "Params": {
    "Role": "Director"
  }
}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "SetRole",
  "ID": "<ID>"
}
JSON
{
  "Failure": {
    "Code": "DAEMON_IS_BUSY",
    "Message": "The Daemon is currently busy."
  }
}

Backup

Endpoints for server backup and failover configuration.

ToggleServerBackup [CALL]

ToggleServerBackup

Enabling or disabling backup triggers a Datahub and AssetHub restart, causing a brief service interruption.

Enables or disables automatic server failover backup for this client machine. When enabled, this machine is designated as a standby backup in case the main server fails. Requires a Server Failover license.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

Params

Enabled

boolean

Whether to enable server backup for this machine.

Result

Result

boolean

The effective new value (may differ from the requested value if the license is not present).

Example - Enable backup

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "ToggleServerBackup",
  "ID": "<ID>"
}
JSON
{
  "Params": {
    "Enabled": true
  }
}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "ToggleServerBackup",
  "ID": "<ID>"
}
JSON
{
  "Result": true
}

General

General machine operation and diagnostic endpoints.

IsProcessRunning [CALL]

IsProcessRunning

Checks whether a named system process is currently running on this machine.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

Params

Name

string

The process name to check (e.g. `"PixotopeDirector.exe"`).

Result

Name

string

The process name that was checked.

IsRunning

boolean

Whether the process is currently running.

Example - Check if Director is running

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "IsProcessRunning",
  "ID": "<ID>"
}
JSON
{
  "Params": {
    "Name": "PixotopeDirector.exe"
  }
}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "IsProcessRunning",
  "ID": "<ID>"
}
JSON
{
  "Result": {
    "Name": "PixotopeDirector.exe",
    "IsRunning": true
  }
}
UpdateBackupInfo [CALL]

UpdateBackupInfo

Triggers a service restart, causing a brief interruption.

Updates the backup network configuration for this machine. On the main server, triggers an AssetHub restart; on clients, triggers a Datahub restart.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

Params

BackupIP optional

string

The IP address of the backup server. Leave empty to clear the backup IP.

Result

Result

boolean

Always `true` when the update completes successfully.

Example - Update backup IP

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "UpdateBackupInfo",
  "ID": "<ID>"
}
JSON
{
  "Params": {
    "BackupIP": "192.168.1.50"
  }
}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "UpdateBackupInfo",
  "ID": "<ID>"
}
JSON
{
  "Result": true
}
CleanBackupInfo [CALL]

CleanBackupInfo

Clears all backup network configuration from this machine, removing any previously configured backup server IP.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

No params.

Result

Result

boolean

Always `true` when cleanup completes.

Example - Clean backup info

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "CleanBackupInfo",
  "ID": "<ID>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "CleanBackupInfo",
  "ID": "<ID>"
}
JSON
{
  "Result": true
}

Role

Endpoints for managing the machine role in the Pixotope network.

ResetRole [CALL]

ResetRole

This operation restarts services and may take several seconds. While running, the Daemon is busy and will reject further `ResetRole` calls.

Resets this machine's role to the default unset state (StandAlone), stops the engine, and restarts services.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

No params.

Result

Result

boolean

Always `true` when the reset completes successfully.

Example 1 - Reset role

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "ResetRole",
  "ID": "<ID>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "ResetRole",
  "ID": "<ID>"
}
JSON
{
  "Result": true
}
Example 2 - Daemon busy (failure)

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "ResetRole",
  "ID": "<ID>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "ResetRole",
  "ID": "<ID>"
}
JSON
{
  "Failure": {
    "Code": "DAEMON_IS_BUSY",
    "Message": "The Daemon is currently busy."
  }
}
DisconnectFromServer [CALL]

DisconnectFromServer

Disconnects this machine from the current Director server by resetting the role to StandAlone. An optional notification message can be sent to the local notification service before disconnecting.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

Params

Message optional

string

Optional notification message to display before disconnecting.

Result

Result

boolean

Always `true` (the response is sent before the disconnect begins).

Example - Disconnect

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "DisconnectFromServer",
  "ID": "<ID>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "DisconnectFromServer",
  "ID": "<ID>"
}
JSON
{
  "Result": true
}

Projects

Endpoints for managing project links and the project list on this machine.

RemoveLocalProjectPath [CALL]

RemoveLocalProjectPath

Removes a local disk path override for a store project path. After removal, the project will no longer have a local path mapping and will use the server path instead.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

Params

StoreProjectsPath

string

The store project path (may include aliases) whose local override should be removed.

Example - Remove a local path override

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "RemoveLocalProjectPath",
  "ID": "<ID>"
}
JSON
{
  "Params": {
    "StoreProjectsPath": "%APPLICATION%\\Projects\\Show1"
  }
}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "RemoveLocalProjectPath",
  "ID": "<ID>"
}
JSON
{
  "Result": true
}
RescanProjects [CALL]

RescanProjects

Forces an immediate rescan of all projects from the Store service and updates the Daemon's internal project list.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

No params.

Result

Result

boolean

Whether the rescan from the Store succeeded.

Example - Rescan projects

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "RescanProjects",
  "ID": "<ID>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "RescanProjects",
  "ID": "<ID>"
}
JSON
{
  "Result": true
}
AddLinkedProject [CALL]

AddLinkedProject

Adds a project to the Store's project list. Supports three strategies: moving the project into the install directory, copying it, or linking it as a local-only project.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

Params

Project

string

The project path to add (absolute or using aliases like `%SYNCED_STORAGE%`).

Strategy

string

How to add the project: `"Move"`, `"Copy"`, or `"Local"`.

AutoPull optional (default: false)

boolean

Whether to automatically pull from version control after setting up the workspace.

Push optional (default: false)

boolean

Whether to push the workspace to version control after setup.

Result

Result

string

The final project path after the operation, or `false` if the operation failed.

Example - Add a local project

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "AddLinkedProject",
  "ID": "<ID>"
}
JSON
{
  "Params": {
    "Project": "D:\\MyProject\\MyProject.pxp",
    "Strategy": "Local"
  }
}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "AddLinkedProject",
  "ID": "<ID>"
}
JSON
{
  "Result": "D:\\MyProject\\MyProject.pxp"
}
ChangeLocalLinkedProject [CALL]

ChangeLocalLinkedProject

Changes the storage location of an existing linked project by moving or copying it to a new location within the install directory.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

Params

Project

string

The current project path (absolute or aliased).

Strategy

string

How to relocate the project: `"Move"` or `"Copy"`.

AutoPull optional (default: false)

boolean

Whether to automatically pull from version control after setup.

Push optional (default: false)

boolean

Whether to push the workspace to version control after setup.

Result

Result

string

The new project path after the operation, or `false` if the operation failed.

Example - Move a project

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "ChangeLocalLinkedProject",
  "ID": "<ID>"
}
JSON
{
  "Params": {
    "Project": "%APPLICATION%\\Projects\\MyProject\\MyProject.pxp",
    "Strategy": "Move"
  }
}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "ChangeLocalLinkedProject",
  "ID": "<ID>"
}
JSON
{
  "Result": "%APPLICATION%\\Projects\\MyProject_moved\\MyProject.pxp"
}

Encryption

Endpoints for managing network encryption on this machine.

EnableEncryption [CALL]

EnableEncryption

This operation restarts Datahub and Gateway services, causing a brief network interruption for all connected services.

Enables or disables network encryption for Pixotope services on this machine. Triggers a full Datahub and Gateway restart.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

Params

Enable

boolean

Whether to enable encryption.

Result

Result

boolean

The requested encryption state.

Example - Enable encryption

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "EnableEncryption",
  "ID": "<ID>"
}
JSON
{
  "Params": {
    "Enable": true
  }
}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "EnableEncryption",
  "ID": "<ID>"
}
JSON
{
  "Result": true
}
RegenerateEncryptionKeys [CALL]

RegenerateEncryptionKeys

All machines in the network must re-import the new encryption keys after regeneration. This causes a service interruption.

Removes the existing encryption keys and generates a new set, then restarts Datahub and Gateway to apply them.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

No params.

Result

Result

boolean

Always `true` when regeneration completes.

Example - Regenerate keys

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "RegenerateEncryptionKeys",
  "ID": "<ID>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "RegenerateEncryptionKeys",
  "ID": "<ID>"
}
JSON
{
  "Result": true
}
AddEncryptionKeys [CALL]

AddEncryptionKeys

Triggers a Datahub and Gateway restart, causing a brief network interruption.

Imports and installs encryption key material onto this machine, then restarts Datahub and Gateway to activate the new keys. The key data is sent as a binary attachment.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

No params.

Result

Result

boolean

Always `true` when the import and restart complete successfully.

Example - Add encryption keys

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "AddEncryptionKeys",
  "ID": "<ID>"
}
JSON
{
  "Params": {}
}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "AddEncryptionKeys",
  "ID": "<ID>"
}
JSON
{
  "Result": true
}
RemoveEncryptionKeys [CALL]

RemoveEncryptionKeys

Triggers a Datahub and Gateway restart, causing a brief network interruption.

Removes all encryption keys from this machine and disables encryption, then restarts Datahub and Gateway.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

No params.

Result

Result

boolean

Always `true` when removal and restart complete.

Example - Remove encryption keys

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "RemoveEncryptionKeys",
  "ID": "<ID>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "RemoveEncryptionKeys",
  "ID": "<ID>"
}
JSON
{
  "Result": true
}

Network

Endpoints for network diagnostics and adapter management.

TestNetworkConnection [CALL]

TestNetworkConnection

Tests whether this machine can reach the Pixotope network by attempting to identify the QueryServer. Will fail if encryption is currently being applied.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

No params.

Result

Result

boolean

Whether the network connection test succeeded.

Example - Test connection

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "TestNetworkConnection",
  "ID": "<ID>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "TestNetworkConnection",
  "ID": "<ID>"
}
JSON
{
  "Result": true
}

Shows

Endpoints related to show file management and favourites on this machine.

ToggleFavorite [CALL]

ToggleFavorite

Adds or removes a show or level from the favourites list. Changes are broadcast immediately via the `FavouriteShows` update.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

Params

Name

string

Name of the show or level to add or remove.

Add

boolean

`true` to add to favourites, `false` to remove.

Levels

boolean

`true` if the provided name is a level; `false` if it is a show.

Example - Add Show1 to favourites

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "ToggleFavorite",
  "ID": "<ID>"
}
JSON
{
  "Params": {
    "Name": "Show1",
    "Add": true,
    "Levels": false
  }
}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "ToggleFavorite",
  "ID": "<ID>"
}
JSON
{
  "Result": null
}
RefreshNetworkAdapters [CALL]

RefreshNetworkAdapters

Re-scans the OS network interfaces and updates the Daemon's list of available network adapters. Broadcasts updated `ActiveAdapter` and `NetworkAdapters` values.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

No params.

Result

Result

boolean

Always `true` when the refresh completes.

Example - Refresh adapters

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "RefreshNetworkAdapters",
  "ID": "<ID>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "RefreshNetworkAdapters",
  "ID": "<ID>"
}
JSON
{
  "Result": true
}
ToggleFavoriteFilter [CALL]

ToggleFavoriteFilter

Toggles the "show only favourites" filter for shows or levels in the persistent database. Changes are broadcast via `FavouriteShows`.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

Params

Levels

boolean

`true` to toggle the favourites filter for levels; `false` to toggle it for shows.

Example - Toggle shows favourite filter

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "ToggleFavoriteFilter",
  "ID": "<ID>"
}
JSON
{
  "Params": {
    "Levels": false
  }
}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "ToggleFavoriteFilter",
  "ID": "<ID>"
}
JSON
{
  "Result": null
}

Control Panels

Endpoints for creating and managing control panel files on this machine.

CreateControlPanel [CALL]

CreateControlPanel

Creates a new control panel file at the specified path with the provided content.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

Params

FilePath

string

Absolute path where the control panel file should be created.

Content

string

The file content to write.

Result

Result

boolean

Always `true` when the file is written successfully.

Example - Create a control panel

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "CreateControlPanel",
  "ID": "<ID>"
}
JSON
{
  "Params": {
    "FilePath": "C:\\Pixotope\\ControlPanels\\MyPanel.pxcp",
    "Content": "{}"
  }
}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "CreateControlPanel",
  "ID": "<ID>"
}
JSON
{
  "Result": true
}
RenameControlPanel [CALL]

RenameControlPanel

Renames an existing control panel file or folder-format control panel to a new name.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

Params

FilePath

string

The current absolute path of the control panel file.

Name

string

The new name (without extension) to rename the file to.

IsFolderFormat optional (default: false)

boolean

Whether the control panel uses the folder format (a directory with the same base name).

Result

Result

boolean

Whether the rename succeeded.

Example - Rename a control panel

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "RenameControlPanel",
  "ID": "<ID>"
}
JSON
{
  "Params": {
    "FilePath": "C:\\Pixotope\\ControlPanels\\OldName.pxcp",
    "Name": "NewName",
    "IsFolderFormat": false
  }
}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "RenameControlPanel",
  "ID": "<ID>"
}
JSON
{
  "Result": true
}
DuplicateControlPanel [CALL]

DuplicateControlPanel

Creates a copy of an existing control panel file or folder-format control panel with the same base name.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

Params

FilePath

string

The absolute path of the control panel to duplicate.

IsFolderFormat optional (default: false)

boolean

Whether the control panel uses the folder format.

Result

Result

boolean

Whether the duplication succeeded.

Example - Duplicate a control panel

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "DuplicateControlPanel",
  "ID": "<ID>"
}
JSON
{
  "Params": {
    "FilePath": "C:\\Pixotope\\ControlPanels\\MyPanel.pxcp",
    "IsFolderFormat": false
  }
}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "DuplicateControlPanel",
  "ID": "<ID>"
}
JSON
{
  "Result": true
}
DeleteControlPanel [CALL]

DeleteControlPanel

Deletes an existing control panel file or folder-format control panel from disk.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

Params

Path

string

The absolute path of the control panel to delete.

IsFolderFormat optional (default: false)

boolean

Whether the control panel uses the folder format (deletes the entire directory).

Result

Result

boolean

Always `true` when the delete operation completes.

Example - Delete a control panel

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "DeleteControlPanel",
  "ID": "<ID>"
}
JSON
{
  "Params": {
    "Path": "C:\\Pixotope\\ControlPanels\\MyPanel.pxcp",
    "IsFolderFormat": false
  }
}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "DeleteControlPanel",
  "ID": "<ID>"
}
JSON
{
  "Result": true
}

General

General machine operation and diagnostic endpoints.

RestartMachine [CALL]

RestartMachine

This will immediately restart the operating system. All unsaved work will be lost.

Restarts the Windows machine. Before restarting, the Director autorun registry entry is set so that Pixotope starts again after reboot.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

No params.

Result

Result

boolean

Always `true` (the restart is initiated after the response is sent).

Example - Restart the machine

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "RestartMachine",
  "ID": "<ID>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "RestartMachine",
  "ID": "<ID>"
}
JSON
{
  "Result": true
}
PixotopeAutostart [CALL]

PixotopeAutostart

Sets a custom executable path in the Windows registry startup entry for Pixotope, overriding the default install path. Also updates the `DirectorStartup` state if the custom path matches or does not match the current installation.

Wire format: [Topic, Message]

Send: CallTopic + {Params: ...} → Receive: CallResultTopic + {Result: ...}

Params

Path

string

Absolute path to the Pixotope executable to register for autostart.

Result

Result

boolean

Whether the registry update succeeded.

Example 1 - Set custom autostart path

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "PixotopeAutostart",
  "ID": "<ID>"
}
JSON
{
  "Params": {
    "Path": "D:\\CustomPixotope\\PixotopeDirector.exe"
  }
}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "PixotopeAutostart",
  "ID": "<ID>"
}
JSON
{
  "Result": true
}
Example 2 - Invalid path (failure)

Request (you send)

JSON
{
  "Type": "Call",
  "Target": "<MachineName>-Daemon",
  "RespondTo": "<Service>",
  "Method": "PixotopeAutostart",
  "ID": "<ID>"
}
JSON
{
  "Params": {
    "Path": ""
  }
}

Response (you receive)

JSON
{
  "Type": "CallResult",
  "Target": "<Service>",
  "ExecutedOn": "<MachineName>-Daemon",
  "Method": "PixotopeAutostart",
  "ID": "<ID>"
}
JSON
{
  "Result": false
}