From 470bff63e7f2a814495b34fc5248fe48d0d31bfa Mon Sep 17 00:00:00 2001 From: IgorTimofeev Date: Sat, 30 Dec 2023 21:56:40 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9A=D0=B0=D0=BA=D0=B8=D0=B5=20=D0=B6=D0=B5?= =?UTF-8?q?=20=D0=9E=D0=A5=D0=A3=D0=95=D0=9D=D0=9D=D0=AB=D0=95=20=D0=BA?= =?UTF-8?q?=D1=80=D1=83=D1=82=D0=B8=D0=BB=D0=BE=D1=87=D0=BA=D0=B8,=20?= =?UTF-8?q?=D0=BC=D0=BC=D0=BC=D0=BC=D0=BC=D0=BC=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Pioneer.app/Images/Background.pic | Bin 14264 -> 14112 bytes Applications/Pioneer.app/Images/Knob1.pic | Bin 0 -> 149 bytes Applications/Pioneer.app/Images/Knob2.pic | Bin 0 -> 149 bytes Applications/Pioneer.app/Images/Knob3.pic | Bin 0 -> 149 bytes Applications/Pioneer.app/Images/Knob4.pic | Bin 0 -> 143 bytes Applications/Pioneer.app/Images/Knob5.pic | Bin 0 -> 149 bytes Applications/Pioneer.app/Images/Knob6.pic | Bin 0 -> 149 bytes Applications/Pioneer.app/Images/Knob7.pic | Bin 0 -> 139 bytes Applications/Pioneer.app/Images/Knob8.pic | Bin 0 -> 159 bytes Applications/Pioneer.app/Main.lua | 131 ++++++++++++------ Installer/Files.cfg | 10 +- 11 files changed, 101 insertions(+), 40 deletions(-) create mode 100644 Applications/Pioneer.app/Images/Knob1.pic create mode 100644 Applications/Pioneer.app/Images/Knob2.pic create mode 100644 Applications/Pioneer.app/Images/Knob3.pic create mode 100644 Applications/Pioneer.app/Images/Knob4.pic create mode 100644 Applications/Pioneer.app/Images/Knob5.pic create mode 100644 Applications/Pioneer.app/Images/Knob6.pic create mode 100644 Applications/Pioneer.app/Images/Knob7.pic create mode 100644 Applications/Pioneer.app/Images/Knob8.pic diff --git a/Applications/Pioneer.app/Images/Background.pic b/Applications/Pioneer.app/Images/Background.pic index 182aae3cc8380ce1ae6948108f444c294820f97d..6db89aa43914506d83dd0f7df32e1bfd8abc0321 100644 GIT binary patch delta 3842 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 diff --git a/Applications/Pioneer.app/Images/Knob1.pic b/Applications/Pioneer.app/Images/Knob1.pic new file mode 100644 index 0000000000000000000000000000000000000000..d25fa4733d39039b0e0abbca0dc1ba6ec04c589f GIT binary patch literal 149 zcmeZw_H^T5VPgEx!18F(eg*~x4F)C#hDVDVfXrYZW>NqW42(cQMiwTZnuQHOE=Yp; z(ZV($6#|rFVPIf;v}hlL7MREQXu(vV3XlZzqXn~p28IB2Gd)_+4P*ubnLyDUK&B>8 T0mGvO9Z*rAwi!U_RUo?no)#X) literal 0 HcmV?d00001 diff --git a/Applications/Pioneer.app/Images/Knob2.pic b/Applications/Pioneer.app/Images/Knob2.pic new file mode 100644 index 0000000000000000000000000000000000000000..4a1af09d7fe76974a0d312f89d98575093f1eeab GIT binary patch literal 149 zcmXYpy$ypv429pB6JiWX!WxkxrJ{g=pot=-p-*!_mkFp~7cUaNL=?8)pI>vm-->AA ztLXDCsgg;)^uU&}lBIwcqLG<;=+DS}dT=_tDCItHs{br_8c2LFGEd_P&C`qSmLk*@ Qcp)H9&r{{?4eSWm0l^X<00000 literal 0 HcmV?d00001 diff --git a/Applications/Pioneer.app/Images/Knob3.pic b/Applications/Pioneer.app/Images/Knob3.pic new file mode 100644 index 0000000000000000000000000000000000000000..007e5de94db4f98b541faa66c7281c2706ba3a4c GIT binary patch literal 149 zcmXYpu?@md3`Fnye<8-81lB-8qM}F!N`;UZfyN0`Oh5&@+#>KmDQutbp6<9i?3XRd zN6ph)(pn+;HXu7DRxB0F(gJ22cz;3lc;fVAO80&ID9)VSa9-%{D5}mU Pasw;pd3Is1$Q~fR(Rm*; literal 0 HcmV?d00001 diff --git a/Applications/Pioneer.app/Images/Knob4.pic b/Applications/Pioneer.app/Images/Knob4.pic new file mode 100644 index 0000000000000000000000000000000000000000..763adf7641e152f36436f8e580ae95bd6b438685 GIT binary patch literal 143 zcmX9%xebIs3>V5hN43qfK?rpz*k79(GbjvaAE$UIa#1jN)#h9yWm#(^tXO@dKBp& Q!JAaj$G@uDEVwCP2e&yNBLDyZ literal 0 HcmV?d00001 diff --git a/Applications/Pioneer.app/Images/Knob6.pic b/Applications/Pioneer.app/Images/Knob6.pic new file mode 100644 index 0000000000000000000000000000000000000000..76d2ee11e9a8f20753696caa2be8220e7d349e1b GIT binary patch literal 149 zcmW-ZF%H5&3uL%xB8L`9K2C{=_+O_jzMy1al2{^F0oTngLc-PPXC*UK?m z`YFfymDI_kcunBISj$pEOxehkiMJX}l$kT)W$6&bk++(R^`m|_Quq_KW}5H^-2+A7 R8$6*Z{0?rlK70X3(Eh_VA0_|* literal 0 HcmV?d00001 diff --git a/Applications/Pioneer.app/Images/Knob7.pic b/Applications/Pioneer.app/Images/Knob7.pic new file mode 100644 index 0000000000000000000000000000000000000000..7ad06484968d7537c9b49b18303ae0fa4de6d46d GIT binary patch literal 139 zcmXYpu?@md3`Eb)kHi=$!yHIRsVI_xeicQcrlN6xiV5i0#fy*^iNf~t-PxDZa6S~b zpGrQyl6tw6&kBx|cQhHI6(_S+*4=1wof#8ek=l$G@>^!+88>)$nv5$SN6x_yctlmk M@>eb64o(Do19tEn5dZ)H literal 0 HcmV?d00001 diff --git a/Applications/Pioneer.app/Images/Knob8.pic b/Applications/Pioneer.app/Images/Knob8.pic new file mode 100644 index 0000000000000000000000000000000000000000..94be986a4f12f1c03795a68d232a04116b3e9387 GIT binary patch literal 159 zcmXYqF%H5&3&3?T W!k3;u;1k@|ob&l_iQU10h4=zJY$0s` literal 0 HcmV?d00001 diff --git a/Applications/Pioneer.app/Main.lua b/Applications/Pioneer.app/Main.lua index ab0acad9..386f458d 100644 --- a/Applications/Pioneer.app/Main.lua +++ b/Applications/Pioneer.app/Main.lua @@ -22,12 +22,14 @@ if filesystem.exists(configPath) then -- Older versions support config.timeMode = config.timeMode or 0 + config.jogSpeed = config.jogSpeed or 0 else config = { tapes = { }, - timeMode = 0 + timeMode = 0, + jogSpeed = 0 } end @@ -222,18 +224,32 @@ for i = 1, 12 do jogImages[i] = loadImage("Jog" .. i) end +local knobImages = {} + +for i = 1, 8 do + knobImages[i] = loadImage("Knob" .. i) +end + local jogIndex = 1 +local jogIncrementSpeedMin = 0.05 +local jogIncrementSpeedMax = 2 +local jogIncrementUptime = 0 local function incrementJogIndex(value) jogIndex = jogIndex + value if jogIndex > #jogImages then jogIndex = 1 + elseif jogIndex < 1 then jogIndex = #jogImages end end +local function invalidateJogIncrementUptime(uptime) + jogIncrementUptime = uptime + (1 - speedSlider.value) * (jogIncrementSpeedMax - jogIncrementSpeedMin) +end + local function displayDrawProgressBar(x, y, width, progress) local progressActiveWidth = math.floor(progress * width) @@ -367,6 +383,7 @@ powerButton.eventHandler = function(workspace, powerButton, e1) -- Stopping playback if powerButton.pressed then jogIndex = 1 + else for i = 1, #tapes do component.invoke(tapes[i].address, "stop") @@ -396,7 +413,6 @@ local function newImageButton(x, y, width, height, name) return button end - -------------------------------- Speed slider ------------------------------------------------ local speedSliderImage = loadImage("SpeedSlider") @@ -732,39 +748,28 @@ end -------------------------------- Jog ------------------------------------------------ --- Center 40, 32 local jog = window:addChild(GUI.object(15, 20, 52, 26)) local jogAngleOld --- local jogText = "" - --- jog.draw = function() --- screen.drawText(jog.x, jog.y, 0x00FF00, jogText) --- end - jog.eventHandler = function(workspace, jog, e1, e2, e3, e4, ...) if not tape or not powerButton.pressed then return end - if e1 == "touch" then - - - elseif e1 == "drag" then + if e1 == "drag" then local angleNew = math.atan2( e3 - jog.x - jog.width / 2, e4 - jog.y - jog.height / 2 ) if jogAngleOld then - local angleDelta = jogAngleOld - angleNew - local bytesPerRadian = 1 * sampleRate - local seek = bytesPerRadian * angleDelta + local direction = jogAngleOld - angleNew >= 0 and 1 or -1 - -- jogText = "delta: " .. math.deg(angleDelta) .. ", seek: " .. seek + incrementJogIndex(direction) + invalidateJogIncrementUptime(computer.uptime()) - incrementJogIndex(angleDelta >= 0 and 1 or -1) - invoke("seek", seek) + -- Min seek speed is 100 msec & max is 10 sec + invoke("seek", math.floor((0.1 + (10 * (1 - config.jogSpeed))) * sampleRate * direction)) workspace:draw() end @@ -776,6 +781,66 @@ jog.eventHandler = function(workspace, jog, e1, e2, e3, e4, ...) end end +-------------------------------- Knobs ------------------------------------------------ + +local function knobDraw(knob) + screen.drawImage(knob.x, knob.y, knobImages[1 + math.floor(knob.value * (#knobImages - 1))]) +end + +local function knobEventHandler(workspace, knob, e1, e2, e3, e4, e5, ...) + local function increment(upper) + local speed = 0.1 + + knob.value = math.max(0, math.min(1, knob.value + (upper and speed or -speed))) + + if knob.onValueChanged then + knob.onValueChanged(knob) + end + + workspace:draw() + end + + if e1 == "touch" then + knob.touchX, knob.touchY = e3, e4 + + elseif e1 == "drag" and knob.touchX then + local dx, dy = e3 - knob.touchX, e4 - knob.touchY + knob.touchX, knob.touchY = e3, e4 + + increment((math.abs(dx) > math.abs(dy) and dx or dy) >= 0) + + elseif e1 == "drop" then + knob.touchX, knob.touchY = nil, nil + + elseif e1 == "scroll" then + increment(e5 >= 0) + end +end + +local function newKnob(x, y, value) + local knob = GUI.object(x, y, 5, 3) + + knob.value = value + knob.draw = knobDraw + knob.eventHandler = knobEventHandler + + return knob +end + +-- Jog speed +local jogSpeedKnob = window:addChild(newKnob(61, 21, config.jogSpeed)) + +jogSpeedKnob.onValueChanged = function() + config.jogSpeed = jogSpeedKnob.value + saveConfig() +end + +-- Speed adjust +local speedAdjustKnob = window:addChild(newKnob(72, 12, 0)) + +-- Release start +local releaseStartKnob = window:addChild(newKnob(72, 16, 0)) + -------------------------------- Pref/next tape button ------------------------------------------------ local tapePrevButton = window:addChild(newRoundMiniButton(2, 30, 0x2D2D2D, 0xFFB600, 0x0F0F0F, 0xCC9200, "<<")) @@ -1147,11 +1212,7 @@ tempoButton.onTouch = function() saveConfig() end --------------------------------- Events ------------------------------------------------ - -local jogIncrementSpeedMin = 0.05 -local jogIncrementSpeedMax = 1 -local jogIncrementUptime = 0 +-------------------------------- Cyka ------------------------------------------------ local overrideWindowEventHandler = window.eventHandler @@ -1167,12 +1228,12 @@ window.eventHandler = function(workspace, window, e1, e2, e3, ...) local shouldDraw = false local isPlaying = invoke("getState") == "PLAYING" - local position = invoke("getPosition") local uptime = computer.uptime() -- Cheching if play button state was changed if isPlaying == playButton.blinking then playButton.blinking = not playButton.blinking + invalidateJogIncrementUptime(uptime) shouldDraw = true end @@ -1184,19 +1245,14 @@ window.eventHandler = function(workspace, window, e1, e2, e3, ...) shouldDraw = true end - if isPlaying then - -- Rotating jog - if uptime > jogIncrementUptime then - incrementJogIndex(1) - - jogIncrementUptime = uptime + (1 - speedSlider.value) * (jogIncrementSpeedMax - jogIncrementSpeedMin) - shouldDraw = true - end - else - jogIncrementUptime = uptime + (1 - speedSlider.value) * (jogIncrementSpeedMax - jogIncrementSpeedMin) + -- Jog + if isPlaying and uptime > jogIncrementUptime then + incrementJogIndex(1) + invalidateJogIncrementUptime(uptime) + shouldDraw = true end - -- Blink + -- Blink state if uptime > blinkUptime then blinkUptime = uptime + blinkInterval blinkState = not blinkState @@ -1209,9 +1265,6 @@ window.eventHandler = function(workspace, window, e1, e2, e3, ...) end end - --------------------------------- Cyka ------------------------------------------------ - updateTapes() workspace:draw() \ No newline at end of file diff --git a/Installer/Files.cfg b/Installer/Files.cfg index 60f9b035..5a95ca0c 100644 --- a/Installer/Files.cfg +++ b/Installer/Files.cfg @@ -671,7 +671,15 @@ "Applications/Pioneer.app/Images/Jog9.pic", "Applications/Pioneer.app/Images/Jog10.pic", "Applications/Pioneer.app/Images/Jog11.pic", - "Applications/Pioneer.app/Images/Jog12.pic" + "Applications/Pioneer.app/Images/Jog12.pic", + "Applications/Pioneer.app/Images/Knob1.pic", + "Applications/Pioneer.app/Images/Knob2.pic", + "Applications/Pioneer.app/Images/Knob3.pic", + "Applications/Pioneer.app/Images/Knob4.pic", + "Applications/Pioneer.app/Images/Knob5.pic", + "Applications/Pioneer.app/Images/Knob6.pic", + "Applications/Pioneer.app/Images/Knob7.pic", + "Applications/Pioneer.app/Images/Knob8.pic" }, wallpapers = { "Pictures/AhsokaTano.pic",