标签: juce

在JUCE中嵌入字体

我正在寻找一个简单的逐步解决方案,在JUCE中嵌入字体.

我在我的应用程序中嵌入字体时遇到了一些麻烦(完全忘了在应用程序发布之前把时间花在这上面,现在我的应用程序没有在用户系统上显示我的字体 - 这是可以理解的).

我已经搜索并关注了有关该主题的所有帖子,但我仍然遇到问题.我想将嵌入字体添加到我的应用程序中已存在的标签中,这些标签是我们创建的,并通过ProJucer GUI组件进行布局.

到目前为止我做了什么:

1)将字体添加到我的ProJucer会话中,以便将其添加到BinaryData

2)创建了一个名为"EmbeddedFont:"的类

#include "../JuceLibraryCode/JuceHeader.h"

class EmbeddedFonts
{
private:
    Font calistoMT;

public:
    EmbeddedFonts();
    Font& getCalistoMT();
};
Run Code Online (Sandbox Code Playgroud)

EmbeddedFonts::EmbeddedFonts()
{
    // in the line below is where I'm getting the assertion error: jassert (typefaceName.isNotEmpty());
    calistoMT = Font(Typeface::createSystemTypefaceFor(BinaryData::Calisto_MT,
                                                       BinaryData::Calisto_MTSize));
}

Font& EmbeddedFonts::getCalistoMT()
{
    return calistoMT;
}
Run Code Online (Sandbox Code Playgroud)

3)在我的GUI组件类的标题中创建了一个这样的实例4)尝试将此字体传递给标签字体:

genericLabelName->setFont(embeddedFont.getCalistoMT());
Run Code Online (Sandbox Code Playgroud)

不确定从这里做什么.此外,在我使嵌入字体工作后,我应该对projucer GUI组件中的字体字段做些什么?我应该把它设置为相同的字体吗?我只是问,因为我在技术上会在构造函数中设置两次字体(一次来自GUI Component选项下拉菜单,一次是手工编写嵌入字体).

我已经尝试了几天,但仍然遇到麻烦.谢谢你的帮助.这是我在发布下一个应用更新之前需要做的最后一件事,所以非常感谢任何帮助.

fonts juce

13
推荐指数
1
解决办法
814
查看次数

将OpenCV与更大的程序集成

任何人都可以推荐一个操作指南或简要概述将OpenCV与更大的基于GUI的程序集成的内容吗?有哪些流行的方法呢?

特别是,在使用HighGUI 进行视频捕获/预览的同时使用OpenCV处理视频看起来特别神秘.我希望有人能揭开神秘面纱.

我的特殊配置是使用Juce或Qt,具体取决于可以做什么.跨平台的事情并不重要 - 如果在Windows中有一个很棒的方法,我可能会相信.社区支持的可用性很重要.

我听说HighGUI完全用于测试,不适合实际应用.有人推荐了VideoInput库,但它是实验性的.


答案要点:

  • 使用Qt(因为Qt很棒并且有一个很大的社区).
  • 打开一个新线程以在循环中运行cv :: VideoCapture并emit在帧捕获后发出信号.使用Qt的msleep机制,而不是OpenCV.因此,我们仍在使用OpenCV highgui进行捕获.
  • 将cv :: Mat转换为QtImage:

    QImage qtFrame(cvFrame.data, cvFrame.size().width, cvFrame.size().height, cvFrame.step, QImage::Format_RGB888);

    qtFrame = qtFrame.rgbSwapped();

  • 可选:使用GLWidget渲染.使用Qt内置方法将QtImage转换为GLFormat:

    m_GLFrame = QGLWidget::convertToGLFormat(frame);

    this->updateGL();

user-interface qt opencv juce

12
推荐指数
1
解决办法
3565
查看次数

具有64位架构的iOS JUCE库问题

我正在研究具有32位架构的JUCE库的非常古老的项目.几天前,我确实将它从32位转换为64位架构,并且出现了问题.而JUCE库也有C++代码,很难理解为什么会出现错误.
我收到了以下错误.

Cast from pointer to smaller type 'pointer_sized_int' (aka 'int') loses information
Run Code Online (Sandbox Code Playgroud)

pointer_sized_int变量.

而且我也尝试设置,long pointer_sized_int但发生了一些其他错误.

Implicit instantiation of undefined template 'juce::JuceStaticAssert<false>'
Run Code Online (Sandbox Code Playgroud)

我的意思是这个库与64位架构不兼容.(我正在使用)

基本上我在项目的源代码中使用了"JUCE Amalgamation"库,我也找到了这个库,并且还包含在我的项目中(我试过很多方法来修复它)但是没有成功.

以前有人遇到过这类问题吗?请建议我如何解决这个问题.

谢谢.

c++ iphone objective-c ios juce

10
推荐指数
1
解决办法
295
查看次数

JUCE - 开辟新窗口

来自使用JUCE中的可视WYSISWYG编辑器制作单页应用程序,我在确定如何调用新窗口(在主GUI窗口之外)时遇到了一些麻烦.我创建了一个测试应用程序,它只有一个我用可视化编辑器创建的小型主GUI.它有一个"制作新窗口"按钮.我的目标是能够单击该按钮并弹出一个新窗口,并且这个新窗口是JUCE"GUI组件"(AKA,图形/可视GUI编辑器文件).现在,我竟然有点实现这一点,但是,其引发错误和断言,所以这将是伟大的得到一个非常简单的,一步一步的教程.

我研究了Projucer自动创建的main.cpp文件,以便了解它们如何创建窗口.这就是我做的.

1)在我的项目中,我添加了一个新的GUI组件(它成为一个类)并将其称为"InvokedWindow".2)在我的主GUI组件类头中,我添加了一个类型为InvokedWindow的新范围指针:ScopedPointer<InvokedWindow> invokedWindow; 3)我在主GUI编辑器中创建了一个名为"Make New Window"的新按钮,并将其添加到处理程序代码中: newWindowPtr = new InvokedWindow;这样任何时候按下按钮,创建一个InvokedWindow类型的新对象.4)在InvokedWindow类中,在构造函数中,在自动生成的代码之上,我添加了:

setUsingNativeTitleBar (true);
setCentrePosition(400, 400);
setVisible (true);
setResizable(false, false);
Run Code Online (Sandbox Code Playgroud)

我从JUCE应用程序的主文件中获得了哪些内容.

我还在这个新窗口中添加了一个滑块,只是为了添加它的功能.

5)我添加了一个重载函数让我关闭窗口:

void InvokedWindow::closeButtonPressed()
{
    delete this;
}
Run Code Online (Sandbox Code Playgroud)

所以,现在当我运行应用程序并单击make new window按钮时,会弹出一个新窗口,但是我得到一个断言:

/* Agh! You shouldn't add components directly to a ResizableWindow - this class
   manages its child components automatically, and if you add your own it'll cause
   trouble. Instead, use setContentComponent() to give it a component which
   will be automatically resized and kept in the right …
Run Code Online (Sandbox Code Playgroud)

c++ juce

6
推荐指数
1
解决办法
1388
查看次数

在 Linux 上的项目中包含 ft2build.h

我一直在尝试在 Linux debian 上编译一个 JUCE 项目,但是一行给了我一个错误:

#include <ft2build.h>
Run Code Online (Sandbox Code Playgroud)

并停止编译。我如何链接到这个文件?

c++ include freetype juce

6
推荐指数
1
解决办法
2844
查看次数

Juce库插件的phonegap

是否有任何插件可用于Juce库我可以添加,哪些可以适用于IOS和Android?如果没有,我如何Juce在我的手机间隙应用程序中集成库?

juce phonegap-plugins

5
推荐指数
1
解决办法
96
查看次数

将可执行文件链接到第三方相关共享库时的 C++ CMake 未定义引用

我阅读了很多相关主题(如123),但我自己没有找到答案,所以我在这里。

我有一个构建和可执行的 CMake 项目,比如说“x”。我创建了一个名为“a.so”的共享库,它依赖于其他名为“b.so”的共享库。我想在“x”中使用“a”。

这是我简化的“x”CMakelists.txt:

SET(ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR})

LINK_DIRECTORIES(${ROOT_DIR}/lib/a/bin/) # contains liba.so

INCLUDE_DIRECTORIES(${ROOT_DIR}/lib/a/include/) # contains "a" headers

ADD_EXECUTABLE(x ${SOURCE})

TARGET_LINK_LIBRARIES(x a)
Run Code Online (Sandbox Code Playgroud)

"x" 编译输出摘录:

Linking CXX executable ../bin/x
/usr/bin/cmake -E cmake_link_script CMakeFiles/x.dir/link.txt --verbose=1
/usr/lib64/ccache/c++   -std=c++0x    CMakeFiles/x.dir/src/main /Main.cpp.o 
 ... -L/.../lib/a/bin -rdynamic  -la  -Wl,-rpath,/.../lib/a/bin 
Run Code Online (Sandbox Code Playgroud)

“a”和“b”可以编译。

问题是当我想编译 x 时,我在链接时出错:未定义对“函数名称”的引用。 我也尝试链接到“b”,但它仍然无法正常工作

这里“b”也出现了,但我得到了同样的错误......

Linking CXX executable ../bin/x
/usr/bin/cmake -E cmake_link_script CMakeFiles/x.dir/link.txt --verbose=1 
/usr/lib64/ccache/c++   -std=c++0x    CMakeFiles/x.dir/src/main 
/Main.cpp.o -o ../bin/x  -L/.../lib/b/bin -L/.../lib/a/bin 
-rdynamic -lb -la -Wl,-rpath,/.../lib/b/bin:/.../lib/a/bin 
Run Code Online (Sandbox Code Playgroud)

这是错误输出:

 $ make
 [ 20%] Automatic …
Run Code Online (Sandbox Code Playgroud)

c++ linker cmake shared-libraries juce

5
推荐指数
1
解决办法
5170
查看次数

在 juce 音频应用程序中打印 MIDI 音符编号

我试图在按下时将 MIDI 音符编号打印到 Juce 音频应用程序中的标签中。这是我目前拥有的代码:

在MainComponent头文件中:

class MainComponent   : public Component,
                        public MidiInputCallback

{
public:
    //==============================================================================
    MainComponent();
    ~MainComponent();

    void resized() override;
    void handleIncomingMidiMessage (MidiInput*, const MidiMessage&);


private:
    //==============================================================================
    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainComponent)
    AudioDeviceManager audioDeviceManager;
    Label midiLabel;
};
Run Code Online (Sandbox Code Playgroud)

在 MainComponent.cpp 构造函数中:

MainComponent::MainComponent()
{
    setSize (500, 400);

    audioDeviceManager.setMidiInputEnabled("USB Axiom 49 Port 1", true);
    audioDeviceManager.addMidiInputCallback (String::empty, this);

    //midiLabel
    midiLabel.setText("midiText", sendNotification);
    addAndMakeVisible(midiLabel);
}
Run Code Online (Sandbox Code Playgroud)

最后在handleIncomingMidiMessage函数中:

void MainComponent::handleIncomingMidiMessage(MidiInput*, const MidiMessage&)
{
    DBG("MIDI Message Recieved\n");


    //display label text
    String midiText;
    MidiMessage message;
    if (message.isNoteOnOrOff()) {
        midiText << "NoteOn: Channel …
Run Code Online (Sandbox Code Playgroud)

c++ midi juce

5
推荐指数
1
解决办法
949
查看次数

Visual Studio 2015使用Clang 3.7构建错误

所以这是Visual Studio 2015 Update 1的一个后续问题,clang错误

我得到的错误信息是

clang.exe:错误:生成多个输出文件时无法指定-o

基本上,Hans Passant关于禁用预编译头文件的解决方法对我来说并不适用.我仍然看到错误.任何人都有更多的想法来解决这个问题?

我的VS生成的命令行是: -fpic -std=c++1y -fstack-protector -x c++ "Debug\" -Wall -fno-strict-aliasing -ffunction-sections -I "c:\SDKs\VST3 SDK" -I "c:\SDKs\vstsdk2.4" -I "....\JuceLibraryCode" -I "......\JUCE\modules" -g2 -gdwarf-2 -O0 -x c++-header -D "_CRT_SECURE_NO_WARNINGS" -D "WIN32" -D "_WINDOWS" -D "DEBUG" -D "_DEBUG" -D "JUCER_VS2010_78A501D=1" -D "JUCE_APP_VERSION=1.0.0" -D "JUCE_APP_VERSION_HEX=0x10000" -D "_WINDLL" -frtti -fomit-frame-pointer -fdata-sections -fno-ms-compatibility -std=c11 -fexceptions -o "Debug\" -fms-extensions -fno-short-enums

我正在尝试使用Clang在Windows中构建一个C++ JUCE音频插件,因为我最初在Mac上开发它时最终使用了大量的C++ 14功能并且没有意识到其他编译器在C++标准中稍微落后一点支持.JUCE应用程序通过VS/XCode项目文件或从Introjucer/Projucer应用程序生成的Makefile提供跨平台支持.如果我使用带有Clang 3.7项目模板的VS2015跨平台C++ DLL设置一个新项目,那么一切都很好.但是使用JUCE生成的VS项目文件然后切换项目首选项以使用Clang 3.7项目工具集是我遇到此错误的地方.

c++ juce clang++ c++14 visual-studio-2015

5
推荐指数
0
解决办法
383
查看次数

JUCE for Android入门

我需要开始构建一个使用JUCE库的Android应用程序.我正在阅读该网站,并试图解决问题.

我尝试在Ubuntu 11.04系统上安装JUCE,当我构建IntroJucer应用程序时,菜单无法正常工作(当我用鼠标点击但它们会消失时它们会闪烁).Android的JUCE应用程序可以在Mac OS X甚至Windows上构建吗?

如果您使用JUCE构建Android应用程序,请给我任何建议.

android juce

4
推荐指数
2
解决办法
3712
查看次数