1f7dbc2a7d
Cross-platform Electron + React + FFmpeg desktop app for sending multiple SRT streams simultaneously. Features: - Multiple simultaneous SRT output streams - Video sources: desktop, window capture, cameras, capture cards - Audio sources: microphones, system loopback, sound cards - H.264 encoding with HW acceleration (NVENC/QSV/AMF/VideoToolbox) - SRT modes: caller / listener / rendezvous - Frame profile presets (4K, 1080p, 720p, 480p, 360p) - Tolbek SRT receiver with configurable mode - System tray: minimize-to-tray, exit confirmation dialog - Portable build via electron-builder Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
40 lines
1.4 KiB
JavaScript
40 lines
1.4 KiB
JavaScript
/**
|
|
* Run with: node assets/generate-icons.js
|
|
* Requires: npm install sharp (dev only)
|
|
* Generates PNG icons from SVG for all platforms.
|
|
* If sharp is not available, falls back to copying a placeholder.
|
|
*/
|
|
const fs = require('fs')
|
|
const path = require('path')
|
|
|
|
async function generate() {
|
|
const svgPath = path.join(__dirname, 'icon.svg')
|
|
const svgData = fs.readFileSync(svgPath)
|
|
|
|
try {
|
|
const sharp = require('sharp')
|
|
// PNG 512x512
|
|
await sharp(svgData).resize(512, 512).png().toFile(path.join(__dirname, 'icon.png'))
|
|
console.log('icon.png generated')
|
|
|
|
// Tray icon 32x32
|
|
await sharp(svgData).resize(32, 32).png().toFile(path.join(__dirname, 'tray-icon.png'))
|
|
console.log('tray-icon.png generated')
|
|
|
|
console.log('Done. For ICO/ICNS, use electron-icon-builder or convert manually.')
|
|
} catch (e) {
|
|
console.log('sharp not available, creating placeholder PNG...')
|
|
// Create a minimal 1x1 placeholder PNG (will work as fallback)
|
|
const minPng = Buffer.from(
|
|
'89504e470d0a1a0a0000000d49484452000000010000000108020000009001' +
|
|
'2e000000000c4944415408d76360f8cfc00000000200017e21bc330000000049454e44ae426082',
|
|
'hex'
|
|
)
|
|
fs.writeFileSync(path.join(__dirname, 'icon.png'), minPng)
|
|
fs.writeFileSync(path.join(__dirname, 'tray-icon.png'), minPng)
|
|
console.log('Placeholder icons created.')
|
|
}
|
|
}
|
|
|
|
generate().catch(console.error)
|