相关疑难解决方法(0)

为什么这个简单的CoreMIDI程序不能产生MIDI输出?

这是一个发送MIDI数据的极其简单的CoreMIDI OS X应用程序.问题是它不起作用.编译好,并运行.它报告没有错误,并且不会崩溃.创建的源在MIDI监视器中可见.但是,没有MIDI数据出来.

有人能告诉我这里我做错了什么吗?

#include <CoreMIDI/CoreMIDI.h>

int main(int argc, char *args[])
{
    MIDIClientRef   theMidiClient;
    MIDIEndpointRef midiOut;
    MIDIPortRef     outPort;
    char pktBuffer[1024];
    MIDIPacketList* pktList = (MIDIPacketList*) pktBuffer;
    MIDIPacket     *pkt;
    Byte            midiDataToSend[] = {0x91, 0x3c, 0x40};
    int             i;

    MIDIClientCreate(CFSTR("Magical MIDI"), NULL, NULL,
                     &theMidiClient);
    MIDISourceCreate(theMidiClient, CFSTR("Magical MIDI Source"),
                     &midiOut);
    MIDIOutputPortCreate(theMidiClient, CFSTR("Magical MIDI Out Port"),
                         &outPort);

    pkt = MIDIPacketListInit(pktList);
    pkt = MIDIPacketListAdd(pktList, 1024, pkt, 0, 3, midiDataToSend);

    for (i = 0; i < 100; i++) {
        if (pkt == NULL || MIDISend(outPort, midiOut, …
Run Code Online (Sandbox Code Playgroud)

macos midi core-foundation coremidi

20
推荐指数
1
解决办法
8048
查看次数

你如何在Swift中分配/解除不安全的指针?

使用Beta 4,我有这个代码运行良好:

var red, green, blue, alpha: UnsafePointer<CGFloat>
red = UnsafePointer<CGFloat>.alloc(1)
green = UnsafePointer<CGFloat>.alloc(1)
blue = UnsafePointer<CGFloat>.alloc(1)
alpha = UnsafePointer<CGFloat>.alloc(1)
myColor.getRed(red, green: green, blue: blue, alpha: alpha)

CGContextSetRGBStrokeColor(context, red.memory, green.memory, blue.memory, 1)

red.dealloc(1)
green.dealloc(1)
blue.dealloc(1)
alpha.dealloc(1)
Run Code Online (Sandbox Code Playgroud)

现在使用Beta5,我得到错误"'UnsafePointer.Type'没有名为'alloc'的成员".

我要做的就是根据UIColor设置CGContext的笔触颜色.我现在应该怎么做?"withUnsafePointers"函数有点儿玩笑 - 它给出了奇怪的错误,它只需要最多三个不安全的指针,而我在这种情况下尝试使用四个.

swift

11
推荐指数
2
解决办法
9838
查看次数

标签 统计

core-foundation ×1

coremidi ×1

macos ×1

midi ×1

swift ×1