Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save twissmueller/ce2cbbfbcb0012b4e4fcfb635adf60ee to your computer and use it in GitHub Desktop.
Save twissmueller/ce2cbbfbcb0012b4e4fcfb635adf60ee to your computer and use it in GitHub Desktop.
Enumerating a MIDIPacketList in Swift 2.
// Blogged at http://design.featherless.software/enumerate-midipacketlist-in-swift-part-1/
// and http://design.featherless.software/enumerate-midipacketlist-in-swift-part-2/
extension MIDIPacketList: SequenceType {
public func generate() -> AnyGenerator<MIDIPacket> {
var iterator: MIDIPacket?
var nextIndex: UInt32 = 0
return anyGenerator {
if nextIndex++ >= self.numPackets { return nil }
if iterator != nil {
iterator = withUnsafePointer(&iterator!) { MIDIPacketNext($0).memory }
} else {
iterator = self.packet;
}
return iterator
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment