Why QuickTime API for Windows - macos

QuickTime provides a set of APIs named "Windows API", as described here.
Its description tells the APIs are used for Windows, but the references also says the APIs are available on OS X 10.3 and later. The function of those APIs are mainly thread synchronization or thread scheduling.
Why those APIs marked "for Windows" are available on OS X? Are they intended for writing cross-platform code?

These functions are necessary on preemptive multitasking environments. When QuickTime was introduced, Apple didn't have a preemptive OS (besides A/UX and A/ROSE). When ported to Windows NT, they added these functions, so were called 'Windows API'. Later, with Rhapsody and MacOS X, Apple maintained the same functions (but i think there are some alternatives now). Yes, the whole QuickTime API is cross-platform.

Related

Is there any plan to support the Firefox OS Web APIs in Intel XDK?

Intel XDK is a really promising tool for X-platform development.
Is Firefox OS considered as a supported platform for it?
Firefox OS is not currently supported by the Intel XDK. Could it be supported? Yes. Will it be supported? Not sure. As of this writing, our primary targets are those that support the Cordova API and the recently introduced Crosswalk runtime for Android. (The new Crosswalk target includes a Cordova 3.0 implementation.)
There are a lot of questions that need to be answered in order to support Firefox OS, mostly having to do with how do we support the Firefox OS API AND make your test/debug experience meaningful within the XDK. At the moment the only device APIs we can help you test and debug in a meaningful way are the Cordova and Intel XDK device APIs.
Check out our forum periodically for updates and improvements to the product.

Language options for GUI applications on OS X

If I want to write applications that use the Mac OSX UI, is Objective-C the only choice that I have to take advantage of all the frameworks that Apple provides?
Can I use Java, which is installed with Mac OS X?
I think Objective-C will provide the best coverage, yes, but if you want to consider portability and the possibility of getting your applications running under Windows and/or Linux, then choose Qt and C++.
The frameworks for native UI applications on Mac OS X (collectively known as Cocoa) are written in Objective-C so Objective-C is probably the best choice for writing your own applications, although there are bindings for Python and Ruby.
There are other toolkits that can be used (Mac OS X is a *nix system after all) but unless you are writing cross-platform apps, most people will advise you to use Objective-C and Cocoa.
MacRuby, an implementation of Ruby 1.9 on top of Mac OS X Objective-C runtime and Foundation framework, is another way to go.
You still need a deep knowledge of Cocoa and a good understanding of Objective-C.
It will be provided with Mac OS X 10.7 Lion as a private framework. It already integrates very well in XCode 4 workflow, with templates for all type of application (including windowed, it goes without saying).
(MacRuby makes RubyCocoa, the Cocoa binding for Ruby, obsolete.)
The JVM for Java under Mac OS X is no longer provided by Apple, but by Oracle (see here).
I guess Objective-C is the best choice for native OS X Applications. But if you want your Applications to run under other OSs (like Windows or Linux), you'll most likely use C++ and some GUI-Toolkit which supports all of them.
If you come from the Perl world, here is Sherm's CamelBones too.

For Windows there is Win32 API, what about for Mac?

For Windows there is Win32 API, what about for Mac? On Wikipedia
http://en.wikipedia.org/wiki/Cocoa_(API)
it is said that Cocoa is "one of" the API... what about the full story?
At what level? The low level API is largely but not entirely FreeBSD, and below that there is still a Mach API (some things still use Mach ports for IPC, I believe; at least, launchd supports them). At the upper level are two APIs: Cocoa and Carbon. Cocoa is the native API; Carbon is intended for programs ported from older MacOS. (Which includes parts of OSX itself; for a long time Finder was a Carbon app.)
The Windows situation isn't all that different, actually; there was for a long time a Win16 emulation API present in 32-bit Windows, and in the early days of Windows NT it had both POSIX and 16-bit OS/2 APIs.
That pretty much is the full story. Mac OS X does support other APIs, but they're either deprecated (Carbon), or intended primarily to support "foreign" software (Java, X11, POSIX). The native API is Cocoa.
Mac OS X is Unix underneath. That's the "other" API.

Mac/Windows MIDI application programming language

What is the best programming language for writing MIDI-interactive musical application that would be run on MAC and on Windows?
I've written cross platform (Mac OS X and Windows) MIDI applications using C++. I used the RtMidi for MIDI I/O which was incredibly easy to get going (on every platform just it just worked out of the box). The advantage of C++ is that you can use native GUIs on each platform, but if you're not already into C++ I'd say a cross platform project is a pretty ambitious first project.
One possibility is .NET (C# or VB.Net), which runs on Windows (of course) and Mac (thanks to Mono). The downside is that .NET does not have any native support for MIDI, so you'd have to tap into two different native APIs for MIDI.
Java is another possibility, since it has a number of MIDI-supporting libraries available. Your UI is bound to look pretty terrible, though.
Python has substantial support for MIDI and runs on Mac and Win.
pygame.midi
PyPortMidi
PythonMIDI
pyrtmidi
For both mac and windows I would suggest Java. Midi is just a protocol so any language can do it. A good framework will speed things up a lot. Java has frameworks to work with Midi and other multimedia sources.
PortMidi is another popular cross-platform MIDI library. Qt is a nice cross-platform Framework, GUI and utility library.
It's an old thread, but nowdays you can use .NET. I mean official cross-platform .NET from Microsoft, not Mono. In this case I can recommend my library – DryWetMIDI. Its core part (working with MIDI files, processing MIDI data and so on) is cross-platform for any OS supported by .NET.
As for working with MIDI devices, this API supports Windows and macOS (that's what you need). Full documentation of the library availabale here: https://melanchall.github.io/drywetmidi. There you can find full API reference and help articles. For example, overview article on working with MIDI devices.
The library is distributed via NuGet package and can be installed via NuGet on both Windows and macOS.

Is there is a Cocoa framework for windows or a interface builder for windows like we have in mac?

Is there is a Cocoa framework for windows or a interface builder for windows like we have in mac?.
Thanks.
You might look into Cocotron,
an open source project which aims to implement a cross-platform Objective-C API similar to that described by Apple Inc.'s Cocoa documentation. This includes the AppKit, Foundation, Objective-C runtime and support APIs such as CoreGraphics and CoreFoundation.
…
The general goal is to provide complete support on any viable platform, the project is intended to be as portable as possible. However, most of the work at this time is focused on providing support for Microsoft Windows. In particular the NT based versions, 2000 up to Vista.
No. You can install Objective-c on windows and you can install some of the old the NextStep APIs but you can't get the Cocoa Frameworks or other Apple APIs.

Resources