diff options
Diffstat (limited to 'orkaudio/messages/DeleteTapeMsg.cpp')
-rw-r--r-- | orkaudio/messages/DeleteTapeMsg.cpp | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/orkaudio/messages/DeleteTapeMsg.cpp b/orkaudio/messages/DeleteTapeMsg.cpp new file mode 100644 index 0000000..9dc8dae --- /dev/null +++ b/orkaudio/messages/DeleteTapeMsg.cpp @@ -0,0 +1,60 @@ +/* + * Oreka -- A media capture and retrieval platform + * + * Copyright (C) 2005, orecx LLC + * + * http://www.orecx.com + * + * This program is free software, distributed under the terms of + * the GNU General Public License. + * Please refer to http://www.gnu.org/copyleft/gpl.html + * + */ + +#include "DeleteTapeMsg.h" +#include "messages/AsyncMessage.h" + +#define DELETE_TAPE_CLASS "deletetape" + +void DeleteTapeMsg::Define(Serializer* s) +{ + CStdString deleteTapeClass(DELETE_TAPE_CLASS); + s->StringValue(OBJECT_TYPE_TAG, deleteTapeClass, true); + s->StringValue(FILENAME_PARAM, m_filename, true); +} + + +CStdString DeleteTapeMsg::GetClassName() +{ + return CStdString(DELETE_TAPE_CLASS); +} + +ObjectRef DeleteTapeMsg::NewInstance() +{ + return ObjectRef(new DeleteTapeMsg); +} + +ObjectRef DeleteTapeMsg::Process() +{ + SimpleResponseMsg* msg = new SimpleResponseMsg; + ObjectRef ref(msg); + + // Check that the audio file to delete is actually an audio file + if(m_filename.Find('/') != -1 && (m_filename.Find(".pcm") != -1 || m_filename.Find(".wav") != -1 )) + { + if (ACE_OS::unlink((PCSTR)m_filename) == -1) + { + msg->m_success = false; + msg->m_comment = "could not delete file"; + } + + } + else + { + msg->m_success = false; + msg->m_comment = "filename not valid"; + } + + return ref; +} + |