8abe238a4752c98d428de8321b5ec8dca525d672
[ardour.git] / libs / ardour / buffer.cc
1 /*
2     Copyright (C) 2006 Paul Davis 
3     
4     This program is free software; you can redistribute it and/or modify it
5     under the terms of the GNU General Public License as published by the Free
6     Software Foundation; either version 2 of the License, or (at your option)
7     any later version.
8     
9     This program is distributed in the hope that it will be useful, but WITHOUT
10     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12     for more details.
13     
14     You should have received a copy of the GNU General Public License along
15     with this program; if not, write to the Free Software Foundation, Inc.,
16     675 Mass Ave, Cambridge, MA 02139, USA.
17 */
18
19 #include <ardour/buffer.h>
20 #include <ardour/audio_buffer.h>
21 #include <ardour/midi_buffer.h>
22
23 #ifdef __x86_64__
24 static const int CPU_CACHE_ALIGN = 64;
25 #else
26 static const int CPU_CACHE_ALIGN = 16; /* arguably 32 on most arches, but it matters less */
27 #endif
28
29 namespace ARDOUR {
30
31
32 Buffer*
33 Buffer::create(DataType type, size_t capacity)
34 {
35         if (type == DataType::AUDIO)
36                 return new AudioBuffer(capacity);
37         else if (type == DataType::MIDI)
38                 return new MidiBuffer(capacity);
39         else
40                 return NULL;
41 }
42
43
44 } // namespace ARDOUR
45