/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef mozilla_system_automounter_h__ #define mozilla_system_automounter_h__ #include class nsCString; namespace mozilla { namespace system { // AutoMounter modes #define AUTOMOUNTER_DISABLE 0 #define AUTOMOUNTER_ENABLE_UMS 1 #define AUTOMOUNTER_DISABLE_WHEN_UNPLUGGED 2 #define AUTOMOUNTER_ENABLE_MTP 3 // Automounter statuses #define AUTOMOUNTER_STATUS_DISABLED 0 #define AUTOMOUNTER_STATUS_ENABLED 1 #define AUTOMOUNTER_STATUS_FILES_OPEN 2 /** * Initialize the automounter. This causes some of the phone's * directories to show up on the host when the phone is plugged * into the host via USB. * * When the AutoMounter starts, it will poll the current state * of affairs (usb cable plugged in, automounter enabled, etc) * and try to make the state of the volumes match. */ void InitAutoMounter(); /** * Sets the enabled state of the automounter. * * This will in turn cause the automounter to re-evaluate * whether it should mount/unmount/share/unshare volumes. */ void SetAutoMounterMode(int32_t aMode); /** * Reports the status of the automounter. */ int32_t GetAutoMounterStatus(); /** * Sets the sharing mode of an individual volume. * * If a volume is enabled for sharing, and the autmounter * is in a state to share, then the volume will be shared * with the PC. */ void SetAutoMounterSharingMode(const nsCString& aVolumeName, bool aAllowSharing); /** * Formats the volume with specified volume name. * * If the volume is ready to format, automounter * will unmount it, format it and then mount it again. */ void AutoMounterFormatVolume(const nsCString& aVolumeName); /** * Mounts the volume with specified volume name. * * If the volume is already unmounted, automounter * will mount it. Otherwise automounter will skip this. */ void AutoMounterMountVolume(const nsCString& aVolumeName); /** * Unmounts the volume with specified volume name. * * If the volume is already mounted, automounter * will unmount it. Otherwise automounter will skip this. */ void AutoMounterUnmountVolume(const nsCString& aVolumeName); /** * Shuts down the automounter. * * This leaves the volumes in whatever state they're in. */ void ShutdownAutoMounter(); } // system } // mozilla #endif // mozilla_system_automounter_h__