FIX: Nanodevices
+ add key light config
This commit is contained in:
@@ -45,7 +45,7 @@ class NanoDevices extends EventEmitter {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
_handle_data(connected_port, data) {
|
_handle_data(connected_port, data, serialNumber) {
|
||||||
connected_port.data += data
|
connected_port.data += data
|
||||||
const lines = connected_port.data.split('\n')
|
const lines = connected_port.data.split('\n')
|
||||||
if (lines.length > 1) {
|
if (lines.length > 1) {
|
||||||
@@ -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', connected_port.port.serialNumber, lines[i])
|
this.emit('nanodevices:update', serialNumber, lines[i])
|
||||||
else console.log('Device: ' + lines[i]) // otherwise just log it
|
else console.log('Device: ' + lines[i]) // otherwise just log it
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -110,7 +110,7 @@ class NanoDevices extends EventEmitter {
|
|||||||
})
|
})
|
||||||
port.on('data', (data) => {
|
port.on('data', (data) => {
|
||||||
const connected_port = this.connected_nano_devices[nano_device.serialNumber!]
|
const connected_port = this.connected_nano_devices[nano_device.serialNumber!]
|
||||||
this._handle_data(connected_port, data)
|
this._handle_data(connected_port, data, nano_device.serialNumber)
|
||||||
})
|
})
|
||||||
port.open((err) => {
|
port.open((err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
|||||||
@@ -97,8 +97,8 @@ app.whenReady().then(() => {
|
|||||||
|
|
||||||
ipcMain.handle('nanodevices:list_devices', () => nanodevices.list_devices())
|
ipcMain.handle('nanodevices:list_devices', () => nanodevices.list_devices())
|
||||||
ipcMain.handle('nanodevices:connect', (event, deviceid) => nanodevices.connect(deviceid))
|
ipcMain.handle('nanodevices:connect', (event, deviceid) => nanodevices.connect(deviceid))
|
||||||
ipcMain.handle('nanodevices:disconnect', nanodevices.disconnect)
|
ipcMain.handle('nanodevices:disconnect', () => nanodevices.disconnect)
|
||||||
ipcMain.handle('nanodevices:send', nanodevices.send)
|
ipcMain.handle('nanodevices:send', (event, ...data) => nanodevices.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', () => {
|
||||||
|
|||||||
@@ -8,7 +8,10 @@ import { Palette } from 'lucide-vue-next'
|
|||||||
import ConfigSection from '@renderer/components/common/ConfigSection.vue'
|
import ConfigSection from '@renderer/components/common/ConfigSection.vue'
|
||||||
import PaletteInput from '@renderer/components/common/PaletteInput.vue'
|
import PaletteInput from '@renderer/components/common/PaletteInput.vue'
|
||||||
import Color from 'color'
|
import Color from 'color'
|
||||||
import { ref } from 'vue'
|
import { ref, watch } from 'vue'
|
||||||
|
import { useStore } from '@renderer/store'
|
||||||
|
|
||||||
|
const store = useStore()
|
||||||
|
|
||||||
const keyColors = ref({
|
const keyColors = ref({
|
||||||
default: {
|
default: {
|
||||||
@@ -20,4 +23,13 @@ const keyColors = ref({
|
|||||||
color: Color('#d0078f')
|
color: Color('#d0078f')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
watch(
|
||||||
|
keyColors,
|
||||||
|
(newVal) => {
|
||||||
|
store.setKeyDefaultColor(newVal.default.color)
|
||||||
|
store.setKeyPressedColor(newVal.pressed.color)
|
||||||
|
},
|
||||||
|
{ deep: true }
|
||||||
|
)
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
35
src/renderer/src/data/hwProfile.json
Normal file
35
src/renderer/src/data/hwProfile.json
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"id": 0,
|
||||||
|
"name": "Default Profile",
|
||||||
|
"desc": "",
|
||||||
|
"profileTag": "",
|
||||||
|
"profileType": 0,
|
||||||
|
"profile_type": 0,
|
||||||
|
"position_num": 12,
|
||||||
|
"attract_distance": 20,
|
||||||
|
"feedback_strength": 6,
|
||||||
|
"bounce_strength": 3,
|
||||||
|
"haptic_click_strength": 6,
|
||||||
|
"output_ramp": 10000,
|
||||||
|
"ledEnable": true,
|
||||||
|
"ledBrightness": 100,
|
||||||
|
"ledMode": 0,
|
||||||
|
"pointer": 16777215,
|
||||||
|
"primary": 32768,
|
||||||
|
"secondary": 16753920,
|
||||||
|
"buttonAIdle": 16562691,
|
||||||
|
"buttonBIdle": 16562691,
|
||||||
|
"buttonCIdle": 16562691,
|
||||||
|
"buttonDIdle": 16562691,
|
||||||
|
"buttonAPress": 16516075,
|
||||||
|
"buttonBPress": 16516075,
|
||||||
|
"buttonCPress": 16516075,
|
||||||
|
"buttonDPress": 16516075,
|
||||||
|
"internalMacro": false,
|
||||||
|
"knobMap": "1016001255",
|
||||||
|
"switchA": "1016001255",
|
||||||
|
"switchB": "214567",
|
||||||
|
"switchC": "0",
|
||||||
|
"switchD": "0",
|
||||||
|
"guiEnable": false
|
||||||
|
}
|
||||||
@@ -12,6 +12,8 @@ import mockData from '@renderer/data/nanoConfig.json'
|
|||||||
|
|
||||||
// const ajv = new Ajv() // see below
|
// const ajv = new Ajv() // see below
|
||||||
|
|
||||||
|
const { nanoDevicesAPI } = window
|
||||||
|
|
||||||
export const useStore = defineStore('main', {
|
export const useStore = defineStore('main', {
|
||||||
state: () => {
|
state: () => {
|
||||||
return {
|
return {
|
||||||
@@ -202,6 +204,18 @@ export const useStore = defineStore('main', {
|
|||||||
cycleScreenOrientation() {
|
cycleScreenOrientation() {
|
||||||
this.screenOrientation = (this.screenOrientation + 90) % 360
|
this.screenOrientation = (this.screenOrientation + 90) % 360
|
||||||
},
|
},
|
||||||
|
setKeyDefaultColor(color) {
|
||||||
|
// this.selectedProfile.keys[this.selectedKey].default = color
|
||||||
|
const props = {}
|
||||||
|
props[`button${this.selectedKey.toUpperCase()}Idle`] = color.rgbNumber()
|
||||||
|
nanoDevicesAPI.send(this.connectedId, { p: { name: 'Default Profile', ...props } })
|
||||||
|
},
|
||||||
|
setKeyPressedColor(color) {
|
||||||
|
// this.selectedProfile.keys[this.selectedKey].pressed = color
|
||||||
|
const props = {}
|
||||||
|
props[`button${this.selectedKey.toUpperCase()}Press`] = color.rgbNumber()
|
||||||
|
nanoDevicesAPI.send(this.connectedId, { p: { name: 'Default Profile', ...props } })
|
||||||
|
},
|
||||||
|
|
||||||
// devices, device attachment, connection, and disconnection
|
// devices, device attachment, connection, and disconnection
|
||||||
init_devices(ids) {
|
init_devices(ids) {
|
||||||
|
|||||||
Reference in New Issue
Block a user