Skip to content
Commits on Source (5)
......@@ -843,7 +843,7 @@ private:
bool started = false, audioDeviceStopPending = false;
std::atomic<bool> playing { false };
double sampleRate = 0;
int bufferSize = 512;
int bufferSize = 0;
HeapBlock<float> audioBuffer;
int numInputChans = 0;
int numOutputChans = 0;
......
......@@ -246,18 +246,23 @@ private:
void NamedPipe::close()
{
ScopedWriteLock sl (lock);
if (pimpl != nullptr)
{
pimpl->stopReadOperation = true;
const ScopedReadLock sl (lock);
if (pimpl != nullptr)
{
pimpl->stopReadOperation = true;
const char buffer[] { 0 };
const auto done = ::write (pimpl->pipeIn.get(), buffer, numElementsInArray (buffer));
ignoreUnused (done);
const char buffer[] { 0 };
const auto done = ::write (pimpl->pipeIn.get(), buffer, numElementsInArray (buffer));
ignoreUnused (done);
}
}
pimpl.reset();
{
const ScopedWriteLock sl (lock);
pimpl.reset();
}
}
bool NamedPipe::openInternal (const String& pipeName, bool createPipe, bool mustNotExist)
......
......@@ -187,29 +187,6 @@ struct ItemComponent : public Component
PopupMenu::Item item;
private:
class ValueInterface : public AccessibilityValueInterface
{
public:
ValueInterface() = default;
bool isReadOnly() const override { return true; }
double getCurrentValue() const override
{
return 1.0;
}
String getCurrentValueAsString() const override
{
return TRANS ("Checked");
}
void setValue (double) override {}
void setValueAsString (const String&) override {}
AccessibleValueRange getRange() const override { return {}; }
};
//==============================================================================
class ItemAccessibilityHandler : public AccessibilityHandler
{
......@@ -218,9 +195,7 @@ private:
: AccessibilityHandler (itemComponentToWrap,
isAccessibilityHandlerRequired (itemComponentToWrap.item) ? AccessibilityRole::menuItem
: AccessibilityRole::ignored,
getAccessibilityActions (*this, itemComponentToWrap),
AccessibilityHandler::Interfaces { itemComponentToWrap.item.isTicked ? std::make_unique<ValueInterface>()
: nullptr }),
getAccessibilityActions (*this, itemComponentToWrap)),
itemComponent (itemComponentToWrap)
{
}
......@@ -242,7 +217,7 @@ private:
}
if (itemComponent.item.isTicked)
state = state.withChecked();
state = state.withCheckable().withChecked();
return state.isFocused() ? state.withSelected() : state;
}
......
......@@ -49,13 +49,12 @@ namespace AccessibilityTextHelpers
{
const auto numCharacters = textInterface.getTotalNumCharacters();
const auto isForwards = (direction == Direction::forwards);
const auto offsetWithDirecton = [isForwards] (int input) { return isForwards ? input : -input; };
const auto offsetWithDirection = [isForwards] (auto num) { return isForwards ? num : -num; };
switch (boundary)
{
case BoundaryType::character:
return jlimit (0, numCharacters, isForwards ? currentPosition + 1 : currentPosition);
return jlimit (0, numCharacters, currentPosition + offsetWithDirection (1));
case BoundaryType::word:
case BoundaryType::line:
......@@ -96,7 +95,7 @@ namespace AccessibilityTextHelpers
auto tokens = (boundary == BoundaryType::line ? StringArray::fromLines (text)
: StringArray::fromTokens (text, false));
return currentPosition + offsetWithDirecton (tokens[0].length());
return currentPosition + offsetWithDirection (tokens[0].length());
}
case BoundaryType::document:
......
......@@ -278,7 +278,7 @@ private:
if (auto* handler = getHandler (self))
{
if (handler->getCurrentState().isCheckable())
return handler->getCurrentState().isChecked() ? @(1) : @(0);
return juceStringToNS (handler->getCurrentState().isChecked() ? TRANS ("On") : TRANS ("Off"));
return getAccessibilityValueFromInterfaces (*handler);
}
......
......@@ -248,7 +248,9 @@ private:
{
const auto boundaryType = getBoundaryType (unit);
const auto start = AccessibilityTextHelpers::findTextBoundary (*textInterface,
const auto start = unit == ComTypes::TextUnit::TextUnit_Character
? selectionRange.getStart()
: AccessibilityTextHelpers::findTextBoundary (*textInterface,
selectionRange.getStart(),
boundaryType,
AccessibilityTextHelpers::Direction::backwards);
......