spek

Acoustic spectrum analyser
git clone http://git.hanabi.in/repos/spek.git
Log | Files | Refs | README

commit 57756a0c52c579f3e4f20c9c7e1ca94c3b09cd5e
parent 034c165d426b26056ca5890540c677110e84e9c3
Author: Alexander Kojevnikov <alexander@kojevnikov.com>
Date:   Sat, 15 Sep 2012 18:23:14 -0700

osx: Associate with audio and video files, closes #2

Diffstat:
Mdist/osx/Info.plist.in | 22+++++++++++++++++++++-
Msrc/spek.cc | 21+++++++++++++++++----
2 files changed, 38 insertions(+), 5 deletions(-)

diff --git a/dist/osx/Info.plist.in b/dist/osx/Info.plist.in @@ -25,6 +25,26 @@ <key>NSHumanReadableCopyright</key> <string>Copyright (c) 2010-2012 Alexander Kojevnikov and contributors</string> <key>LSMinimumSystemVersion</key> - <string>10.4</string> + <string>10.5</string> + <key>CFBundleDocumentTypes</key> + <array> + <dict> + <key>CFBundleTypeIconFiles</key> + <array> + <string>Spek.icns</string> + </array> + <key>CFBundleTypeName</key> + <string>Spek File</string> + <key>CFBundleTypeRole</key> + <string>Viewer</string> + <key>LSHandlerRank</key> + <string>Alternate</string> + <key>LSItemContentTypes</key> + <array> + <string>public.audio</string> + <string>public.movie</string> + </array> + </dict> + </array> </dict> </plist> diff --git a/src/spek.cc b/src/spek.cc @@ -33,13 +33,17 @@ extern "C" { class Spek: public wxApp { public: - Spek() : wxApp(), quit(false) {} + Spek() : wxApp(), window(NULL), quit(false) {} protected: virtual bool OnInit(); virtual int OnRun(); +#ifdef OS_OSX + virtual void MacOpenFiles(const wxArrayString& files); +#endif private: + SpekWindow *window; wxString path; bool quit; }; @@ -102,9 +106,9 @@ bool Spek::OnInit() this->path = parser.GetParam(); } - SpekWindow *window = new SpekWindow(this->path); - window->Show(true); - SetTopWindow(window); + this->window = new SpekWindow(this->path); + this->window->Show(true); + SetTopWindow(this->window); return true; } @@ -116,3 +120,12 @@ int Spek::OnRun() return wxApp::OnRun(); } + +#ifdef OS_OSX +void Spek::MacOpenFiles(const wxArrayString& files) +{ + if (files.GetCount() == 1) { + this->window->open(files[0]); + } +} +#endif