summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorDavid Daynard <nardholio@gmail.com>2013-03-12 18:35:09 -0400
committerGerrit Code Review <gerrit@cyanogenmod.org>2013-03-24 15:55:21 -0700
commitbcf051717a9fab03e032959ac2d3904c45e59ee5 (patch)
tree436c5fca643287589a6b14a9f10093bc6bc6c186 /media
parenta35c8f521c9cbb64f3d32df5ded7eab2db2727ee (diff)
downloadframeworks_av-bcf051717a9fab03e032959ac2d3904c45e59ee5.zip
frameworks_av-bcf051717a9fab03e032959ac2d3904c45e59ee5.tar.gz
frameworks_av-bcf051717a9fab03e032959ac2d3904c45e59ee5.tar.bz2
MediaScanner: Ignore dirs with .noscanandnomtp
Completely ignore directories with .noscanandnomtp files in them. Placing a .nomedia file will still scan a directory but exclude it from the media database. This is so the file may still be presented for MTP purposes. Placing .noscanandnomtp completely prevents the scan, which saves considerable processing power and battery life on systems with numerous media files, but prevents them from being seen over MTP. Change-Id: Ibff2a9f2525255a2ac34132eeee36734962fbdd7
Diffstat (limited to 'media')
-rw-r--r--media/libmedia/MediaScanner.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/media/libmedia/MediaScanner.cpp b/media/libmedia/MediaScanner.cpp
index 28b5aa7..6ea5b7e 100644
--- a/media/libmedia/MediaScanner.cpp
+++ b/media/libmedia/MediaScanner.cpp
@@ -139,6 +139,18 @@ MediaScanResult MediaScanner::doProcessDirectory(
return MEDIA_SCAN_RESULT_OK;
}
+ // Completely skip all directories containing a ".noscanandnomtp" file
+ if (pathRemaining >= 15 /* strlen(".noscanandnomtp") */ ) {
+ strcpy(fileSpot, ".noscanandnomtp");
+ if (access(path, F_OK) == 0) {
+ ALOGV("found .noscanandnomtp, completely skipping");
+ return MEDIA_SCAN_RESULT_SKIPPED;
+ }
+
+ // restore path
+ fileSpot[0] = 0;
+ }
+
// Treat all files as non-media in directories that contain a ".nomedia" file
if (pathRemaining >= 8 /* strlen(".nomedia") */ ) {
strcpy(fileSpot, ".nomedia");