870920 Menu

Viewing all items for tag JUCE

JUCE小Tips:实现抓屏功能

有朋友Email询问,使用C++语言和JUCE类库做GUI编程时,如何实现抓屏功能(允许用户将程序界面的某个区域或整个界面保存为图像文件)。这个问题很简单,核心思路有二:

浏览全文

用JUCE开发Android和iOS程序的一个小Tip

DocumentWindow类(主窗口)的构造函数中需加一段宏包裹,使程序启动后即处于全屏。有些桌面程序同样也需如此,此时就不必多此一举了。代码见下:

浏览全文

JUCE类库小Tips:可缩放的界面

此处的“可缩放”并非传统的调整窗口大小,而是窗口(界面)中的所有GUI元素一并进行缩放。要实现此功能,思路有二:

浏览全文

JUCE类库小tips:Listener应该写成嵌套类吗?

是的,应该写到Broadcaster类中,使之成为嵌套类。

浏览全文

JUCE 4.2发布

新功能包括:支持Apple AudioUnit格式,所开发的iOS程序可作为GarageBand的插件来使用。对iOS和安卓的更多支持等等。

浏览全文

JUCE 4.0.1发布

11月4日,JUCE 4.0.1发布,主要变化有:

– 发布Projucer。Running注:Projucer类似于Introjucer,是一款独立运行的“准IDE”软件,专为使用JUCE类库的C++程序员打造。几年前Jules曾发布过一个操作演示,最让人惊奇的是该软件能做到“所见即所得”,即修改代码的同时,该软件后台自动进行基本无延迟的同步编译,程序员能实时看到代码的运行效果。Jules发布视频演示后,着实在业内引起了一些轰动,甚至惊动了C++界赫赫有名的大佬Scott Meyers,此人专为此写了一篇博客。后来由于一些变故和个人原因,Jules停止了Projucer的持续开发,再后来就没有下文了。没想到突然就冒了出来。这次发布的版本,由于笔者尚未试用,不清楚是否与几年前的那个Projucer一致。有一点可以肯定,Projucer的实时编译功能目前不能在Windows平台下正常使用,LLVM的问题……

浏览全文

JUCE类库升级到3.2.0

估计这是4.0出台之前最后一次大的升级了。本次升级,GPL协议及商业授权等方面的条款、价格一如既往。代码方面,大的变化主要有:

浏览全文

关于ValueTree深度复制的一则教训与实例

近期在做的项目,牵扯到文件、图像,音频、文本等方面的读写、交换与处理。毋容置疑,JUCE类库的ValueTree类实在是得心应手,方便之极。但是经验有时也不靠谱,轻车熟路,漫不经心的丁点草率,都有可能付出巨大的时间代价。

这两天整合调试某模块时,发现一个奇怪的现象:每次跑起来,不管喂进去多少条“记录”(程序中的概念定为note,一个note包含多项数据),明明总文件每次都保存成功了,MVC三者之间运作协调也良好无误,前台显示正常。但是下次启动,只保留了最后的note,其他都不见了。因总文件用了加密技术,懒得写查看单元,就尝试在已有代码中跟一跟。搞了许久无果,郁闷之至。

浏览全文

Linux下使用JUCE类库编程开发-1

Linux的发行版本较多,为方便叙述,本节内容以桌面装机量较大的Debian系Ubuntu 14.04 LTS为例。其他版本,可参照办理。

2015-06-13

使用JUCE类库在Linux下开发的程序员,遇到的首要问题是编译项目所需的库。这些库可一次性装完,也可在make时提示缺什么装什么:

浏览全文

JUCE类库FileBasedDocument详解

先了解一下程序中读写文件的大体流程(分两种情况):

  1. 从无到有的生成文件。运行程序,内部创建各种各样的数据类型和数据对象,一番操作处理后,将数据保存到磁盘文件中。该过程往往利用临时创建或某些类一直持有的XmlElement、ValueTree、JSON等对象(数据模型)来读取、计算和设置(修改、新增等等)各种数据。如有需要时,将这些对象中的数据保存到磁盘文件中。
  2. 读写已有的数据文件。和上个情况差不多,所不同的,内部的数据模型对象在创建时即直接初始化为磁盘文件中的数据,即:先加载和读取磁盘文件中的数据,将所需的数据设置到数据模型中(比如XmlElement对象的属性值)。而后,针对这些数据模型的对象进行读取和设置操作,处理完毕,将数据回写到磁盘文件中。

浏览全文