Author: bklaas
Date: Wed Apr 21 11:17:35 2010
New Revision: 8719
URL: http://svn.slimdevices.com/jive?rev=8719&view=rev
Log:
Bug: 15827
Description: patches from Michael
1. do not present SBS as a menu option when drive is read-only (this will
likely be reworked to better message the user, but this is a start)
2. only add menu items for mounts that end in numbers (i.e., partitions)
Modified:
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/MediaManager/MediaManagerApplet.lua
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/MediaManager/MediaManagerMeta.lua
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/SqueezeCenterMeta.lua
Modified:
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/MediaManager/MediaManagerApplet.lua
URL:
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/MediaManager/MediaManagerApplet.lua?rev=8719&r1=8718&r2=8719&view=diff
==============================================================================
---
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/MediaManager/MediaManagerApplet.lua
(original)
+++
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/MediaManager/MediaManagerApplet.lua
Wed Apr 21 11:17:35 2010
@@ -59,8 +59,12 @@
if mountedDrivePresent then
-- create menu items for each
for k, v in pairs(mountedDrives) do
- log:debug('STARTUP | Create main menu item for ', k)
- self:addMountedDevice(k, false)
+ -- check whether the mount point is ending in a
partition number
+ -- ignore disks without partition like eg. sdb (virtual
CD drive)
+ if string.match(k, "[123456789]$") then
+ log:debug('STARTUP | Create main menu item for
', k)
+ self:addMountedDevice(k, false)
+ end
end
end
@@ -120,7 +124,10 @@
local addThisItem = true
if v.onlyIfTrue or v.onlyIfFalse then
- if v.onlyIfTrue then
+ if v.onlyIfTrue and v.onlyIfFalse then
+ log:info('needs to return true for onlyIfTrue
and false for onlyIfFalse to add this menu item')
+ addThisItem =
appletManager:callService(v.onlyIfTrue, devName) and not
appletManager:callService(v.onlyIfFalse, devName)
+ elseif v.onlyIfTrue then
log:info('onlyIfTrue method needs to return
true to add this menu item')
addThisItem =
appletManager:callService(v.onlyIfTrue, devName)
elseif v.onlyIfFalse then
@@ -738,6 +745,38 @@
return false
end
+
+function isReadOnlyMedia(self, devName)
+ local mounts = io.open("/proc/mounts", "r")
+ local isReadOnly = false
+
+ if mounts == nil then
+ log:error("/proc/mounts could not be opened")
+ return nil
+ end
+
+ for line in mounts:lines() do
+ if string.match(line, "/media/" .. devName) then
+ if string.match(line, "[^%d%a]ro[^%d%a]") then
+ log:debug('/media/', devName, ' is read-only')
+ isReadOnly = true
+ break
+ else
+ log:debug('/media/', devName, ' is NOT
read-only')
+ break
+ end
+ end
+ end
+ mounts:close()
+
+ return isReadOnly
+end
+
+function isWriteableMedia(self, ...)
+ return not self:isReadOnlyMedia(...)
+end
+
+
function _mediaDirExists(self, devName)
local dirExists = nil
Modified:
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/MediaManager/MediaManagerMeta.lua
URL:
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/MediaManager/MediaManagerMeta.lua?rev=8719&r1=8718&r2=8719&view=diff
==============================================================================
---
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/MediaManager/MediaManagerMeta.lua
(original)
+++
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/MediaManager/MediaManagerMeta.lua
Wed Apr 21 11:17:35 2010
@@ -30,6 +30,8 @@
meta:registerService("udevEventHandler")
meta:registerService("mmConfirmEject")
meta:registerService("mmGetMountedDevices")
+ meta:registerService("isReadOnlyMedia")
+ meta:registerService("isWriteableMedia")
end
function configureApplet(meta)
Modified:
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/SqueezeCenterMeta.lua
URL:
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/SqueezeCenterMeta.lua?rev=8719&r1=8718&r2=8719&view=diff
==============================================================================
---
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/SqueezeCenterMeta.lua
(original)
+++
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/SqueezeCenterMeta.lua
Wed Apr 21 11:17:35 2010
@@ -41,6 +41,7 @@
serviceMethod = "mmSqueezeCenterMenu",
menuText = meta:string('SQUEEZEBOX_SERVER'),
onlyIfTrue = "isBuiltInSCRunning",
+ onlyIfFalse = "isReadOnlyMedia",
weight = 20,
}
)
_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/jive-checkins