def METHOD_NAME(mountpoint):
	scanner = []
	for p in plugins.getPlugins(PluginDescriptor.WHERE_FILESCAN):
		l = p()
		if not isinstance(l, list):
			l = [l]
		scanner += l
	print("[Scanner] ", scanner)
	res = {}
	# merge all to-be-scanned paths, with priority to
	# with_subdirs.
	paths_to_scan = set()
	# first merge them all...
	for s in scanner:
		paths_to_scan.update(set(s.paths_to_scan))
	# ...then remove with_subdir=False when same path exists
	# with with_subdirs=True
	for p in paths_to_scan.copy():
		if p.with_subdirs == True and ScanPath(path=p.path) in paths_to_scan:
			paths_to_scan.remove(ScanPath(path=p.path))
	# now scan the paths
	for p in paths_to_scan:
		path = os.path.join(mountpoint, p.path)
		for root, dirs, files in os.walk(path):
			for f in files:
				path = os.path.join(root, f)
				if f.endswith(".wav") and f.startswith("track"):
					sfile = ScanFile(path, "audio/x-cda")
				else:
					sfile = ScanFile(path)
				for s in scanner:
					s.handleFile(res, sfile)
			# if we really don't want to scan subdirs, stop here.
			if not p.with_subdirs:
				del dirs[:]
	# res is a dict with scanner -> [ScanFiles]
	return res