projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
PT import: Add new import_pt.cc session methods
[ardour.git]
/
libs
/
ardour
/
audio_port.cc
diff --git
a/libs/ardour/audio_port.cc
b/libs/ardour/audio_port.cc
index 44e0298f1d7325a59eabd05b91bc23d825a0a879..1a6c30dcf25b5e6b07c66a27257603d59ad1d76c 100644
(file)
--- a/
libs/ardour/audio_port.cc
+++ b/
libs/ardour/audio_port.cc
@@
-30,6
+30,7
@@
using namespace ARDOUR;
using namespace std;
using namespace ARDOUR;
using namespace std;
+#define ENGINE AudioEngine::instance()
#define port_engine AudioEngine::instance()->port_engine()
AudioPort::AudioPort (const std::string& name, PortFlags flags)
#define port_engine AudioEngine::instance()->port_engine()
AudioPort::AudioPort (const std::string& name, PortFlags flags)
@@
-121,12
+122,18
@@
AudioPort::get_audio_buffer (pframes_t nframes)
{
/* caller must hold process lock */
assert (_port_handle);
{
/* caller must hold process lock */
assert (_port_handle);
+
+ Sample* addr;
+
if (!externally_connected ()) {
if (!externally_connected ()) {
- _buffer->set_data ((Sample *) port_engine.get_buffer (_port_handle, _cycle_nframes) +
- _global_port_buffer_offset, nframes);
+ addr = (Sample *) port_engine.get_buffer (_port_handle, nframes);
} else {
} else {
- _buffer->set_data (&_data[_global_port_buffer_offset], nframes);
+ /* _data was read and resampled as necessary in ::cycle_start */
+ addr = &_data[_global_port_buffer_offset];
}
}
+
+ _buffer->set_data (addr, nframes);
+
return *_buffer;
}
return *_buffer;
}
@@
-135,5
+142,5
@@
AudioPort::engine_get_whole_audio_buffer ()
{
/* caller must hold process lock */
assert (_port_handle);
{
/* caller must hold process lock */
assert (_port_handle);
- return (Sample *) port_engine.get_buffer (_port_handle,
_cycle_nframes
);
+ return (Sample *) port_engine.get_buffer (_port_handle,
ENGINE->samples_per_cycle()
);
}
}