Skip to content

Commit c48bf05

Browse files
committed
transport: send correct time signature info to juce playhead
1 parent 2b5c116 commit c48bf05

3 files changed

Lines changed: 34 additions & 1 deletion

File tree

src/engine/transport.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ void Transport::postProcess (int nframes)
122122
if (ts.beatDivisor() != nextBeatDivisor.get())
123123
{
124124
ts.setBeatType ((unsigned short) nextBeatDivisor.get());
125-
ts.setBeatDivisor (1 << ts.beatType());
125+
ts.setBeatDivisor ((unsigned short) nextBeatDivisor.get());
126126
monitor->beatDivisor.set (nextBeatDivisor.get());
127127
updateTimeScale = true;
128128
}

test/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ add_test(NAME "ScriptManagerTest" COMMAND test_element --run_test=ScriptManagerT
4949
add_test(NAME "ScriptPlayground" COMMAND test_element --run_test=ScriptPlayground)
5050
add_test(NAME "SessionChangedTest" COMMAND test_element --run_test=SessionChangedTest)
5151
add_test(NAME "ShuttleTests" COMMAND test_element --run_test=ShuttleTests)
52+
add_test(NAME "TransportTests" COMMAND test_element --run_test=TransportTests)
5253
add_test(NAME "ToggleGridTest" COMMAND test_element --run_test=ToggleGridTest)
5354
add_test(NAME "UpdateTests" COMMAND test_element --run_test=UpdateTests)
5455
add_test(NAME "VelocityCurveTest" COMMAND test_element --run_test=VelocityCurveTest)

test/transporttests.cpp

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// SPDX-FileCopyrightText: Copyright (C) Kushview, LLC.
2+
// SPDX-License-Identifier: GPL-3.0-or-later
3+
4+
#include <boost/test/unit_test.hpp>
5+
#include <element/transport.hpp>
6+
#include "tempo.hpp"
7+
8+
using element::Transport;
9+
10+
BOOST_AUTO_TEST_SUITE (TransportTests)
11+
12+
BOOST_AUTO_TEST_CASE (publishesCorrectTimeSignatureDenominator)
13+
{
14+
Transport transport;
15+
16+
auto pos = transport.getPosition();
17+
BOOST_REQUIRE (pos.hasValue());
18+
BOOST_REQUIRE (pos->getTimeSignature().hasValue());
19+
BOOST_REQUIRE_EQUAL (pos->getTimeSignature()->numerator, 4);
20+
BOOST_REQUIRE_EQUAL (pos->getTimeSignature()->denominator, 4);
21+
22+
transport.requestMeter (7, element::BeatType::EighthNote);
23+
transport.postProcess (0);
24+
25+
pos = transport.getPosition();
26+
BOOST_REQUIRE (pos.hasValue());
27+
BOOST_REQUIRE (pos->getTimeSignature().hasValue());
28+
BOOST_REQUIRE_EQUAL (pos->getTimeSignature()->numerator, 7);
29+
BOOST_REQUIRE_EQUAL (pos->getTimeSignature()->denominator, 8);
30+
}
31+
32+
BOOST_AUTO_TEST_SUITE_END()

0 commit comments

Comments
 (0)