예제 #1
0
 def upgrade_2_0_to_3_0(self, tools, address):
     root = tools.root(address)
     root.get_node(2).erase()
     root.ensure_node(1, 1, 255, 7).set_data(piw.makelong(1, 0))
     tools.substitute_connection(paths.makeid_list(address, 2),
                                 paths.makeid_list(address, 2, 1))
     return True
예제 #2
0
def convert_atom(atom,extra={},ext=253):
    metadata = extra.copy()
    children = map(ord,atom.list_children())

    if 254 in children:
        children.remove(254)

    if 255 in children:
        children.remove(255)
        metanode = atom.get_child(255)
        metadata.update(convert_metadata(metanode))

    if 253 in children:
        children.remove(253)
        convert_list(atom.get_child(253))

    data = piw.dictnull(0)
    for (k,v) in metadata.iteritems():
        if isinstance(v,str):
            data = piw.dictset(data,k,piw.makestring(v,0))
        elif isinstance(v,int):
            data = piw.dictset(data,k,piw.makelong(v,0))
        elif isinstance(v,bool):
            data = piw.dictset(data,k,piw.makebool(v,0))

    atom.set_data(data)

    for c in children:
        convert_atom(atom.get_child(c))
예제 #3
0
    def set_name(self,name):
        name = name.split()
        ordinal = None

        try:
            if len(name)>0:
                ordinal=int(name[-1])
                name = name[:-1]
        except:
            pass

        name = ' '.join(name)

        d = self.get_data()

        if d.is_null():
            d = piw.dictnull(0)

        if d.is_dict():
            if name:
                d = piw.dictset(d,'name',piw.makestring(name,0))
            else:
                d = piw.dictdel(d,'name')
            if ordinal:
                d = piw.dictset(d,'ordinal',piw.makelong(ordinal,0))
            else:
                d = piw.dictdel(d,'ordinal')

        self.set_data(d)
예제 #4
0
 def upgrade_7_0_to_8_0(self,tools,address):
     root = tools.root(address)
     rnode = root.ensure_node(4,17,255)
     rnode.ensure_node(1).set_data(piw.makestring('',0))
     rnode.ensure_node(8).set_data(piw.makestring('relative octave input',0))
     root.ensure_node(4,17,254).set_data(piw.makelong(0,0))
     return True
예제 #5
0
파일: atom.py 프로젝트: shamharoth/EigenD
 def set_property_long(self,
                       key,
                       value,
                       allow_veto=False,
                       notify=True,
                       delegate=None):
     self.set_property(key, piw.makelong(value, 0), allow_veto, notify,
                       delegate)
예제 #6
0
    def __init__(self, agent, row=None):
        self.__agent = agent
        self.__fastdata = bundles.FastSender()
        atom.Atom.__init__(self,
                           domain=domain.Aniso(),
                           policy=policy.FastReadOnlyPolicy())
        self.get_policy().set_source(self.__fastdata)
        self.get_policy().set_clock(self.__agent.model.get_clock())

        self.set_private(
            node.static(_1=node.Server(change=self.__changetarget),
                        _2=node.Server(value=piw.makelong(1, 0),
                                       change=self.__changerefs)))
        self.target = self.get_private()[1]
        self.refs = self.get_private()[2]

        if row is not None:
            self.__changetarget(piw.makelong(row, 0))
예제 #7
0
    def upgrade_1_0_0_to_1_0_1(self,tools,address):
        keys = tools.get_root(address).get_node(3)
        for k in keys.iter(exclude=(254,255)):
            ko = k.path[-1]
            km = k.get_data()
            km = piw.dictset(km,'name',piw.makestring('key',0))
            km = piw.dictset(km,'ordinal',piw.makelong(ko,0))
            k.set_data(km)

            for e in k.iter(exclude=(254,255)):
                eo = e.path[-1]
                em = e.get_data()
                et = e.ensure_node(255).get_data()
                em = piw.dictset(em,'name',piw.makestring('action',0))
                em = piw.dictset(em,'ordinal',piw.makelong(ko,0))
                em = piw.dictset(em,'help',et if et.is_string() else piw.makestring('',0))
                e.set_data(em)
                e.erase_child(255)
예제 #8
0
 def __init__(self,agent,controller,index):
     atom.Atom.__init__(self,creator=self.__create,wrecker=self.__wreck,ordinal=index,names='key')
     self.__event = piw.fasttrigger(const.light_unknown)
     self.__event.attach_to(controller,index)
     self.__handler = piw.change2_nb(self.__event.trigger(),utils.changify(self.event_triggered))
     self.key_aggregator = piw.aggregator(agent.light_aggregator.get_output(index+1),agent.domain)
     self.agent = agent
     self.index = index
     self.set_private(node.Server(value=piw.makelong(3,0),change=self.__change_color))
     self.set_internal(250,atom.Atom(domain=domain.Trigger(),init=False,names='activate',policy=policy.TriggerPolicy(self.__handler),transient=True))
예제 #9
0
    def __init__(self,agent,index):
        self.agent = agent
        self.__fastdata = bundles.FastSender()
        collection.Collection.__init__(self,domain=domain.Aniso(),policy=policy.FastReadOnlyPolicy(),creator=self.__create,wrecker=self.__wreck,ordinal=index,names='row',protocols='hidden-connection remove explicit')
        self.get_policy().set_source(self.__fastdata)
        self.get_policy().set_clock(self.agent.model.get_clock())

        self.set_private(node.static(_1=node.Server(change=self.__changetarget)))
        self.target = self.get_private()[1]

        if index is not None:
            self.__changetarget(piw.makelong(index-1,0))
예제 #10
0
    def upgrade_2_0_to_3_0(self, tools, address):
        root = tools.root(address)
        root.get_node(1).erase()
        tools.substitute_connection(paths.makeid_list(address, 1),
                                    paths.makeid_list(address, 1, 1))

        old_2 = root.get_node(2)
        root.get_node(2).erase()
        root.ensure_node(2, 1).copy(old_2)
        root.ensure_node(2, 1).rename(names='audio input')
        root.ensure_node(2, 1, 255, 7).set_data(piw.makelong(1, 0))
        return True
예제 #11
0
    def upgrade_0_0_to_1_0(self, tools, address):
        root = tools.root(address)

        loopstart = piw.makelong(
            1 + root.get_node(7, 255, 6, 1).get_data().as_long(), 0)
        loopend = piw.makelong(
            1 + root.get_node(7, 255, 6, 2).get_data().as_long(), 0)
        step = root.get_node(8, 1)
        frac = root.get_node(8, 2)

        root.remove(7)
        root.remove(8)

        root.ensure_node(7, 1, 255, 1).set_string('bint(1,10000,1,[])')
        root.ensure_node(7, 1, 255, 8).set_string('loopstart')
        root.ensure_node(7, 1, 255, 17)
        root.ensure_node(7, 1, 255, 18)
        root.ensure_node(7, 1, 254).set_data(loopstart)

        root.ensure_node(7, 2, 255, 1).set_string('bint(1,10000,1,[])')
        root.ensure_node(7, 2, 255, 8).set_string('loopend')
        root.ensure_node(7, 2, 255, 17)
        root.ensure_node(7, 2, 255, 18)
        root.ensure_node(7, 2, 254).set_data(loopend)

        root.ensure_node(7, 3).copy(step)
        root.ensure_node(7, 3, 255, 17)
        root.ensure_node(7, 3, 255, 18)

        root.ensure_node(7, 4).copy(frac)
        root.ensure_node(7, 4, 255, 17)
        root.ensure_node(7, 4, 255, 18)

        root.remove(8)

        root.ensure_node(255, 6).set_data(piw.makebool(True, 0))

        return True
예제 #12
0
 def __addvoiceatom(self,root,voice,file,vol,chop,playing):
     voice_node = root.ensure_node(5,voice)
     voice_node.ensure_node(255,7).set_data(piw.makelong(voice,0))
     voice_node.ensure_node(255,8).set_data(piw.makestring('voice',0))
     voice_node.ensure_node(255,6).set_data(piw.makestring(logic.render_term((file,playing)),0))
     voice_node.ensure_node(255,1)
     voice_node.ensure_node(255,3)
     volume_node = voice_node.ensure_node(1)
     volume_node.ensure_node(255,8).set_data(piw.makestring('volume',0))
     volume_node.ensure_node(255,1)
     volume_node.ensure_node(255,3)
     volume_node.ensure_node(254).set_data(piw.makefloat(vol,0))
     chop_node = voice_node.ensure_node(2)
     chop_node.ensure_node(255,8).set_data(piw.makestring('chop',0))
     chop_node.ensure_node(255,1)
     chop_node.ensure_node(255,3)
     chop_node.ensure_node(254).set_data(piw.makefloat(chop,0))
예제 #13
0
 def event_triggered(self,v):
     self.get_internal(250).get_policy().set_status(piw.makelong(0,0))
     self.set_status(piw.makelong(self.agent.light_convertor.get_status(self.index),piw.tsd_time()))
예제 #14
0
파일: domain.py 프로젝트: tylerwood/EigenD
 def default(self):
     return piw.makelong(0, 0)
예제 #15
0
파일: domain.py 프로젝트: tylerwood/EigenD
 def value2data(self, v, t=0L):
     v = long(v)
     return piw.makelong(v, t)
예제 #16
0
    def upgrade_2_0_to_3_0(self,tools,address):
        root = tools.root(address)
        root.ensure_node(2,1,255,const.meta_ordinal).set_data(piw.makelong(1,0))

        return True
예제 #17
0
 def set_long(self, value, ts=0):
     self.dbnode.set_data(piw.makelong(value, ts))
예제 #18
0
 def __end_change(self,v):
     fc = piw.fastchange(self.__agent.model.set_loopend())
     fc(piw.makelong(v-1,0))
     return True
예제 #19
0
 def addref(self):
     r = self.refs.get_data().as_long()
     self.refs.set_data(piw.makelong(r+1,0))
예제 #20
0
 def delref(self):
     r = self.refs.get_data().as_long()
     if r==1:
         return True
     self.refs.set_data(piw.makelong(r-1,0))
     return False
예제 #21
0
def set_format(snap, fmt):
    a = snap.get_agent_address(255, 'meta', True)
    a.get_root().get_child(6).set_data(piw.makelong(fmt, 0))
예제 #22
0
 def set_color(self,c):
     self.agent.light_convertor.set_default_color(self.index,c)
     self.get_private().set_data(piw.makelong(c,0))
예제 #23
0
 def set_property_long(self, key, value, allow_veto=False):
     self.set_property(key, piw.makelong(value, 0), allow_veto)
예제 #24
0
 def set_meta_long(self,key,value):
     self.set_meta(key,piw.makelong(value,0))
예제 #25
0
def maketuple_longs(items, ts):
    d = piw.tuplenull(ts)
    for v in items:
        d = piw.tupleadd(d, piw.makelong(v, ts))
    return d