UPD: Rename nanodevices API to nanoSerialApi
This commit is contained in:
@@ -2,7 +2,7 @@ import { app, shell, BrowserWindow, ipcMain, Menu, MenuItem } from 'electron'
|
|||||||
import { join } from 'path'
|
import { join } from 'path'
|
||||||
import { electronApp, optimizer, is } from '@electron-toolkit/utils'
|
import { electronApp, optimizer, is } from '@electron-toolkit/utils'
|
||||||
import icon from '../../resources/icon.png?asset'
|
import icon from '../../resources/icon.png?asset'
|
||||||
import nanodevices from './backend/nanodevices'
|
import nanoSerialApi from './nanoSerialApi'
|
||||||
|
|
||||||
const zoomFactor = 1
|
const zoomFactor = 1
|
||||||
const windowWidth = 1111
|
const windowWidth = 1111
|
||||||
@@ -95,10 +95,10 @@ app.whenReady().then(() => {
|
|||||||
optimizer.watchWindowShortcuts(window)
|
optimizer.watchWindowShortcuts(window)
|
||||||
})
|
})
|
||||||
|
|
||||||
ipcMain.handle('nanodevices:list_devices', () => nanodevices.list_devices())
|
ipcMain.handle('nanoSerialApi:list_devices', () => nanoSerialApi.list_devices())
|
||||||
ipcMain.handle('nanodevices:connect', (event, deviceid) => nanodevices.connect(deviceid))
|
ipcMain.handle('nanoSerialApi:connect', (event, deviceid) => nanoSerialApi.connect(deviceid))
|
||||||
ipcMain.handle('nanodevices:disconnect', () => nanodevices.disconnect)
|
ipcMain.handle('nanoSerialApi:disconnect', () => nanoSerialApi.disconnect)
|
||||||
ipcMain.handle('nanodevices:send', (event, ...data) => nanodevices.send(data[0], data[1]))
|
ipcMain.handle('nanoSerialApi:send', (event, ...data) => nanoSerialApi.send(data[0], data[1]))
|
||||||
const mainWindow = createMainWindow()
|
const mainWindow = createMainWindow()
|
||||||
ipcMain.on('electron:minimizeWindow', () => mainWindow.minimize())
|
ipcMain.on('electron:minimizeWindow', () => mainWindow.minimize())
|
||||||
ipcMain.on('electron:toggleMaximizeWindow', () => {
|
ipcMain.on('electron:toggleMaximizeWindow', () => {
|
||||||
@@ -112,29 +112,29 @@ app.whenReady().then(() => {
|
|||||||
ipcMain.on('electron:openExternal', (_event, url) => shell.openExternal(url))
|
ipcMain.on('electron:openExternal', (_event, url) => shell.openExternal(url))
|
||||||
ipcMain.on('electron:openDevTools', () => mainWindow.webContents.toggleDevTools())
|
ipcMain.on('electron:openDevTools', () => mainWindow.webContents.toggleDevTools())
|
||||||
ipcMain.on('electron:reload', () => mainWindow.webContents.reloadIgnoringCache())
|
ipcMain.on('electron:reload', () => mainWindow.webContents.reloadIgnoringCache())
|
||||||
nanodevices.on('nanodevices:device-attached', (deviceid, ...data) => {
|
nanoSerialApi.on('nanoSerialApi:device-attached', (deviceid, ...data) => {
|
||||||
console.log('Attached event', deviceid, data)
|
console.log('Attached event', deviceid, data)
|
||||||
mainWindow.webContents.send('nanodevices:event', 'device-attached', deviceid, ...data)
|
mainWindow.webContents.send('nanoSerialApi:event', 'device-attached', deviceid, ...data)
|
||||||
})
|
})
|
||||||
nanodevices.on('nanodevices:device-detached', (deviceid, ...data) => {
|
nanoSerialApi.on('nanoSerialApi:device-detached', (deviceid, ...data) => {
|
||||||
console.log('Detached event', deviceid, data)
|
console.log('Detached event', deviceid, data)
|
||||||
mainWindow.webContents.send('nanodevices:event', 'device-detached', deviceid, ...data)
|
mainWindow.webContents.send('nanoSerialApi:event', 'device-detached', deviceid, ...data)
|
||||||
})
|
})
|
||||||
nanodevices.on('nanodevices:device-error', (deviceid, ...data) => {
|
nanoSerialApi.on('nanoSerialApi:device-error', (deviceid, ...data) => {
|
||||||
console.log('Error event', deviceid, data)
|
console.log('Error event', deviceid, data)
|
||||||
mainWindow.webContents.send('nanodevices:event', 'device-error', deviceid, ...data)
|
mainWindow.webContents.send('nanoSerialApi:event', 'device-error', deviceid, ...data)
|
||||||
})
|
})
|
||||||
nanodevices.on('nanodevices:connected', (deviceid, ...data) => {
|
nanoSerialApi.on('nanoSerialApi:connected', (deviceid, ...data) => {
|
||||||
console.log('Connected event', deviceid, data)
|
console.log('Connected event', deviceid, data)
|
||||||
mainWindow.webContents.send('nanodevices:event', 'connected', deviceid, ...data)
|
mainWindow.webContents.send('nanoSerialApi:event', 'connected', deviceid, ...data)
|
||||||
})
|
})
|
||||||
nanodevices.on('nanodevices:disconnected', (deviceid, ...data) => {
|
nanoSerialApi.on('nanoSerialApi:disconnected', (deviceid, ...data) => {
|
||||||
console.log('Disconnected event', deviceid, data)
|
console.log('Disconnected event', deviceid, data)
|
||||||
mainWindow.webContents.send('nanodevices:event', 'disconnected', deviceid, ...data)
|
mainWindow.webContents.send('nanoSerialApi:event', 'disconnected', deviceid, ...data)
|
||||||
})
|
})
|
||||||
nanodevices.on('nanodevices:update', (deviceid, ...data) => {
|
nanoSerialApi.on('nanoSerialApi:update', (deviceid, ...data) => {
|
||||||
console.log('Update event', deviceid, data)
|
console.log('Update event', deviceid, data)
|
||||||
mainWindow.webContents.send('nanodevices:event', 'update', deviceid, ...data)
|
mainWindow.webContents.send('nanoSerialApi:event', 'update', deviceid, ...data)
|
||||||
})
|
})
|
||||||
const menu = new Menu()
|
const menu = new Menu()
|
||||||
for (const menuItem of Object.values(appMenu)) {
|
for (const menuItem of Object.values(appMenu)) {
|
||||||
@@ -172,7 +172,7 @@ app.whenReady().then(() => {
|
|||||||
|
|
||||||
Menu.setApplicationMenu(menu)
|
Menu.setApplicationMenu(menu)
|
||||||
//mainWindow.webContents.openDevTools()
|
//mainWindow.webContents.openDevTools()
|
||||||
setInterval(() => nanodevices._list(), 1000)
|
setInterval(() => nanoSerialApi._list(), 1000)
|
||||||
|
|
||||||
app.on('activate', function () {
|
app.on('activate', function () {
|
||||||
// On macOS it's common to re-create a window in the app when the
|
// On macOS it's common to re-create a window in the app when the
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ const NANO_PRODUCT_ID = '1001'
|
|||||||
const NANO_VENDOR_ID = '303A'
|
const NANO_VENDOR_ID = '303A'
|
||||||
const NANO_BAUD_RATE = 115200
|
const NANO_BAUD_RATE = 115200
|
||||||
|
|
||||||
class NanoDevices extends EventEmitter {
|
class NanoSerialApi extends EventEmitter {
|
||||||
all_nano_devices: { [key: string]: PortInfo } = {}
|
all_nano_devices: { [key: string]: PortInfo } = {}
|
||||||
connected_nano_devices: { [key: string]: { port: SerialPort } } = {}
|
connected_nano_devices: { [key: string]: { port: SerialPort } } = {}
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ class NanoDevices extends EventEmitter {
|
|||||||
found_nano_devices.push(port.serialNumber)
|
found_nano_devices.push(port.serialNumber)
|
||||||
if (this.all_nano_devices[port.serialNumber] === undefined) {
|
if (this.all_nano_devices[port.serialNumber] === undefined) {
|
||||||
this.all_nano_devices[port.serialNumber] = port
|
this.all_nano_devices[port.serialNumber] = port
|
||||||
this.emit('nanodevices:device-attached', port.serialNumber)
|
this.emit('nanoSerialApi:device-attached', port.serialNumber)
|
||||||
console.log('attached', port.serialNumber)
|
console.log('attached', port.serialNumber)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -34,7 +34,7 @@ class NanoDevices extends EventEmitter {
|
|||||||
for (const serialNumber in this.all_nano_devices) {
|
for (const serialNumber in this.all_nano_devices) {
|
||||||
if (found_nano_devices.indexOf(serialNumber) === -1) {
|
if (found_nano_devices.indexOf(serialNumber) === -1) {
|
||||||
delete this.all_nano_devices[serialNumber]
|
delete this.all_nano_devices[serialNumber]
|
||||||
this.emit('nanodevices:device-detached', serialNumber)
|
this.emit('nanoSerialApi:device-detached', serialNumber)
|
||||||
console.log('detached', serialNumber)
|
console.log('detached', serialNumber)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -53,7 +53,7 @@ class NanoDevices extends EventEmitter {
|
|||||||
if (lines[i].length > 0) {
|
if (lines[i].length > 0) {
|
||||||
if (lines[i].startsWith('{'))
|
if (lines[i].startsWith('{'))
|
||||||
// if its a json object
|
// if its a json object
|
||||||
this.emit('nanodevices:update', serialNumber, lines[i])
|
this.emit('nanoSerialApi:update', serialNumber, lines[i])
|
||||||
else console.log('Device: ' + lines[i]) // otherwise just log it
|
else console.log('Device: ' + lines[i]) // otherwise just log it
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -94,18 +94,18 @@ class NanoDevices extends EventEmitter {
|
|||||||
})
|
})
|
||||||
port.on('error', (err) => {
|
port.on('error', (err) => {
|
||||||
// forward error to FE
|
// forward error to FE
|
||||||
this.emit('nanodevices:error', nano_device.serialNumber, err)
|
this.emit('nanoSerialApi:error', nano_device.serialNumber, err)
|
||||||
})
|
})
|
||||||
port.on('close', (err) => {
|
port.on('close', (err) => {
|
||||||
if (err && err.disconnected) {
|
if (err && err.disconnected) {
|
||||||
// forward close to FE
|
// forward close to FE
|
||||||
this.emit('nanodevices:disconnected', nano_device.serialNumber)
|
this.emit('nanoSerialApi:disconnected', nano_device.serialNumber)
|
||||||
}
|
}
|
||||||
delete this.connected_nano_devices[nano_device.serialNumber!]
|
delete this.connected_nano_devices[nano_device.serialNumber!]
|
||||||
})
|
})
|
||||||
port.on('open', () => {
|
port.on('open', () => {
|
||||||
this.connected_nano_devices[nano_device.serialNumber!] = { port: port }
|
this.connected_nano_devices[nano_device.serialNumber!] = { port: port }
|
||||||
this.emit('nanodevices:connected', nano_device.serialNumber)
|
this.emit('nanoSerialApi:connected', nano_device.serialNumber)
|
||||||
resolve(nano_device.serialNumber)
|
resolve(nano_device.serialNumber)
|
||||||
})
|
})
|
||||||
port.on('data', (data) => {
|
port.on('data', (data) => {
|
||||||
@@ -138,6 +138,6 @@ class NanoDevices extends EventEmitter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const nanodevices = new NanoDevices()
|
const nanoSerialApi = new NanoSerialApi()
|
||||||
|
|
||||||
export default nanodevices
|
export default nanoSerialApi
|
||||||
8
src/preload/index.d.ts
vendored
8
src/preload/index.d.ts
vendored
@@ -1,4 +1,4 @@
|
|||||||
export interface INanoDevicesAPI {
|
export interface INanoSerialApi {
|
||||||
list_devices(): Promise<string[]>
|
list_devices(): Promise<string[]>
|
||||||
connect(deviceid: string): Promise<string>
|
connect(deviceid: string): Promise<string>
|
||||||
disconnect(deviceid: string): Promise<string>
|
disconnect(deviceid: string): Promise<string>
|
||||||
@@ -10,7 +10,7 @@ export interface INanoDevicesAPI {
|
|||||||
save(deviceid: string): Promise<void>
|
save(deviceid: string): Promise<void>
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IElectronAPI {
|
export interface IElectronApi {
|
||||||
platform: NodeJS.Platform
|
platform: NodeJS.Platform
|
||||||
isDevelopment: boolean
|
isDevelopment: boolean
|
||||||
minimizeWindow: () => void
|
minimizeWindow: () => void
|
||||||
@@ -26,7 +26,7 @@ export interface IElectronAPI {
|
|||||||
|
|
||||||
declare global {
|
declare global {
|
||||||
interface Window {
|
interface Window {
|
||||||
nanoDevicesAPI: INanoDevicesAPI
|
nanoSerialApi: INanoSerialApi
|
||||||
electronAPI: IElectronAPI
|
electronApi: IElectronApi
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
import { contextBridge, ipcRenderer } from 'electron'
|
import { contextBridge, ipcRenderer } from 'electron'
|
||||||
|
|
||||||
// expose an API to choose available devices
|
// expose an API to choose available devices
|
||||||
contextBridge.exposeInMainWorld('nanoDevicesAPI', {
|
contextBridge.exposeInMainWorld('nanoSerialApi', {
|
||||||
list_devices() {
|
list_devices() {
|
||||||
return ipcRenderer.invoke('nanodevices:list_devices')
|
return ipcRenderer.invoke('nanoSerialApi:list_devices')
|
||||||
},
|
},
|
||||||
connect(deviceid) {
|
connect(deviceid) {
|
||||||
return ipcRenderer.invoke('nanodevices:connect', deviceid)
|
return ipcRenderer.invoke('nanoSerialApi:connect', deviceid)
|
||||||
},
|
},
|
||||||
disconnect(deviceid) {
|
disconnect(deviceid) {
|
||||||
return ipcRenderer.invoke('nanodevices:disconnect', deviceid)
|
return ipcRenderer.invoke('nanoSerialApi:disconnect', deviceid)
|
||||||
},
|
},
|
||||||
on_event(eventid_filter, callback) {
|
on_event(eventid_filter, callback) {
|
||||||
//console.log('attaching filter for ', eventid_filter)
|
//console.log('attaching filter for ', eventid_filter)
|
||||||
ipcRenderer.on('nanodevices:event', (_event, eventid, deviceid, ...data) => {
|
ipcRenderer.on('nanoSerialApi:event', (_event, eventid, deviceid, ...data) => {
|
||||||
//console.log('Event in ipcRenderer ', eventid, deviceid, data)
|
//console.log('Event in ipcRenderer ', eventid, deviceid, data)
|
||||||
if (eventid_filter == '*' || eventid_filter == eventid) {
|
if (eventid_filter == '*' || eventid_filter == eventid) {
|
||||||
callback(eventid, deviceid, ...data)
|
callback(eventid, deviceid, ...data)
|
||||||
@@ -21,14 +21,14 @@ contextBridge.exposeInMainWorld('nanoDevicesAPI', {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
send(deviceid, obj) {
|
send(deviceid, obj) {
|
||||||
return ipcRenderer.invoke('nanodevices:send', deviceid, JSON.stringify(obj))
|
return ipcRenderer.invoke('nanoSerialApi:send', deviceid, JSON.stringify(obj))
|
||||||
},
|
},
|
||||||
save(deviceid) {
|
save(deviceid) {
|
||||||
return ipcRenderer.invoke('nanodevices:send', deviceid, JSON.stringify({ save: true }))
|
return ipcRenderer.invoke('nanoSerialApi:send', deviceid, JSON.stringify({ save: true }))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
contextBridge.exposeInMainWorld('electronAPI', {
|
contextBridge.exposeInMainWorld('electronApi', {
|
||||||
platform: process.platform,
|
platform: process.platform,
|
||||||
isDevelopment: process.env.NODE_ENV !== 'production',
|
isDevelopment: process.env.NODE_ENV !== 'production',
|
||||||
minimizeWindow: () => ipcRenderer.send('electron:minimizeWindow'),
|
minimizeWindow: () => ipcRenderer.send('electron:minimizeWindow'),
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import Navbar from '@renderer/components/navbar/Navbar.vue'
|
|||||||
import { useStore } from '@renderer/store'
|
import { useStore } from '@renderer/store'
|
||||||
import { useMessageHandlers } from '@renderer/device'
|
import { useMessageHandlers } from '@renderer/device'
|
||||||
|
|
||||||
const { electronAPI, nanoDevicesAPI } = window
|
const { electronApi, nanoSerialApi } = window
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
|
|
||||||
const menuActions = {
|
const menuActions = {
|
||||||
@@ -15,7 +15,7 @@ const menuActions = {
|
|||||||
skin: () => store.switchPreviewDeviceModel()
|
skin: () => store.switchPreviewDeviceModel()
|
||||||
}
|
}
|
||||||
|
|
||||||
electronAPI.onMenu((key) => {
|
electronApi.onMenu((key) => {
|
||||||
console.log('menu', key)
|
console.log('menu', key)
|
||||||
if (menuActions[key]) {
|
if (menuActions[key]) {
|
||||||
menuActions[key]()
|
menuActions[key]()
|
||||||
@@ -26,20 +26,18 @@ store.fetchProfiles() // TODO remove me!
|
|||||||
|
|
||||||
// handle device events
|
// handle device events
|
||||||
const handlers = useMessageHandlers(store)
|
const handlers = useMessageHandlers(store)
|
||||||
nanoDevicesAPI.on_event('device-attached', (evt, deviceid, data) => store.device_attached(deviceid))
|
nanoSerialApi.on_event('device-attached', (evt, deviceid, data) => store.device_attached(deviceid))
|
||||||
nanoDevicesAPI.on_event('device-detached', (evt, deviceid, data) => store.device_detached(deviceid))
|
nanoSerialApi.on_event('device-detached', (evt, deviceid, data) => store.device_detached(deviceid))
|
||||||
nanoDevicesAPI.on_event('device-error', (evt, deviceid, data) => {
|
nanoSerialApi.on_event('device-error', (evt, deviceid, data) => {
|
||||||
/* TODO handle connection errors */
|
/* TODO handle connection errors */
|
||||||
})
|
})
|
||||||
nanoDevicesAPI.on_event('connected', (evt, deviceid, data) => store.device_connected(deviceid))
|
nanoSerialApi.on_event('connected', (evt, deviceid, data) => store.device_connected(deviceid))
|
||||||
nanoDevicesAPI.on_event('disconnected', (evt, deviceid, data) =>
|
nanoSerialApi.on_event('disconnected', (evt, deviceid, data) => store.device_disconnected(deviceid))
|
||||||
store.device_disconnected(deviceid)
|
nanoSerialApi.on_event('update', (evt, deviceid, data) => {
|
||||||
)
|
|
||||||
nanoDevicesAPI.on_event('update', (evt, deviceid, data) => {
|
|
||||||
handlers.handle_message(data)
|
handlers.handle_message(data)
|
||||||
})
|
})
|
||||||
// get list of the currently attached devices
|
// get list of the currently attached devices
|
||||||
nanoDevicesAPI.list_devices().then((devs) => store.init_devices(devs))
|
nanoSerialApi.list_devices().then((devs) => store.init_devices(devs))
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<main class="flex h-screen w-screen select-none flex-col">
|
<main class="flex h-screen w-screen select-none flex-col">
|
||||||
|
|||||||
@@ -86,32 +86,32 @@
|
|||||||
</MenubarMenu>
|
</MenubarMenu>
|
||||||
<MenubarButton
|
<MenubarButton
|
||||||
class="app-titlebar-button"
|
class="app-titlebar-button"
|
||||||
@click="electronAPI.openExternal('https://discord.gg/jgRd77YN5T')"
|
@click="electronApi.openExternal('https://discord.gg/jgRd77YN5T')"
|
||||||
>
|
>
|
||||||
Community
|
Community
|
||||||
</MenubarButton>
|
</MenubarButton>
|
||||||
<MenubarMenu>
|
<MenubarMenu>
|
||||||
<MenubarTrigger class="app-titlebar-button">Help</MenubarTrigger>
|
<MenubarTrigger class="app-titlebar-button">Help</MenubarTrigger>
|
||||||
<MenubarContent>
|
<MenubarContent>
|
||||||
<MenubarItem @click="electronAPI.openExternal('https://github.com/katbinaris/zeroone')"
|
<MenubarItem @click="electronApi.openExternal('https://github.com/katbinaris/zeroone')"
|
||||||
>Software Source</MenubarItem
|
>Software Source</MenubarItem
|
||||||
>
|
>
|
||||||
<MenubarItem
|
<MenubarItem
|
||||||
@click="electronAPI.openExternal('https://github.com/katbinaris/NanoD_RatchetH1')"
|
@click="electronApi.openExternal('https://github.com/katbinaris/NanoD_RatchetH1')"
|
||||||
>Firmware Source</MenubarItem
|
>Firmware Source</MenubarItem
|
||||||
>
|
>
|
||||||
<MenubarItem
|
<MenubarItem
|
||||||
@click="electronAPI.openExternal('https://github.com/katbinaris/Nano_D_PlusPlus')"
|
@click="electronApi.openExternal('https://github.com/katbinaris/Nano_D_PlusPlus')"
|
||||||
>Hardware Source</MenubarItem
|
>Hardware Source</MenubarItem
|
||||||
>
|
>
|
||||||
<MenubarSeparator />
|
<MenubarSeparator />
|
||||||
<MenubarItem
|
<MenubarItem
|
||||||
@click="electronAPI.openExternal('https://github.com/katbinaris/zeroone/issues/new')"
|
@click="electronApi.openExternal('https://github.com/katbinaris/zeroone/issues/new')"
|
||||||
>Report Software Issue</MenubarItem
|
>Report Software Issue</MenubarItem
|
||||||
>
|
>
|
||||||
<MenubarItem
|
<MenubarItem
|
||||||
@click="
|
@click="
|
||||||
electronAPI.openExternal('https://github.com/katbinaris/NanoD_RatchetH1/issues/new')
|
electronApi.openExternal('https://github.com/katbinaris/NanoD_RatchetH1/issues/new')
|
||||||
"
|
"
|
||||||
>Report Device Issue</MenubarItem
|
>Report Device Issue</MenubarItem
|
||||||
>
|
>
|
||||||
@@ -120,13 +120,13 @@
|
|||||||
<p>Software Version: </p>
|
<p>Software Version: </p>
|
||||||
<p>v0.1</p>
|
<p>v0.1</p>
|
||||||
</MenubarItem>
|
</MenubarItem>
|
||||||
<MenubarItem @click="electronAPI.openExternal('https://discord.gg/jgRd77YN5T')"
|
<MenubarItem @click="electronApi.openExternal('https://discord.gg/jgRd77YN5T')"
|
||||||
>Contact Support</MenubarItem
|
>Contact Support</MenubarItem
|
||||||
>
|
>
|
||||||
<template v-if="electronAPI.isDevelopment">
|
<template v-if="electronApi.isDevelopment">
|
||||||
<MenubarSeparator />
|
<MenubarSeparator />
|
||||||
<MenubarItem @click="electronAPI.openDevTools">Developer Tools</MenubarItem>
|
<MenubarItem @click="electronApi.openDevTools">Developer Tools</MenubarItem>
|
||||||
<MenubarItem @click="electronAPI.reload">Reload</MenubarItem>
|
<MenubarItem @click="electronApi.reload">Reload</MenubarItem>
|
||||||
</template>
|
</template>
|
||||||
</MenubarContent>
|
</MenubarContent>
|
||||||
</MenubarMenu>
|
</MenubarMenu>
|
||||||
@@ -145,7 +145,7 @@
|
|||||||
: 'border-2'
|
: 'border-2'
|
||||||
"
|
"
|
||||||
class="app-titlebar-button"
|
class="app-titlebar-button"
|
||||||
@click="nanoDevicesAPI.save(store.connectedId)"
|
@click="nanoSerialApi.save(store.connectedId)"
|
||||||
>
|
>
|
||||||
Save
|
Save
|
||||||
</MenubarButton>
|
</MenubarButton>
|
||||||
@@ -162,21 +162,21 @@
|
|||||||
<button
|
<button
|
||||||
v-if="minimizable"
|
v-if="minimizable"
|
||||||
class="app-titlebar-button flex grow items-center justify-center px-2 hover:text-white"
|
class="app-titlebar-button flex grow items-center justify-center px-2 hover:text-white"
|
||||||
@click="electronAPI.minimizeWindow"
|
@click="electronApi.minimizeWindow"
|
||||||
>
|
>
|
||||||
<Minus class="size-5" />
|
<Minus class="size-5" />
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
v-if="maximizable"
|
v-if="maximizable"
|
||||||
class="app-titlebar-button flex grow items-center justify-center px-2 hover:text-white"
|
class="app-titlebar-button flex grow items-center justify-center px-2 hover:text-white"
|
||||||
@click="electronAPI.toggleMaximizeWindow"
|
@click="electronApi.toggleMaximizeWindow"
|
||||||
>
|
>
|
||||||
<Copy v-if="isMaximized" class="size-4" />
|
<Copy v-if="isMaximized" class="size-4" />
|
||||||
<Square v-else class="mr-0.5 size-3.5" />
|
<Square v-else class="mr-0.5 size-3.5" />
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
class="app-titlebar-button flex grow items-center justify-center px-2 hover:text-white"
|
class="app-titlebar-button flex grow items-center justify-center px-2 hover:text-white"
|
||||||
@click="electronAPI.closeWindow"
|
@click="electronApi.closeWindow"
|
||||||
>
|
>
|
||||||
<X class="mr-0.5 size-5" />
|
<X class="mr-0.5 size-5" />
|
||||||
</button>
|
</button>
|
||||||
@@ -209,9 +209,9 @@ const showDisconnectButton = ref(false)
|
|||||||
|
|
||||||
const isMaximized = ref(false)
|
const isMaximized = ref(false)
|
||||||
|
|
||||||
const { electronAPI, nanoDevicesAPI } = window
|
const { electronApi, nanoSerialApi } = window
|
||||||
|
|
||||||
const isMacOS = electronAPI.platform === 'darwin'
|
const isMacOS = electronApi.platform === 'darwin'
|
||||||
const zoomFactor = ref(1)
|
const zoomFactor = ref(1)
|
||||||
|
|
||||||
const numberOfChanges = ref(27)
|
const numberOfChanges = ref(27)
|
||||||
@@ -225,12 +225,12 @@ onMounted(() => {
|
|||||||
window.addEventListener('resize', () => {
|
window.addEventListener('resize', () => {
|
||||||
zoomFactor.value = window.outerWidth / window.innerWidth
|
zoomFactor.value = window.outerWidth / window.innerWidth
|
||||||
})
|
})
|
||||||
electronAPI.onMaximized((maximized) => {
|
electronApi.onMaximized((maximized) => {
|
||||||
console.log(maximized)
|
console.log(maximized)
|
||||||
isMaximized.value = true
|
isMaximized.value = true
|
||||||
})
|
})
|
||||||
|
|
||||||
electronAPI.onUnmaximized(() => {
|
electronApi.onUnmaximized(() => {
|
||||||
isMaximized.value = false
|
isMaximized.value = false
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ app.use(pinia)
|
|||||||
app.use(i18n)
|
app.use(i18n)
|
||||||
|
|
||||||
// TODO remove this
|
// TODO remove this
|
||||||
window.nanoDevicesAPI.on_event('*', (eventid, deviceid, ...data) => {
|
window.nanoSerialApi.on_event('*', (eventid, deviceid, ...data) => {
|
||||||
console.log('Event on window ', eventid, deviceid, data)
|
console.log('Event on window ', eventid, deviceid, data)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import mockData from '@renderer/data/nanoConfig.json'
|
|||||||
|
|
||||||
// const ajv = new Ajv() // see below
|
// const ajv = new Ajv() // see below
|
||||||
|
|
||||||
const { nanoDevicesAPI } = window
|
const { nanoSerialApi } = window
|
||||||
|
|
||||||
// TODO: Define Profile type
|
// TODO: Define Profile type
|
||||||
|
|
||||||
@@ -216,13 +216,13 @@ export const useStore = defineStore('main', {
|
|||||||
// this.selectedProfile.keys[this.selectedKey].default = color
|
// this.selectedProfile.keys[this.selectedKey].default = color
|
||||||
const props = {}
|
const props = {}
|
||||||
props[`button${this.selectedKey.toUpperCase()}Idle`] = color.rgbNumber()
|
props[`button${this.selectedKey.toUpperCase()}Idle`] = color.rgbNumber()
|
||||||
nanoDevicesAPI.send(this.connectedId, { p: { name: 'Default Profile', ...props } })
|
nanoSerialApi.send(this.connectedId, { p: { name: 'Default Profile', ...props } })
|
||||||
},
|
},
|
||||||
setKeyPressedColor(color) {
|
setKeyPressedColor(color) {
|
||||||
// this.selectedProfile.keys[this.selectedKey].pressed = color
|
// this.selectedProfile.keys[this.selectedKey].pressed = color
|
||||||
const props = {}
|
const props = {}
|
||||||
props[`button${this.selectedKey.toUpperCase()}Press`] = color.rgbNumber()
|
props[`button${this.selectedKey.toUpperCase()}Press`] = color.rgbNumber()
|
||||||
nanoDevicesAPI.send(this.connectedId, { p: { name: 'Default Profile', ...props } })
|
nanoSerialApi.send(this.connectedId, { p: { name: 'Default Profile', ...props } })
|
||||||
},
|
},
|
||||||
|
|
||||||
// devices, device attachment, connection, and disconnection
|
// devices, device attachment, connection, and disconnection
|
||||||
@@ -233,7 +233,7 @@ export const useStore = defineStore('main', {
|
|||||||
// TODO auto-connect to the device
|
// TODO auto-connect to the device
|
||||||
const deviceid = Object.keys(this.devices)[0]
|
const deviceid = Object.keys(this.devices)[0]
|
||||||
console.log('Auto-connecting to device ', deviceid)
|
console.log('Auto-connecting to device ', deviceid)
|
||||||
window.nanoDevicesAPI.connect(deviceid)
|
window.nanoSerialApi.connect(deviceid)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
update_devices(deviceid, attached) {
|
update_devices(deviceid, attached) {
|
||||||
@@ -249,7 +249,7 @@ export const useStore = defineStore('main', {
|
|||||||
if (Object.keys(this.devices).length == 1) {
|
if (Object.keys(this.devices).length == 1) {
|
||||||
// TODO auto-connect to the device
|
// TODO auto-connect to the device
|
||||||
console.log('Auto-connecting to device ', deviceid)
|
console.log('Auto-connecting to device ', deviceid)
|
||||||
window.nanoDevicesAPI.connect(deviceid)
|
window.nanoSerialApi.connect(deviceid)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
device_detached(deviceid) {
|
device_detached(deviceid) {
|
||||||
@@ -265,10 +265,10 @@ export const useStore = defineStore('main', {
|
|||||||
this.connected = true
|
this.connected = true
|
||||||
this.connectedId = deviceid
|
this.connectedId = deviceid
|
||||||
// TODO load profiles from device
|
// TODO load profiles from device
|
||||||
// nanoDevicesAPI.send(deviceid, { profiles: "#all" }) // request profiles
|
// nanoSerialApi.send(deviceid, { profiles: "#all" }) // request profiles
|
||||||
// "Default Profile", for now, is the only profile after the device
|
// "Default Profile", for now, is the only profile after the device
|
||||||
// starts up, so it is also the current (eg. 'selected') profile
|
// starts up, so it is also the current (eg. 'selected') profile
|
||||||
// nanoDevicesAPI.send(deviceid, { p: "Default Profile" }) // request Default Profile
|
// nanoSerialApi.send(deviceid, { p: "Default Profile" }) // request Default Profile
|
||||||
|
|
||||||
// TODO maybe you want to request all the profiles right now?
|
// TODO maybe you want to request all the profiles right now?
|
||||||
// or only on demand?
|
// or only on demand?
|
||||||
|
|||||||
Reference in New Issue
Block a user