Compare commits

...

2 Commits

4 changed files with 22 additions and 13 deletions

11
knob.py
View File

@ -2,6 +2,8 @@ import pygame
import math import math
from .colors import * from .colors import *
FADE_COUNT_DOWN = 150
class Knob: class Knob:
def __init__(self, group, name, radius, position, value = 0): def __init__(self, group, name, radius, position, value = 0):
@ -12,12 +14,13 @@ class Knob:
self.position = position self.position = position
self.value = value self.value = value
self.focused = False self.focused = False
self.fade_count_down = 150 self.count_down = FADE_COUNT_DOWN
self.vanish_label_path = False self.vanish_label_path = False
self.label_path = [] self.label_path = []
def set_value(self, value): def set_value(self, value):
self.value = value self.value = value
self.count_down = FADE_COUNT_DOWN
def set_color(self, color): def set_color(self, color):
self.color = color self.color = color
@ -29,7 +32,7 @@ class Knob:
else: else:
self.focused = False self.focused = False
self.color = color_primary self.color = color_primary
self.fade_count_down = 150 self.count_down = FADE_COUNT_DOWN
if not self.vanish_label_path: self.label_path = [] if not self.vanish_label_path: self.label_path = []
def get_position(self): def get_position(self):
@ -51,9 +54,9 @@ class Knob:
pos = pygame.mouse.get_pos() pos = pygame.mouse.get_pos()
if math.sqrt(math.pow(pos[0]-self.position[0],2) + math.pow(pos[1]-self.position[1],2)) < self.radius: if math.sqrt(math.pow(pos[0]-self.position[0],2) + math.pow(pos[1]-self.position[1],2)) < self.radius:
self.group.set_focused(self) self.group.set_focused(self)
if self.focused: self.fade_count_down -= 1 if self.focused: self.count_down -= 1
if self.fade_count_down == 0: if self.count_down == 0:
self.vanish_label_path = True self.vanish_label_path = True
self.set_focused(False) self.set_focused(False)
pygame.draw.circle(surface, self.color + (self.group.opacity,), self.position, self.radius) pygame.draw.circle(surface, self.color + (self.group.opacity,), self.position, self.radius)

View File

@ -27,10 +27,6 @@ class Knobs:
'Gain' 'Gain'
] ]
self.values = []
for i in range(len(knob_names)):
self.values.append(random.random())
# Create and position the knobs # Create and position the knobs
self.knobs_radius = self.gui.screenW / 25 self.knobs_radius = self.gui.screenW / 25
knobs_spacing = self.knobs_radius * 2 knobs_spacing = self.knobs_radius * 2
@ -39,8 +35,8 @@ class Knobs:
knobs_y = (self.gui.screenH - (self.knobs_radius + knobs_spacing) * 3) / 2 knobs_y = (self.gui.screenH - (self.knobs_radius + knobs_spacing) * 3) / 2
y = knobs_y y = knobs_y
self.knobs = [] self.knobs = []
for i in range(8): for i in range(len(knob_names)):
self.knobs.append(Knob(self, knob_names[i], self.knobs_radius, (x, y), self.values[i])) self.knobs.append(Knob(self, knob_names[i], self.knobs_radius, (x, y), 0))
y += self.knobs_radius + knobs_spacing y += self.knobs_radius + knobs_spacing
if i == 3 or i == 6: if i == 3 or i == 6:
x += self.knobs_radius + knobs_spacing x += self.knobs_radius + knobs_spacing
@ -141,6 +137,10 @@ class Knobs:
if knob is None: if knob is None:
k.vanish_label_path = False k.vanish_label_path = False
def set_value(self, index, value):
self.set_focused(self.knobs[index])
self.knobs[index].set_value(value)
def display(self): def display(self):
if self.fade_in and self.opacity < 255: self.opacity += self.fade_speed if self.fade_in and self.opacity < 255: self.opacity += self.fade_speed
if self.fade_out and self.opacity > 0: self.opacity -= self.fade_speed if self.fade_out and self.opacity > 0: self.opacity -= self.fade_speed

View File

@ -21,7 +21,7 @@ class LozengeButton:
pos = pygame.mouse.get_pos() pos = pygame.mouse.get_pos()
if math.sqrt(math.pow(pos[0] - self.x, 2) + math.pow(pos[1] - self.y, 2)) < self.radius_y: if math.sqrt(math.pow(pos[0] - self.x, 2) + math.pow(pos[1] - self.y, 2)) < self.radius_y:
self.focused = True self.focused = True
self.gui.set_fx_mode(self.name) self.gui.set_fx_mode_by_name(self.name)
if self.focused: if self.focused:
w = 0 w = 0

10
main.py
View File

@ -46,7 +46,7 @@ class GuiMain:
for i in range(len(self.fx_mode_labels)): for i in range(len(self.fx_mode_labels)):
self.knobs.append(Knobs(self)) self.knobs.append(Knobs(self))
self.set_fx_mode(self.fx_mode_labels[self.fx_mode]) self.set_fx_mode(self.fx_mode)
self.mute_button = BinaryButton( self.mute_button = BinaryButton(
self.screen, self.screen,
@ -68,7 +68,13 @@ class GuiMain:
self.clock = pygame.time.Clock() self.clock = pygame.time.Clock()
self.running = True self.running = True
def set_fx_mode(self, mode): def set_knob_value(self, index, value):
self.knobs[self.fx_mode].set_value(index, value)
def set_fx_mode(self, i):
self.set_fx_mode_by_name(self.fx_mode_labels[i])
def set_fx_mode_by_name(self, mode):
self.knobs[self.fx_mode].opacity = 0 self.knobs[self.fx_mode].opacity = 0
self.fx_mode = self.fx_mode_labels.index(mode) self.fx_mode = self.fx_mode_labels.index(mode)
self.knobs[self.fx_mode].set_focused(None) self.knobs[self.fx_mode].set_focused(None)