diff options
-rw-r--r-- | intern/ghost/GHOST_Types.h | 8 | ||||
-rw-r--r-- | intern/ghost/intern/GHOST_EventPrinter.cpp | 12 | ||||
-rw-r--r-- | intern/ghost/intern/GHOST_SystemWin32.cpp | 17 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_object_api.c | 2 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_wm.c | 5 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_system.c | 7 | ||||
-rw-r--r-- | source/blender/windowmanager/wm_event_types.h | 6 |
7 files changed, 54 insertions, 3 deletions
diff --git a/intern/ghost/GHOST_Types.h b/intern/ghost/GHOST_Types.h index af17b10bf00..c3bc8d17b65 100644 --- a/intern/ghost/GHOST_Types.h +++ b/intern/ghost/GHOST_Types.h @@ -353,7 +353,13 @@ typedef enum { GHOST_kKeyF21, GHOST_kKeyF22, GHOST_kKeyF23, - GHOST_kKeyF24 + GHOST_kKeyF24, + + // Multimedia keypad buttons + GHOST_kKeyMediaPlay, + GHOST_kKeyMediaStop, + GHOST_kKeyMediaFirst, + GHOST_kKeyMediaLast } GHOST_TKey; typedef enum { diff --git a/intern/ghost/intern/GHOST_EventPrinter.cpp b/intern/ghost/intern/GHOST_EventPrinter.cpp index 697ced64a70..b3d936aedbe 100644 --- a/intern/ghost/intern/GHOST_EventPrinter.cpp +++ b/intern/ghost/intern/GHOST_EventPrinter.cpp @@ -325,6 +325,18 @@ void GHOST_EventPrinter::getKeyString(GHOST_TKey key, STR_String& str) const case GHOST_kKeyNumpadSlash: str = "NumpadSlash"; break; + case GHOST_kKeyMediaPlay: + str = "MediaPlayPause"; + break; + case GHOST_kKeyMediaStop: + str = "MediaStop"; + break; + case GHOST_kKeyMediaFirst: + str = "MediaFirst"; + break; + case GHOST_kKeyMediaLast: + str = "MediaLast"; + break; default: str = "unknown"; break; diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp index 24f9e96b109..64a1c209226 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.cpp +++ b/intern/ghost/intern/GHOST_SystemWin32.cpp @@ -136,6 +136,19 @@ #define VK_GR_LESS 0xE2 #endif // VK_GR_LESS +#ifndef VK_MEDIA_NEXT_TRACK +#define VK_MEDIA_NEXT_TRACK 0xB0 +#endif // VK_MEDIA_NEXT_TRACK +#ifndef VK_MEDIA_PREV_TRACK +#define VK_MEDIA_PREV_TRACK 0xB1 +#endif // VK_MEDIA_PREV_TRACK +#ifndef VK_MEDIA_STOP +#define VK_MEDIA_STOP 0xB2 +#endif // VK_MEDIA_STOP +#ifndef VK_MEDIA_PLAY_PAUSE +#define VK_MEDIA_PLAY_PAUSE 0xB3 +#endif // VK_MEDIA_PLAY_PAUSE + GHOST_SystemWin32::GHOST_SystemWin32() : m_hasPerformanceCounter(false), m_freq(0), m_start(0) @@ -640,6 +653,10 @@ GHOST_TKey GHOST_SystemWin32::convertKey(GHOST_IWindow *window, WPARAM wParam, L case VK_OEM_8: key = ((GHOST_SystemWin32*)getSystem())->processSpecialKey(window, wParam, lParam); break; + case VK_MEDIA_PLAY_PAUSE: key = GHOST_kKeyMediaPlay; break; + case VK_MEDIA_STOP: key = GHOST_kKeyMediaStop; break; + case VK_MEDIA_PREV_TRACK: key = GHOST_kKeyMediaFirst; break; + case VK_MEDIA_NEXT_TRACK: key = GHOST_kKeyMediaLast; break; default: key = GHOST_kKeyUnknown; break; diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c index ac4b86b4036..9f1ef7396c0 100644 --- a/source/blender/makesrna/intern/rna_object_api.c +++ b/source/blender/makesrna/intern/rna_object_api.c @@ -331,7 +331,7 @@ static PointerRNA rna_Object_shape_key_add(Object *ob, bContext *C, ReportList * int rna_Object_is_visible(Object *ob, Scene *sce) { - return !(ob->restrictflag & OB_RESTRICT_VIEW) && ob->lay & sce->lay; + return !(ob->restrictflag & OB_RESTRICT_VIEW) && (ob->lay & sce->lay); } /* diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index b4500a77f84..fd328a1545b 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -241,6 +241,11 @@ EnumPropertyItem event_type_items[] = { {PAGEDOWNKEY, "PAGE_DOWN", 0, "Page Down", ""}, {ENDKEY, "END", 0, "End", ""}, {0, "", 0, NULL, NULL}, + {MEDIAPLAY, "MEDIA_PLAY", 0, "Media Play/Pause", ""}, + {MEDIASTOP, "MEDIA_STOP", 0, "Media Stop", ""}, + {MEDIAFIRST, "MEDIA_FIRST", 0, "Media First", ""}, + {MEDIALAST, "MEDIA_LAST", 0, "Media Last", ""}, + {0, "", 0, NULL, NULL}, {WINDEACTIVATE, "WINDOW_DEACTIVATE", 0, "Window Deactivate", ""}, {TIMER, "TIMER", 0, "Timer", ""}, {TIMER0, "TIMER0", 0, "Timer 0", ""}, diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index af78e7113f7..39a6e5b27b5 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2196,7 +2196,12 @@ static int convert_key(GHOST_TKey key) case GHOST_kKeyNumpadSlash: return PADSLASHKEY; case GHOST_kKeyGrLess: return GRLESSKEY; - + + case GHOST_kKeyMediaPlay: return MEDIAPLAY; + case GHOST_kKeyMediaStop: return MEDIASTOP; + case GHOST_kKeyMediaFirst: return MEDIAFIRST; + case GHOST_kKeyMediaLast: return MEDIALAST; + default: return UNKNOWNKEY; /* GHOST_kKeyUnknown */ } diff --git a/source/blender/windowmanager/wm_event_types.h b/source/blender/windowmanager/wm_event_types.h index 5d7eb625f78..c3573f86c6d 100644 --- a/source/blender/windowmanager/wm_event_types.h +++ b/source/blender/windowmanager/wm_event_types.h @@ -207,6 +207,12 @@ #define OSKEY 172 #define GRLESSKEY 173 +// XXX: are these codes ok? +#define MEDIAPLAY 174 +#define MEDIASTOP 175 +#define MEDIAFIRST 176 +#define MEDIALAST 177 + /* for event checks */ /* only used for KM_TEXTINPUT, so assume that we want all user-inputtable ascii codes included */ #define ISTEXTINPUT(event) (event >=' ' && event <=255) |