-
Notifications
You must be signed in to change notification settings - Fork 0
IPC Channels
Sandeep Vattapparambil edited this page Aug 19, 2026
·
1 revision
All channel names are centralized in src/shared/ipc-channels.ts. The preload script (src/preload/index.ts) exposes everything through window.electronAPI.
| Channel | Arguments | Returns |
|---|---|---|
select-file |
filters? |
string | null |
select-files |
filters? |
string[] |
select-output |
β | string | null |
select-directory |
β | string | null |
get-media-info |
filePath, transcoderType |
MediaInfo |
get-image-info |
filePath |
ImageExifData | null |
get-image-preview |
filePath |
string | null (data URL) |
get-image-file-info |
filePath |
ImageFileInfo | null |
get-video-preview |
filePath |
string | null (data URL) |
get-capabilities |
β | EncoderCapabilities | null |
convert-file |
input, output, options, transcoderType |
void |
cancel-conversion |
β | void |
pause-conversion |
β | void |
resume-conversion |
β | void |
queue-add |
input, output, options, transcoder |
string (job id) |
queue-remove |
id |
void |
queue-list |
β | QueueJob[] |
queue-get-state |
β | { paused, concurrency } |
queue-cancel-all |
β | void |
queue-clear-completed |
β |
number (count removed) |
queue-set-concurrency |
concurrency |
void |
queue-set-when-done |
config |
void |
queue-move-to |
id, toPosition |
boolean |
queue-update-options |
id, options, output? |
boolean |
queue-start |
β | void |
queue-pause |
β | void |
queue-resume |
β | void |
queue-export |
β |
number (count exported) |
queue-import |
β |
number (count imported) |
reveal-file |
filePath |
void |
set-launch-at-login |
enabled |
void |
player-open |
filePath |
number (generation token) |
player-seek |
time |
number (generation token) |
player-close |
β | void |
player-get-frame |
β | PlayerFrame | null |
extract-waveform |
filePath, duration |
WaveformData | null |
extract-thumbnails |
filePath, duration |
ThumbnailStrip | null |
check-for-updates |
β | void |
download-update |
β | void |
install-update |
installerPath |
void |
cancel-download |
β | void |
open-release-notes |
url |
void |
| Channel | Payload |
|---|---|
window-minimize |
β |
window-maximize-toggle |
β |
window-close |
β |
window-confirm-close |
β |
window-set-always-on-top |
boolean |
| Channel | Payload |
|---|---|
window-maximized-changed |
boolean |
window-close-requested |
β |
conversion-progress |
{ input, output, progress } |
queue-added |
QueueJob |
queue-removed |
string (job id) |
queue-status-change |
QueueJob |
queue-progress |
{ job, progress } |
queue-cancelled |
β |
queue-moved |
{ id, toPosition } |
player-frame |
PlayerFrame |
player-audio |
PlayerAudioChunk |
player-error |
string |
log-message |
LogEntry |
update-available |
UpdateInfo |
update-not-available |
β |
update-progress |
UpdateProgress |
update-downloaded |
string (installer path) |
update-error |
string (error message) |
The preload script exposes all IPC via window.electronAPI (typed in src/renderer/electron-api.d.ts).
-
getPathForFile(file)β resolve droppedFileto absolute path -
selectFile(filters?)β open file dialog, return path -
selectFiles(filters?)β open multi-file dialog, return paths -
selectOutput()β open save dialog -
selectDirectory()β open directory picker -
getMediaInfo(filePath, transcoderType)β probe media file -
getImageInfo(filePath)β get EXIF + histograms -
getImagePreview(filePath)β downscale preview -
getImageFileInfo(filePath)β dimensions + size -
getVideoPreview(filePath)β single-frame thumbnail -
getCapabilities()β probe available encoders -
convertFile(input, output, options, transcoderType)β start conversion -
pauseConversion()/resumeConversion()/cancelConversion() -
queueAdd(...)/queueRemove(id)/queueList()/queueCancelAll() -
queueGetState()/queueClearCompleted()/queueSetConcurrency(n) -
queueSetWhenDone(config)/queueMoveTo(id, pos)/queueUpdateOptions(id, opts) -
queueStart()/queuePause()/queueResume() -
queueExport()/queueImport() -
revealFile(filePath)β open in system file manager -
setLaunchAtLogin(enabled)β toggle launch at login -
playerOpen(filePath)/playerSeek(time)/playerClose()/playerGetFrame() -
extractWaveform(filePath, duration)/extractThumbnails(filePath, duration) -
windowMinimize()/windowMaximizeToggle()/windowClose()/windowCloseConfirmed() windowSetAlwaysOnTop(flag)-
checkForUpdates()/downloadUpdate()/installUpdate(path)/cancelDownload()/openReleaseNotes(url)
onWindowCloseRequested(cb)onWindowMaximizedChange(cb)onConversionProgress(cb)-
onQueueAdded(cb)/onQueueRemoved(cb)/onQueueStatusChange(cb)/onQueueProgress(cb)/onQueueCancelled(cb)/onQueueMoved(cb) -
onPlayerFrame(cb)/onPlayerAudio(cb)/onPlayerError(cb) onLogMessage(cb)-
onUpdateAvailable(cb)/onUpdateNotAvailable(cb)/onUpdateProgress(cb)/onUpdateDownloaded(cb)/onUpdateError(cb)
Getting Started
Internals
Quality
Community