aboutsummaryrefslogtreecommitdiff
path: root/src/pd.lua
diff options
context:
space:
mode:
authorMartin Peach <mrpeach@users.sourceforge.net>2011-10-27 20:21:51 +0000
committerIOhannes m zmölnig <zmoelnig@iem.at>2015-10-14 14:28:31 +0200
commit61f31586cbc4b9c358533e81847ad852fa0e1195 (patch)
tree0a10b3199e084d2d465953eb27dcd8a17cc03495 /src/pd.lua
parent439fbb614935165fd40277d0e1153e1e8954652d (diff)
Added support for the "Open" item in the right-click menu of pdlua and pdluax objects.
The script for a .pd_lua or .pd_luax object will be opened in an editor via ::pd_menucommands::menuopenfile, as proposed by hcs. svn path=/trunk/externals/loaders/pdlua/; revision=15667
Diffstat (limited to 'src/pd.lua')
-rw-r--r--src/pd.lua21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/pd.lua b/src/pd.lua
index 341894f..36ba28d 100644
--- a/src/pd.lua
+++ b/src/pd.lua
@@ -76,6 +76,13 @@ pd._clockdispatch = function (c)
end
end
+--whoami method dispatcher
+pd._whoami = function (object)
+ if nil ~= pd._objects[object] then
+ return pd._objects[object]:whoami()
+ end
+end
+
-- prototypical OO system
pd.Prototype = { }
function pd.Prototype:new(o)
@@ -207,6 +214,11 @@ function pd.Class:register(name)
self._class = pd._register(name) -- register new class
pd._classes[name] = self -- record registration
self._name = name
+ if name == "pdlua" then
+ self._scriptname = "pd.lua"
+ else
+ self._scriptname = name .. ".pd_lua"
+ end -- mrpeach 20111027
return self -- return new
end
end
@@ -273,9 +285,11 @@ end
function pd.Class:error(msg)
pd._error(self._object, msg)
end
+function pd.Class:whoami()
+ return self._scriptname or self._name
+end
-
-local lua = pd.Class:new():register("pdlua") -- global controls
+local lua = pd.Class:new():register("pdlua") -- global controls (the [pdlua] object only)
function lua:initialize(sel, atoms)
self.inlets = 1
self.outlets = 0 -- FIXME: might be nice to have errors go here?
@@ -286,10 +300,11 @@ function lua:in_1_load(atoms) -- execute a script
end
-local luax = pd.Class:new():register("pdluax") -- classless lua externals
+local luax = pd.Class:new():register("pdluax") -- classless lua externals (like [pdluax foo])
function luax:initialize(sel, atoms) -- motivation: pd-list 2007-09-23
local f = self:dofile(atoms[1] .. ".pd_luax")
if nil ~= f then
+ self._scriptname = atoms[1] .. ".pd_luax" -- mrpeach 20111027
local atomstail = { } -- munge for better lua<->luax compatibility
for i,_ in ipairs(atoms) do
if i > 1 then