diff options
Diffstat (limited to 'music_sampler.py')
-rw-r--r-- | music_sampler.py | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/music_sampler.py b/music_sampler.py index 7933d50..6cc49df 100644 --- a/music_sampler.py +++ b/music_sampler.py | |||
@@ -1,30 +1,29 @@ | |||
1 | import sys | 1 | import sys |
2 | import pygame | 2 | import pygame |
3 | import pydub | ||
4 | import helpers | 3 | import helpers |
4 | import threading | ||
5 | 5 | ||
6 | pygame.mixer.pre_init(frequency = 44100) | 6 | pygame.mixer.pre_init(frequency = 44100) |
7 | pygame.init() | 7 | pygame.init() |
8 | 8 | ||
9 | size = width, height = 1024, 600 | 9 | size = width, height = 1024, 600 |
10 | 10 | ||
11 | helpers.draw_lock.acquire() | ||
11 | screen = pygame.display.set_mode(size) | 12 | screen = pygame.display.set_mode(size) |
12 | background = pygame.Surface(screen.get_size()) | 13 | mapping = helpers.Mapping(screen) |
13 | background = background.convert() | ||
14 | background.fill((250, 250, 250)) | ||
15 | 14 | ||
16 | action_surface = pygame.Surface((600, 250)).convert() | 15 | action_surface = pygame.Surface((600, 250)).convert() |
17 | action_surface.fill((0,0,0)) | 16 | action_surface.fill((0,0,0)) |
18 | helpers.parse_config() | 17 | helpers.parse_config(mapping) |
18 | helpers.draw_lock.release() | ||
19 | 19 | ||
20 | for key_name in helpers.Mapping.KEYS: | 20 | mapping.draw() |
21 | key = helpers.Mapping.KEYS[key_name] | ||
22 | key.draw(background) | ||
23 | 21 | ||
24 | screen.blit(background, (0, 0)) | 22 | helpers.draw_lock.acquire() |
25 | screen.blit(action_surface, (10, 330)) | 23 | screen.blit(action_surface, (10, 330)) |
26 | 24 | ||
27 | pygame.display.flip() | 25 | pygame.display.flip() |
26 | helpers.draw_lock.release() | ||
28 | 27 | ||
29 | contexts = [ | 28 | contexts = [ |
30 | 'normal' | 29 | 'normal' |
@@ -34,6 +33,7 @@ context = 'normal' | |||
34 | 33 | ||
35 | while 1: | 34 | while 1: |
36 | event = pygame.event.wait() | 35 | event = pygame.event.wait() |
36 | |||
37 | if event.type == pygame.QUIT or ( | 37 | if event.type == pygame.QUIT or ( |
38 | event.type == pygame.KEYDOWN and | 38 | event.type == pygame.KEYDOWN and |
39 | event.mod == 4160 and | 39 | event.mod == 4160 and |
@@ -43,11 +43,11 @@ while 1: | |||
43 | 43 | ||
44 | if context == 'normal': | 44 | if context == 'normal': |
45 | if event.type == pygame.KEYDOWN: | 45 | if event.type == pygame.KEYDOWN: |
46 | key = helpers.Key.find_by_key_num(event.key) | 46 | key = mapping.find_by_key_num(event.key) |
47 | if key is not None: | 47 | if key is not None: |
48 | key.do_actions() | 48 | threading.Thread(target=key.do_actions).start() |
49 | elif event.type == pygame.MOUSEBUTTONUP: | 49 | elif event.type == pygame.MOUSEBUTTONUP: |
50 | key = helpers.Key.find_by_collidepoint(pygame.mouse.get_pos()) | 50 | key = mapping.find_by_collidepoint(pygame.mouse.get_pos()) |
51 | if key is not None: | 51 | if key is not None: |
52 | key.list_actions(action_surface) | 52 | key.list_actions(action_surface) |
53 | 53 | ||