summaryrefslogtreecommitdiff
path: root/orkbasecxx/messages/DeleteTapeMsg.cpp
blob: 9dc8dae72467b25891349ec49eafdf6320c62458 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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;
}