ADD: Zero/One skin select
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 788 KiB After Width: | Height: | Size: 788 KiB |
|
Before Width: | Height: | Size: 776 KiB After Width: | Height: | Size: 776 KiB |
|
Before Width: | Height: | Size: 374 KiB After Width: | Height: | Size: 374 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
@@ -2,7 +2,8 @@
|
|||||||
<div class="aspect-[800/1100]">
|
<div class="aspect-[800/1100]">
|
||||||
<div
|
<div
|
||||||
class="bg-contain bg-top bg-no-repeat h-full w-full relative"
|
class="bg-contain bg-top bg-no-repeat h-full w-full relative"
|
||||||
:style="{backgroundImage: `linear-gradient(to bottom, black, rgba(0,0,0,0.2) 12%, rgba(0,0,0,0.3) 95%, black), url(${RenderNano})`}">
|
:style="{backgroundImage: `linear-gradient(to bottom, black, rgba(0,0,0,0.25) 12%, rgba(0,0,0,0.35) 95%, black), url(${previewDeviceImage})`,
|
||||||
|
backgroundBlendMode: 'multiply'}">
|
||||||
<Transition name="fade">
|
<Transition name="fade">
|
||||||
<div v-if="store.connected" class="px-10 h-12 flex justify-between items-center">
|
<div v-if="store.connected" class="px-10 h-12 flex justify-between items-center">
|
||||||
<h2>
|
<h2>
|
||||||
@@ -56,7 +57,7 @@
|
|||||||
<Transition name="fade-delayed">
|
<Transition name="fade-delayed">
|
||||||
<DeviceKeys
|
<DeviceKeys
|
||||||
v-if="store.connected"
|
v-if="store.connected"
|
||||||
class="absolute w-[72.7%] top-[77.2%] gap-[2.8%] left-0 right-0 mx-auto"
|
class="absolute w-[72.7%] top-[77.5%] gap-[2.2%] left-0 right-0 mx-auto"
|
||||||
:selected="store.selectedFeature === 'key' ? store.selectedKey : ''"
|
:selected="store.selectedFeature === 'key' ? store.selectedKey : ''"
|
||||||
@select="store.selectKey" />
|
@select="store.selectKey" />
|
||||||
</Transition>
|
</Transition>
|
||||||
@@ -64,7 +65,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import RenderNano from '@/assets/images/renderNano.png'
|
import RenderNanoOne from '@/assets/images/renderNanoOneTransparent.png'
|
||||||
|
import RenderNanoZero from '@/assets/images/renderNanoZeroTransparent.png'
|
||||||
import LogoMidi from '@/assets/logos/logoMidi.svg'
|
import LogoMidi from '@/assets/logos/logoMidi.svg'
|
||||||
import DeviceBar from '@/components/device/DeviceBar.vue'
|
import DeviceBar from '@/components/device/DeviceBar.vue'
|
||||||
import { useStore } from '@/store'
|
import { useStore } from '@/store'
|
||||||
@@ -80,6 +82,13 @@ const barValue = computed(() => value.value / 127 * 100)
|
|||||||
|
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
|
|
||||||
|
const previewDeviceImages = {
|
||||||
|
nanoOne: RenderNanoOne,
|
||||||
|
nanoZero: RenderNanoZero,
|
||||||
|
}
|
||||||
|
|
||||||
|
const previewDeviceImage = computed(() => previewDeviceImages[store.previewDeviceModel || 'nanoOne'])
|
||||||
|
|
||||||
const targetValue = ref(69)
|
const targetValue = ref(69)
|
||||||
const animateValue = () => {
|
const animateValue = () => {
|
||||||
targetValue.value = Math.floor(Math.random() * 127)
|
targetValue.value = Math.floor(Math.random() * 127)
|
||||||
|
|||||||
@@ -43,6 +43,10 @@
|
|||||||
<MenubarShortcut>⌘N</MenubarShortcut>
|
<MenubarShortcut>⌘N</MenubarShortcut>
|
||||||
</MenubarItem>
|
</MenubarItem>
|
||||||
<MenubarSeparator />
|
<MenubarSeparator />
|
||||||
|
<MenubarItem @click="store.switchPreviewDeviceModel">
|
||||||
|
Skin: {{ previewDeviceNames[store.previewDeviceModel || 'nanoOne'] }}
|
||||||
|
</MenubarItem>
|
||||||
|
<MenubarSeparator />
|
||||||
<MenubarItem>{{ $t('navbar.device.preferences') }}
|
<MenubarItem>{{ $t('navbar.device.preferences') }}
|
||||||
<MenubarShortcut>⌘,</MenubarShortcut>
|
<MenubarShortcut>⌘,</MenubarShortcut>
|
||||||
</MenubarItem>
|
</MenubarItem>
|
||||||
@@ -136,6 +140,11 @@ const { electron } = window
|
|||||||
const isMacOS = electron?.platform === 'darwin'
|
const isMacOS = electron?.platform === 'darwin'
|
||||||
const zoomFactor = ref(1)
|
const zoomFactor = ref(1)
|
||||||
|
|
||||||
|
const previewDeviceNames = ref({
|
||||||
|
nanoOne: 'One',
|
||||||
|
nanoZero: 'Zero',
|
||||||
|
})
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
window.addEventListener('resize', () => {
|
window.addEventListener('resize', () => {
|
||||||
zoomFactor.value = window.outerWidth / window.innerWidth
|
zoomFactor.value = window.outerWidth / window.innerWidth
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<div class="flex justify-center">
|
<div class="flex justify-center">
|
||||||
<div
|
<div
|
||||||
class="flex bg-cover mb-6 w-72 aspect-square"
|
class="flex bg-cover mb-6 w-72 aspect-square"
|
||||||
style="background-image: url(../../assets/icons/xl-bg-ico.svg)">
|
style="background-image: url(../../assets/old/xl-bg-ico.svg)">
|
||||||
<div class="flex flex-col w-full justify-center m-9 rounded-full overflow-hidden">
|
<div class="flex flex-col w-full justify-center m-9 rounded-full overflow-hidden">
|
||||||
<div class="self-center w-8 mb-1 opacity-50">
|
<div class="self-center w-8 mb-1 opacity-50">
|
||||||
<img src="../../assets/logos/logoMidi.svg" alt="midi-logo">
|
<img src="../../assets/logos/logoMidi.svg" alt="midi-logo">
|
||||||
@@ -27,5 +27,5 @@
|
|||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import DeviceBar from '@/components/device/DeviceBar.vue'
|
import DeviceBar from '@/components/device/DeviceBar.vue'
|
||||||
import DeviceBackground from '@/assets/icons/xl-bg-ico.svg'
|
import DeviceBackground from '@/assets/old/xl-bg-ico.svg'
|
||||||
</script>
|
</script>
|
||||||
@@ -39,6 +39,7 @@ export const useStore = defineStore('main', {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
previewDeviceModel: 'nanoOne',
|
||||||
}
|
}
|
||||||
}, getters: {
|
}, getters: {
|
||||||
profiles: (state) => state.profileCategories.flatMap(c => c.profiles),
|
profiles: (state) => state.profileCategories.flatMap(c => c.profiles),
|
||||||
@@ -153,6 +154,9 @@ export const useStore = defineStore('main', {
|
|||||||
setConnected(connected) {
|
setConnected(connected) {
|
||||||
this.connected = connected
|
this.connected = connected
|
||||||
},
|
},
|
||||||
|
switchPreviewDeviceModel() {
|
||||||
|
this.previewDeviceModel = this.previewDeviceModel === 'nanoOne' ? 'nanoZero' : 'nanoOne'
|
||||||
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||