summaryrefslogtreecommitdiff
path: root/grc
diff options
context:
space:
mode:
Diffstat (limited to 'grc')
-rw-r--r--grc/base/Block.py4
-rw-r--r--grc/base/Platform.py3
-rw-r--r--grc/base/Port.py20
-rw-r--r--grc/gui/Platform.py5
-rw-r--r--grc/gui/Port.py2
-rw-r--r--grc/python/Platform.py5
-rw-r--r--grc/python/Port.py34
7 files changed, 29 insertions, 44 deletions
diff --git a/grc/base/Block.py b/grc/base/Block.py
index d5e104785..82d276567 100644
--- a/grc/base/Block.py
+++ b/grc/base/Block.py
@@ -98,7 +98,7 @@ class Block(Element):
self.get_params().append(param)
#create the source objects
self._sources = list()
- for source in map(lambda n: self.get_parent().get_parent().Source(self, n), sources):
+ for source in map(lambda n: self.get_parent().get_parent().Port(self, n, dir='source'), sources):
key = source.get_key()
#test against repeated keys
try: assert key not in self.get_source_keys()
@@ -107,7 +107,7 @@ class Block(Element):
self.get_sources().append(source)
#create the sink objects
self._sinks = list()
- for sink in map(lambda n: self.get_parent().get_parent().Sink(self, n), sinks):
+ for sink in map(lambda n: self.get_parent().get_parent().Port(self, n, dir='sink'), sinks):
key = sink.get_key()
#test against repeated keys
try: assert key not in self.get_sink_keys()
diff --git a/grc/base/Platform.py b/grc/base/Platform.py
index 02d6d2319..db7ade9a3 100644
--- a/grc/base/Platform.py
+++ b/grc/base/Platform.py
@@ -171,6 +171,5 @@ class Platform(_Element):
FlowGraph = _FlowGraph
Connection = _Connection
Block = _Block
- Source = _Port
- Sink = _Port
+ Port = _Port
Param = _Param
diff --git a/grc/base/Port.py b/grc/base/Port.py
index f4e8e5e1f..8e60d5093 100644
--- a/grc/base/Port.py
+++ b/grc/base/Port.py
@@ -24,22 +24,20 @@ class Port(Element):
##possible port types
TYPES = []
- def __init__(self, block, n):
+ def __init__(self, block, n, dir):
"""
Make a new port from nested data.
@param block the parent element
@param n the nested odict
- @return a new port
+ @param dir the direction source or sink
"""
- #grab the data
- name = n['name']
- key = n['key']
- type = n['type']
#build the port
Element.__init__(self, block)
- self._name = name
- self._key = key
- self._type = type
+ #grab the data
+ self._name = n['name']
+ self._key = n['key']
+ self._type = n['type']
+ self._dir = dir
def validate(self):
"""
@@ -60,8 +58,8 @@ class Port(Element):
def get_color(self): return '#FFFFFF'
def get_name(self): return self._name
def get_key(self): return self._key
- def is_sink(self): return self in self.get_parent().get_sinks()
- def is_source(self): return self in self.get_parent().get_sources()
+ def is_sink(self): return self._dir == 'sink'
+ def is_source(self): return self._dir == 'source'
def get_type(self): return self.get_parent().resolve_dependencies(self._type)
def get_connections(self):
diff --git a/grc/gui/Platform.py b/grc/gui/Platform.py
index a32b0209f..1530a69d6 100644
--- a/grc/gui/Platform.py
+++ b/grc/gui/Platform.py
@@ -1,5 +1,5 @@
"""
-Copyright 2008 Free Software Foundation, Inc.
+Copyright 2008, 2009 Free Software Foundation, Inc.
This file is part of GNU Radio
GNU Radio Companion is free software; you can redistribute it and/or
@@ -38,8 +38,7 @@ def Platform(platform):
('FlowGraph', FlowGraph),
('Connection', Connection),
('Block', Block),
- ('Source', Port),
- ('Sink', Port),
+ ('Port', Port),
('Param', Param),
):
old_value = getattr(platform, attr)
diff --git a/grc/gui/Port.py b/grc/gui/Port.py
index d1f36f8b9..6fc2c4b15 100644
--- a/grc/gui/Port.py
+++ b/grc/gui/Port.py
@@ -1,5 +1,5 @@
"""
-Copyright 2007 Free Software Foundation, Inc.
+Copyright 2007, 2008, 2009 Free Software Foundation, Inc.
This file is part of GNU Radio
GNU Radio Companion is free software; you can redistribute it and/or
diff --git a/grc/python/Platform.py b/grc/python/Platform.py
index d55dbf4ce..cab25d348 100644
--- a/grc/python/Platform.py
+++ b/grc/python/Platform.py
@@ -23,7 +23,7 @@ from .. base.Platform import Platform as _Platform
from FlowGraph import FlowGraph as _FlowGraph
from Connection import Connection as _Connection
from Block import Block as _Block
-from Port import Source,Sink
+from Port import Port as _Port
from Param import Param as _Param
from Generator import Generator
from Constants import \
@@ -77,6 +77,5 @@ class Platform(_Platform):
FlowGraph = _FlowGraph
Connection = _Connection
Block = _Block
- Source = Source
- Sink = Sink
+ Port = _Port
Param = _Param
diff --git a/grc/python/Port.py b/grc/python/Port.py
index daf8f9ca3..f71c5fa35 100644
--- a/grc/python/Port.py
+++ b/grc/python/Port.py
@@ -25,17 +25,27 @@ class Port(_Port):
##possible port types
TYPES = ['complex', 'float', 'int', 'short', 'byte', 'msg']
- def __init__(self, block, n):
+ def __init__(self, block, n, dir):
"""
Make a new port from nested data.
@param block the parent element
@param n the nested odict
+ @param dir the direction
"""
+ self._n = n
+ if n['type'] == 'msg': n['key'] = 'msg'
+ if dir == 'source' and not n.find('key'):
+ n['key'] = str(block._source_count)
+ block._source_count += 1
+ if dir == 'sink' and not n.find('key'):
+ n['key'] = str(block._sink_count)
+ block._sink_count += 1
#build the port
_Port.__init__(
self,
block=block,
n=n,
+ dir=dir,
)
self._nports = n.find('nports') or ''
self._vlen = n.find('vlen') or ''
@@ -109,24 +119,4 @@ class Port(_Port):
def copy(self, new_key=None):
n = self._n.copy()
if new_key: n['key'] = new_key
- return self.__class__(self.get_parent(), n)
-
-class Source(Port):
-
- def __init__(self, block, n):
- self._n = n #save n
- if n['type'] == 'msg': n['key'] = 'msg'
- if not n.find('key'):
- n['key'] = str(block._source_count)
- block._source_count = block._source_count + 1
- Port.__init__(self, block, n)
-
-class Sink(Port):
-
- def __init__(self, block, n):
- self._n = n #save n
- if n['type'] == 'msg': n['key'] = 'msg'
- if not n.find('key'):
- n['key'] = str(block._sink_count)
- block._sink_count = block._sink_count + 1
- Port.__init__(self, block, n)
+ return self.__class__(self.get_parent(), n, self._dir)