Created
May 17, 2011 13:55
-
-
Save georgi/976507 to your computer and use it in GitHub Desktop.
Exception ValueError
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import kivy | |
kivy.require('1.0.0') | |
from kivy.lang import Builder | |
from kivy.app import App | |
from kivy.clock import Clock | |
from kivy.core.image import Image | |
from kivy.graphics import * | |
from kivy.uix.widget import Widget | |
from kivy.uix.label import Label | |
from kivy.uix.slider import Slider | |
from kivy.properties import ObjectProperty, NumericProperty | |
from kivy.config import Config | |
from kivy.core.text import Label as CoreLabel | |
class AbstractMixer(Slider): | |
def __init__(self): | |
super(AbstractMixer, self).__init__(min = 0, max = 1) | |
self.orientation = 'vertical' | |
self.track_meter = 0 | |
def set_volume(self, value): | |
self.value = value | |
class TrackMixer(AbstractMixer): | |
def __init__(self, track): | |
super(TrackMixer, self).__init__() | |
self.track = track | |
class VoidnoisePanel(Widget): | |
def __init__(self, **kwargs): | |
super(VoidnoisePanel, self).__init__(**kwargs) | |
self.col_width = Config.getint('graphics', 'width') / 13.0 | |
self.row_height = Config.getint('graphics', 'height') / 13.0 | |
self.row_pos = 0 | |
self.visible_cols = 10 | |
self.visible_rows = 10 | |
self.display_name = None | |
self.display_label = None | |
self.track_max = 64 | |
self.track_offset = 0 | |
self.row_offset = 0 | |
self.font_size = self.col_width / 10 | |
self.show_master = False | |
self.show_return = False | |
def track_range(self): | |
return range(self.track_max) | |
def trigger_update(self, *largs): | |
Clock.unschedule(self.update) | |
Clock.schedule_once(self.update, -1) | |
def update(self, *largs): | |
pass | |
def layout(self): | |
self.x = self.col_width * 3 | |
self.y = self.row_pos * self.row_height | |
self.width = self.col_width * self.visible_cols | |
self.height = self.row_height * self.visible_rows | |
class MixerPanel(VoidnoisePanel): | |
def __init__(self, **kwargs): | |
super(MixerPanel, self).__init__(**kwargs) | |
self.mixers = [] | |
self.bind(pos = self.update, size = self.update) | |
def set_row_offset(self, row): | |
pass | |
def add_mixer(self, mixer): | |
self.mixers.append(mixer) | |
self.add_widget(mixer) | |
def update(self, *args): | |
for mixer in self.mixers: | |
self.remove_widget(mixer) | |
for index in range(self.visible_cols): | |
mixer = self.mixer_for(index) | |
if mixer != None: | |
mixer.pos = (self.x + index * self.col_width, self.y) | |
mixer.size = (self.col_width, self.height) | |
self.add_widget(mixer) | |
def track_range(self): | |
return range(self.track_max) | |
class VolumePanel(MixerPanel): | |
def __init__(self): | |
super(VolumePanel, self).__init__() | |
for track in self.track_range(): | |
self.add_mixer(TrackMixer(track)) | |
self.update() | |
def mixer_for(self, index): | |
return self.mixers[index + self.track_offset] | |
class AppStarter(App): | |
def build(self): | |
panel = VolumePanel() | |
panel.canvas.clear() | |
panel.update() | |
return panel | |
if __name__ in ('__main__', '__android__'): | |
app = AppStarter() | |
app.run() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment