Exemplo n.º 1
0
def describe_schema_list(schema):
    d = []
    clks = ['time', 'bar beat', 'song beat', 'bar']

    for c in schema:
        if logic.is_pred_arity(c, 'u', 2):
            clk = clks[c.args[0] - 1]
            val = c.args[1]
            d.append('until %s %g' % (clk, val))

        if logic.is_pred_arity(c, 'l', 2):
            clk = clks[c.args[0] - 1]
            val = c.args[1]
            d.append('at %s %g' % (clk, val))

        if logic.is_pred_arity(c, 'm', 3):
            clk = clks[c.args[0] - 1]
            mod = c.args[1]
            rem = c.args[2]
            d.append('every %g %s' % (mod, clk))

        if logic.is_pred_arity(c, 'z', 4):
            clk = clks[c.args[0] - 1]
            mod = c.args[1]
            rem1 = c.args[2]
            rem2 = c.args[3]
            d.append('every %g %s' % (mod, clk))

    return ' '.join(d)
Exemplo n.º 2
0
    def make_filter(self, stream, slot):
        if logic.is_pred_arity(stream, 'conn', 4, 4):
            if stream.args[0] is not None:
                using = int(stream.args[0])
            else:
                using = 0

            if self.__auto_slot:
                using = using | (slot << 8)

            if stream.args[1] is not None:
                tgt = int(stream.args[1])
            else:
                tgt = 0

            id = stream.args[2]
            path = stream.args[3]

            if path is not None:
                return (id, piw.signal_dsc_filter(using, tgt, path))
            else:
                return (id, piw.signal_cnc_filter(using, tgt))

        print 'cop out of', stream
        return ('', piw.null_filter())
Exemplo n.º 3
0
def concrete_objects(arg):
    """ 
    Extract all the objects of a concrete argument 
    as a list.  With the singular constraint
    the single object will be returned as a list
    """
    return [o.args[0] for o in arg if logic.is_pred_arity(o,'cnc',1) ]
Exemplo n.º 4
0
    def verb2_19_unconnect_from(self, subject, t, f):
        """
        connect([un],global_unconnect_from,role(None,[concrete]),role(from,[concrete,singular]))
        """
        f = self.database.to_database_id(action.concrete_object(f))
        for o in action.concrete_objects(t):
            t2 = self.database.to_database_id(o)
            print 'un connect', t2, 'from', f
            tproxy = self.database.find_item(t2)
            objs = self.database.search_any_key(
                'W', T('unconnect_from_list', t2, f, V('W')))

            for (s, m) in objs:
                sproxy = self.database.find_item(s)
                cnxs = logic.parse_clauselist(sproxy.get_master())
                for cnx in cnxs:
                    if logic.is_pred_arity(cnx, 'conn',
                                           5) and self.database.to_database_id(
                                               cnx.args[2]) == m:
                        print 'disconnect', cnx, 'from', s
                        yield interpreter.RpcAdapter(
                            sproxy.invoke_rpc('disconnect',
                                              logic.render_term(cnx)))

        yield async .Coroutine.success()
Exemplo n.º 5
0
def find_conn(aproxy, id):
    r = []
    for cnx in cnxs:
        if logic.is_pred_arity(cnx, 'conn', 5) and cnx.args[2] == id:
            r.append(logic.render_term(cnx))

    return r
Exemplo n.º 6
0
def apply_schema(event, schema):
    event.event_clear()

    for c in schema.args[1]:
        if logic.is_pred_arity(c, 'u', 2):
            event.upper_bound(int(c.args[0]), float(c.args[1]))

        if logic.is_pred_arity(c, 'l', 2):
            event.lower_bound(int(c.args[0]), float(c.args[1]))

        if logic.is_pred_arity(c, 'm', 3):
            event.modulo(int(c.args[0]), int(c.args[1]), float(c.args[2]))

        if logic.is_pred_arity(c, 'z', 4):
            event.zone(int(c.args[0]), int(c.args[1]), float(c.args[2]),
                       float(c.args[3]))
Exemplo n.º 7
0
    def __add_connection(self, src, delegate):
        iid = (max(self.__connection_iids) +
               1 if self.__connection_iids else 1)

        (a, f) = self.make_filter(src, iid)

        if not paths.valid_id(a):
            return None

        self.__connection_iids.add(iid)

        hint = None
        if logic.is_pred_arity(src, 'conn', 5, 5):
            hint = src.args[4]

        s = PlumberSlot(
            iid, src, hint,
            self.create_plumber(PlumberConfig(a, f, iid, hint), self.__clock))

        if hint == 'ctl':
            self.__cconnections = self.__cconnections + 1
        else:
            self.__dconnections = self.__dconnections + 1

        return s
Exemplo n.º 8
0
 def make_ctl_filter(self, stream, slot):
     if logic.is_pred_arity(stream, 'ctl', 2, 2):
         id = stream.args[0]
         path = stream.args[1]
         if path is not None:
             return (id, piw.signal_dsc_filter(slot, 0, path))
         else:
             return (id, piw.signal_cnc_filter(slot, 0))
     print 'cop out of', stream
     return ('', piw.null_filter())
Exemplo n.º 9
0
 def get_master_control(self, id, mid):
     proxy = self.__database.find_item(id)
     if (not proxy == None):
         master = proxy.get_master()
         terms = logic.parse_termlist(master or '')
         for t in terms:
             if logic.is_pred_arity(t, 'conn', 5, 5):
                 #                    print '******',t.args[3]
                 if t.args[2] == mid:
                     #print 'ctrl for',id,'=',t.args[4]
                     if (not t.args[4] == None):
                         return t.args[4]
     return ''
Exemplo n.º 10
0
 def concrete_ids(self):
     return tuple([
         o.args[0] for o in self.__objects
         if logic.is_pred_arity(o, 'cnc', 1)
     ])
Exemplo n.º 11
0
def is_composite(obj):
    return logic.is_pred_arity(obj,'cmp',1)
Exemplo n.º 12
0
def is_concrete(obj):
    return logic.is_pred_arity(obj,'cnc',1)
Exemplo n.º 13
0
def is_virtual(obj):
    return logic.is_pred_arity(obj,'virtual',1)
Exemplo n.º 14
0
def is_descriptor(obj):
    return logic.is_pred_arity(obj,'dsc',2)
Exemplo n.º 15
0
def is_ideal(obj):
    return logic.is_pred_arity(obj,'ideal',2)