macosx.m
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:7k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * macosx.m: Mac OS X module for vlc
  3.  *****************************************************************************
  4.  * Copyright (C) 2001-2006 the VideoLAN team
  5.  * $Id: 9c72c30bd6261e56b191966d5501ab83a32b042b $
  6.  *
  7.  * Authors: Colin Delacroix <colin@zoy.org>
  8.  *          Eugenio Jarosiewicz <ej0@cise.ufl.edu>
  9.  *          Florian G. Pflug <fgp@phlo.org>
  10.  *          Jon Lech Johansen <jon-vl@nanocrew.net>
  11.  *
  12.  * This program is free software; you can redistribute it and/or modify
  13.  * it under the terms of the GNU General Public License as published by
  14.  * the Free Software Foundation; either version 2 of the License, or
  15.  * (at your option) any later version.
  16.  *
  17.  * This program is distributed in the hope that it will be useful,
  18.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  19.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  20.  * GNU General Public License for more details.
  21.  *
  22.  * You should have received a copy of the GNU General Public License
  23.  * along with this program; if not, write to the Free Software
  24.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  25.  *****************************************************************************/
  26. /*****************************************************************************
  27.  * Preamble
  28.  *****************************************************************************/
  29. #include <stdlib.h>                                      /* malloc(), free() */
  30. #include <string.h>
  31. #ifdef HAVE_CONFIG_H
  32. # include "config.h"
  33. #endif
  34. #include <vlc_common.h>
  35. #include <vlc_plugin.h>
  36. /*****************************************************************************
  37.  * External prototypes
  38.  *****************************************************************************/
  39. int  OpenIntf     ( vlc_object_t * );
  40. void CloseIntf    ( vlc_object_t * );
  41. int  OpenVideoGL  ( vlc_object_t * );
  42. void CloseVideoGL ( vlc_object_t * );
  43. /*****************************************************************************
  44.  * Module descriptor
  45.  *****************************************************************************/
  46. #define VDEV_TEXT N_("Video device")
  47. #define VDEV_LONGTEXT N_("Number of the screen to use by default to display " 
  48.                          "videos in 'fullscreen'. The screen number correspondance can be found in "
  49.                          "the video device selection menu.")
  50. #define OPAQUENESS_TEXT N_("Opaqueness")
  51. #define OPAQUENESS_LONGTEXT N_( "Set the transparency of the video output. 1 is non-transparent (default) " 
  52.                                 "0 is fully transparent.")
  53. #define STRETCH_TEXT N_("Stretch video to fill window")
  54. #define STRETCH_LONGTEXT N_("Stretch the video to fill the entire window when "
  55.                             "resizing the video instead of keeping the aspect ratio and "
  56.                             "displaying black borders.")
  57. #define BLACK_TEXT N_("Black screens in fullscreen")
  58. #define BLACK_LONGTEXT N_("In fullscreen mode, keep screen where there is no " 
  59.                           "video displayed black" )
  60. #define BACKGROUND_TEXT N_("Use as Desktop Background")
  61. #define BACKGROUND_LONGTEXT N_("Use the video as the Desktop Background " 
  62.                                "Desktop icons cannot be interacted with in this mode." )
  63. #define FSPANEL_TEXT N_("Show Fullscreen controller")
  64. #define FSPANEL_LONGTEXT N_("Shows a lucent controller when moving the mouse " 
  65.                             "in fullscreen mode.")
  66. #define AUTOPLAY_OSX_TEST N_("Auto-playback of new items")
  67. #define AUTOPLAY_OSX_LONGTEXT N_("Start playback of new items immediately " 
  68.                                  "once they were added." )
  69. #define RECENT_ITEMS_TEXT N_("Keep Recent Items")
  70. #define RECENT_ITEMS_LONGTEXT N_("By default, VLC keeps a list of the last 10 items. " 
  71.                                  "This feature can be disabled here.")
  72. #define EQ_KEEP_TEXT N_("Keep current Equalizer settings")
  73. #define EQ_KEEP_LONGTEXT N_("By default, VLC keeps the last equalizer settings before " 
  74.                             "termination. This feature can be disabled here.")
  75. #define USE_APPLE_REMOTE_TEXT N_("Control playback with the Apple Remote")
  76. #define USE_APPLE_REMOTE_LONGTEXT N_("By default, VLC can be remotely controlled with the Apple Remote.")
  77. #define USE_MEDIAKEYS_TEXT N_("Control playback with media keys")
  78. #define USE_MEDIAKEYS_LONGTEXT N_("By default, VLC can be controlled using the media keys on modern Apple " 
  79.                                   "keyboards.")
  80. #define USE_MEDIAKEYS_BACKGROUND_TEXT N_("Use media key control when VLC is in background")
  81. #define USE_MEDIAKEYS_BACKGROUND_LONGTEXT N_("By default, VLC will accept media key events also when being " 
  82.                                              "in background.")
  83. vlc_module_begin ()
  84.     set_description( N_("Mac OS X interface") )
  85.     set_capability( "interface", 200 )
  86.     set_callbacks( OpenIntf, CloseIntf )
  87.     set_category( CAT_INTERFACE )
  88.     set_subcategory( SUBCAT_INTERFACE_MAIN )
  89.     linked_with_a_crap_library_which_uses_atexit( )
  90.     add_bool( "macosx-autoplay", 1, NULL, AUTOPLAY_OSX_TEST, AUTOPLAY_OSX_LONGTEXT,
  91.               false )
  92.     add_bool( "macosx-recentitems", 1, NULL, RECENT_ITEMS_TEXT, RECENT_ITEMS_LONGTEXT,
  93.               false )
  94.     add_bool( "macosx-eq-keep", 1, NULL, EQ_KEEP_TEXT, EQ_KEEP_LONGTEXT,
  95.               false )
  96.     add_bool( "macosx-fspanel", 1, NULL, FSPANEL_TEXT, FSPANEL_LONGTEXT,
  97.               false )
  98.     add_bool( "macosx-appleremote", 1, NULL, USE_APPLE_REMOTE_TEXT, USE_APPLE_REMOTE_LONGTEXT,
  99.              false )
  100.     add_bool( "macosx-mediakeys", 1, NULL, USE_MEDIAKEYS_TEXT, USE_MEDIAKEYS_LONGTEXT,
  101.              false )
  102.     add_bool( "macosx-mediakeys-background", 1, NULL, USE_MEDIAKEYS_BACKGROUND_TEXT, USE_MEDIAKEYS_BACKGROUND_LONGTEXT,
  103.              false )
  104.     add_submodule ()
  105.         set_description( "Mac OS X OpenGL" )
  106.         set_capability( "opengl provider", 100 )
  107.         set_category( CAT_VIDEO)
  108.         set_subcategory( SUBCAT_VIDEO_VOUT )
  109.         set_callbacks( OpenVideoGL, CloseVideoGL )
  110.         add_integer( "macosx-vdev", 0, NULL, VDEV_TEXT, VDEV_LONGTEXT,
  111.                      false )
  112.         add_bool( "macosx-stretch", 0, NULL, STRETCH_TEXT, STRETCH_LONGTEXT,
  113.                   false )
  114.         add_float_with_range( "macosx-opaqueness", 1, 0, 1, NULL,
  115.                               OPAQUENESS_TEXT, OPAQUENESS_LONGTEXT, true );
  116.         add_bool( "macosx-black", 1, NULL, BLACK_TEXT, BLACK_LONGTEXT,
  117.                   false )
  118.         add_bool( "macosx-background", 0, NULL, BACKGROUND_TEXT, BACKGROUND_LONGTEXT,
  119.                   false )
  120. vlc_module_end ()