00001 #include "mythhdd.h"
00002 #include "mythlogging.h"
00003
00011 MythHDD *MythHDD::Get(QObject* par, const char* devicePath, bool SuperMount,
00012 bool AllowEject)
00013 {
00014 return new MythHDD(par, devicePath, SuperMount, AllowEject);
00015 }
00016
00022 MythHDD::MythHDD(QObject *par, const char *DevicePath,
00023 bool SuperMount, bool AllowEject)
00024 : MythMediaDevice(par, DevicePath, SuperMount, AllowEject)
00025 {
00026 LOG(VB_MEDIA, LOG_INFO, "MythHDD::MythHDD " + m_DevicePath);
00027 m_Status = MEDIASTAT_NOTMOUNTED;
00028 m_MediaType = MEDIATYPE_DATA;
00029 }
00030
00034 MythMediaStatus MythHDD::checkMedia(void)
00035 {
00036 if (m_Status == MEDIASTAT_ERROR)
00037 return m_Status;
00038
00039 if (isMounted())
00040 {
00041
00042
00043 m_VolumeID = m_MountPath;
00044
00045
00046 if (m_Status != MEDIASTAT_MOUNTED)
00047 m_Status = MEDIASTAT_NOTMOUNTED;
00048
00049 return setStatus(MEDIASTAT_MOUNTED);
00050 }
00051
00052
00053 switch (m_Status)
00054 {
00055 case MEDIASTAT_NOTMOUNTED:
00056
00057 LOG(VB_MEDIA, LOG_INFO, "MythHDD::checkMedia try mounting " +
00058 m_DevicePath);
00059
00060 if (mount())
00061 return setStatus(MEDIASTAT_MOUNTED);
00062
00063 return setStatus(MEDIASTAT_ERROR);
00064
00065 case MEDIASTAT_MOUNTED:
00066
00067 return setStatus(MEDIASTAT_NOTMOUNTED);
00068
00069 default:
00070
00071 return m_Status;
00072 }
00073 }
00074
00075
00076 MythMediaError MythHDD::eject(bool)
00077 {
00078 setStatus(MEDIASTAT_UNPLUGGED);
00079 return MEDIAERR_UNSUPPORTED;
00080 }