From d102fb2d8deda4d09c0e3ce90721488fd78a2ad2 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Thu, 6 Oct 2011 15:59:48 +0000 Subject: moved [keyboard_layout] to the apple lib, since its Apple only svn path=/trunk/externals/hcs/; revision=15530 --- keyboard_layout.c | 116 ------------------------------------------------------ 1 file changed, 116 deletions(-) delete mode 100644 keyboard_layout.c (limited to 'keyboard_layout.c') diff --git a/keyboard_layout.c b/keyboard_layout.c deleted file mode 100644 index b51168c..0000000 --- a/keyboard_layout.c +++ /dev/null @@ -1,116 +0,0 @@ -/* Copyright 2006 Fredrik Olofsson - * Copyright 2007 Free Software Foundation - * ported to Pd by Hans-Christoph Steiner from f0.keyboard_layout.c - */ - -#include "m_pd.h" -#ifdef __APPLE__ -#include -#endif - -static t_class *keyboard_layout_class; - -typedef struct _keyboard_layout { - t_object x_obj; - t_outlet* x_data_outlet; - t_outlet* x_status_outlet; -} t_keyboard_layout; - -#ifdef __APPLE__ - -//---------------------------------------------------------------------------------------------- -void keyboard_layout_bang(t_keyboard_layout *x) { - //OSStatus err; - KeyboardLayoutRef currentLayoutRef; - const void *keyboardName; - char cKeyboardName[100]; - - KLGetCurrentKeyboardLayout(¤tLayoutRef); - KLGetKeyboardLayoutProperty(currentLayoutRef, kKLName, (const void **)&keyboardName); - CFStringGetCString((CFStringRef)keyboardName, cKeyboardName, 100, kCFStringEncodingASCII); - - outlet_symbol(x->x_data_outlet, gensym(cKeyboardName)); -} - -void keyboard_layout_menu(t_keyboard_layout *x) { - //OSStatus err; - KeyboardLayoutRef currentLayoutRef; - const void *keyboardName; - char cKeyboardName[100]; - CFIndex countOfLayouts; - CFIndex i; - t_atom name; - -// TODO this should probably output [menu clear( so other messages work too - outlet_anything(x->x_status_outlet, gensym("clear"), 0, NULL); - - KLGetKeyboardLayoutCount(&countOfLayouts); - for(i= 0; ix_status_outlet, gensym("append"), 1, &name); - } -} - -void keyboard_layout_anything(t_keyboard_layout *x, t_symbol *s, short argc, t_atom *argv) { - //OSStatus err; - KeyboardLayoutRef currentLayoutRef; - const void *keyboardName; - char cKeyboardName[100]; - - keyboardName= CFStringCreateWithCString(NULL, s->s_name, kCFStringEncodingASCII); - KLGetKeyboardLayoutWithName(keyboardName, ¤tLayoutRef); - KLGetKeyboardLayoutProperty(currentLayoutRef, kKLName, (const void **)&keyboardName); - CFStringGetCString((CFStringRef)keyboardName, cKeyboardName, 100, kCFStringEncodingASCII); - KLSetCurrentKeyboardLayout(currentLayoutRef); - //outlet_anything(x->t_out, s, 0, NULL); - keyboard_layout_bang(x); -} - -void *keyboard_layout_new(void) { - t_keyboard_layout *x = (t_keyboard_layout *)pd_new(keyboard_layout_class); - - x->x_data_outlet = outlet_new(&x->x_obj, &s_float); - x->x_status_outlet = outlet_new(&x->x_obj, &s_symbol); - - return (x); -} - -//---------------------------------------------------------------------------------------------- -void keyboard_layout_setup(void) { - keyboard_layout_class = class_new(gensym("keyboard_layout"), - (t_newmethod)keyboard_layout_new, - NULL, - sizeof(t_keyboard_layout), - 0, A_GIMME, 0); - - class_addbang(keyboard_layout_class, (t_method)keyboard_layout_bang); - class_addanything(keyboard_layout_class, (t_method)keyboard_layout_anything); - - class_addmethod(keyboard_layout_class, (t_method)keyboard_layout_menu, - gensym("menu"), 0); - - post("f0.keyboard_layout v1.1-ub; distributed under GNU GPL license"); -} - - -#else /* GNU/Linux and Windows */ - - -void keyboard_layout_new(void) -{ - post("f0.keyboard_layout v1.1-ub; distributed under GNU GPL license"); - post("ERROR: this objectclass is currently only for Mac OS X"); -} - -void keyboard_layout_setup(void) -{ - keyboard_layout_class = class_new(gensym("text"), (t_method)keyboard_layout_new, - NULL, sizeof(t_keyboard_layout), 0, 0); -} - -#endif /* __APPLE__ */ -- cgit v1.2.1