Skip to content

Instantly share code, notes, and snippets.

@georgi
Created May 17, 2011 13:55
Show Gist options
  • Save georgi/976507 to your computer and use it in GitHub Desktop.
Save georgi/976507 to your computer and use it in GitHub Desktop.
Exception ValueError
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