summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjblum2009-05-29 06:43:35 +0000
committerjblum2009-05-29 06:43:35 +0000
commit693cf2facf18c95db1559b035b09137f0fc191e6 (patch)
tree7358d2beb562e32fb65bbe96185f79eac62c95bd
parentefc3d118fe6e2386da9cf3d8a4a09df0efa749b1 (diff)
downloadgnuradio-693cf2facf18c95db1559b035b09137f0fc191e6.tar.gz
gnuradio-693cf2facf18c95db1559b035b09137f0fc191e6.tar.bz2
gnuradio-693cf2facf18c95db1559b035b09137f0fc191e6.zip
Did a little work with path handling.
Additional blocks paths can be specified with environment variable GRC_BLOCKS_PATH git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@11163 221aa14e-8319-0410-a670-987f0aec2ac5
-rwxr-xr-xgrc/scripts/grc7
-rwxr-xr-xgrc/scripts/usrp2_probe2
-rwxr-xr-xgrc/scripts/usrp_probe2
-rw-r--r--grc/src/platforms/base/Platform.py2
-rw-r--r--grc/src/platforms/python/Platform.py21
5 files changed, 17 insertions, 17 deletions
diff --git a/grc/scripts/grc b/grc/scripts/grc
index d0b8099f1..a2e3bc28a 100755
--- a/grc/scripts/grc
+++ b/grc/scripts/grc
@@ -18,6 +18,8 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
"""
+import os
+
import pygtk
pygtk.require('2.0')
import gtk
@@ -50,5 +52,8 @@ and you are welcome to redistribute it.
#setup icon using icon theme
try: gtk.window_set_default_icon(gtk.IconTheme().load_icon('gnuradio-grc', 256, 0))
except: pass
- ActionHandler(args, Platform())
+ #extract extra block paths from environment variable, separated by semicolon
+ try: extra_blocks = os.environ['GRC_BLOCKS_PATH'].split(';')
+ except: extra_blocks = list()
+ ActionHandler(args, Platform(extra_blocks=extra_blocks))
diff --git a/grc/scripts/usrp2_probe b/grc/scripts/usrp2_probe
index baf44a479..fac2427de 100755
--- a/grc/scripts/usrp2_probe
+++ b/grc/scripts/usrp2_probe
@@ -30,7 +30,7 @@ import gobject
from gnuradio.grc.gui.Dialogs import TextDisplay
from gnuradio.grc.platforms.python.Platform import Platform
-platform = Platform(block_paths_internal_only=['usrp2_probe.xml'])
+platform = Platform(critical_only=True)
from gnuradio.grc.platforms.gui.Platform import Platform
platform = Platform(platform)
diff --git a/grc/scripts/usrp_probe b/grc/scripts/usrp_probe
index 3d7b6f0cb..3eb3de58e 100755
--- a/grc/scripts/usrp_probe
+++ b/grc/scripts/usrp_probe
@@ -28,7 +28,7 @@ import gtk
from gnuradio.grc.gui.Dialogs import TextDisplay
from gnuradio.grc.platforms.python.Platform import Platform
-platform = Platform(block_paths_internal_only=['usrp_probe.xml'])
+platform = Platform(critical_only=True)
from gnuradio.grc.platforms.gui.Platform import Platform
platform = Platform(platform)
diff --git a/grc/src/platforms/base/Platform.py b/grc/src/platforms/base/Platform.py
index 1f04fa0a6..35227d99f 100644
--- a/grc/src/platforms/base/Platform.py
+++ b/grc/src/platforms/base/Platform.py
@@ -61,8 +61,6 @@ class Platform(_Element):
for filename in filter(lambda f: f.endswith('.xml'), filenames):
self._load_blocks(os.path.join(dirpath, filename))
- def get_prefs_block(self): return self.get_new_flow_graph().get_new_block('preferences')
-
def _load_blocks(self, f):
"""
Load the block wrappers from the file path.
diff --git a/grc/src/platforms/python/Platform.py b/grc/src/platforms/python/Platform.py
index 9b0b3bb30..d2bb4627e 100644
--- a/grc/src/platforms/python/Platform.py
+++ b/grc/src/platforms/python/Platform.py
@@ -30,25 +30,22 @@ from Constants import \
BLOCK_TREE, DEFAULT_FLOW_GRAPH, \
BLOCKS_DIR
+_critical_blocks_only = map(lambda b: os.path.join(BLOCKS_DIR, b), ['options.xml', 'usrp_probe.xml', 'usrp2_probe.xml'])
+
class Platform(_Platform):
- def __init__(self, block_paths_internal_only=[], block_paths_external=[]):
+ def __init__(self, extra_blocks=[], critical_only=False):
"""
Make a platform for gnuradio.
- The internal only list will replace the current block path.
- @param block_paths_internal_only a list of blocks internal to this platform
- @param block_paths_external a list of blocks to load in addition to the above blocks
+ @param extra_blocks a list of block paths to load in addition to main block library
+ @param critical_only only load critical blocks (used only for usrp probe scripts to speed up load time)
"""
#ensure hier dir
if not os.path.exists(HIER_BLOCKS_LIB_DIR): os.mkdir(HIER_BLOCKS_LIB_DIR)
- #handle internal/only
- if block_paths_internal_only:
- block_paths = map(lambda b: os.path.join(BLOCKS_DIR, b), ['options.xml'] + block_paths_internal_only)
- else: block_paths = [BLOCKS_DIR]
- #handle external
- block_paths.extend(block_paths_external)
- #append custom hiers
- block_paths.append(HIER_BLOCKS_LIB_DIR)
+ if critical_only: block_paths = _critical_blocks_only
+ else: block_paths = extra_blocks + [HIER_BLOCKS_LIB_DIR, BLOCKS_DIR]
+ #convert block paths to absolute paths, ensure uniqueness
+ block_paths = set(map(os.path.abspath, block_paths))
#init
_Platform.__init__(
self,