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

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * callback.c : Callbacks for CD digital audio input module
  3.  *****************************************************************************
  4.  * Copyright (C) 2004 the VideoLAN team
  5.  * $Id: b3c0e3119a6776f45d3fd5e517f54b1a5100b088 $
  6.  *
  7.  * Authors: Rocky Bernstein <rocky@panix.com>
  8.  *
  9.  * This program is free software; you can redistribute it and/or modify
  10.  * it under the terms of the GNU General Public License as published by
  11.  * the Free Software Foundation; either version 2 of the License, or
  12.  * (at your option) any later version.
  13.  *
  14.  * This program is distributed in the hope that it will be useful,
  15.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  * GNU General Public License for more details.
  18.  *
  19.  * You should have received a copy of the GNU General Public License
  20.  * along with this program; if not, write to the Free Software
  21.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  22.  *****************************************************************************/
  23. #include "callback.h"
  24. #include "cdda.h"
  25. int
  26. CDDADebugCB   ( vlc_object_t *p_this, const char *psz_name,
  27.                     vlc_value_t oldval, vlc_value_t val, void *p_data )
  28. {
  29.     cdda_data_t *p_cdda;
  30.     if (NULL == p_cdda_input) return VLC_EGENERIC;
  31.     p_cdda = (cdda_data_t *)p_cdda_input->p_sys;
  32.     if (p_cdda->i_debug & (INPUT_DBG_CALL|INPUT_DBG_EXT))
  33.     {
  34.         msg_Dbg( p_cdda_input, "old debug (x%0x) %d, new debug (x%0x) %d",
  35.                  p_cdda->i_debug, p_cdda->i_debug, val.i_int, val.i_int);
  36.     }
  37.     p_cdda->i_debug = val.i_int;
  38.     return VLC_SUCCESS;
  39. }
  40. /* FIXME: could probably shorten some of the below boilerplate code...
  41. */
  42. int
  43. CDDBEnabledCB   ( vlc_object_t *p_this, const char *psz_name,
  44.                       vlc_value_t oldval, vlc_value_t val, void *p_data )
  45. {
  46.     cdda_data_t *p_cdda;
  47.     if (NULL == p_cdda_input) return VLC_EGENERIC;
  48.     p_cdda = (cdda_data_t *)p_cdda_input->p_sys;
  49. #ifdef HAVE_LIBCDDB
  50.     if (p_cdda->i_debug & (INPUT_DBG_CALL|INPUT_DBG_EXT))
  51.     {
  52.         msg_Dbg( p_cdda_input, "old CDDB Enabled (x%0x) %d, new (x%0x) %d",
  53.                  p_cdda->b_cddb_enabled, p_cdda->b_cddb_enabled,
  54.                  val.b_bool, val.b_bool);
  55.     }
  56.     p_cdda->b_cddb_enabled = val.b_bool;
  57. #endif
  58.     return VLC_SUCCESS;
  59. }
  60. int
  61. CDTextEnabledCB   ( vlc_object_t *p_this, const char *psz_name,
  62.                         vlc_value_t oldval, vlc_value_t val, void *p_data )
  63. {
  64.     cdda_data_t *p_cdda;
  65.     if (NULL == p_cdda_input) return VLC_EGENERIC;
  66.     p_cdda = (cdda_data_t *)p_cdda_input->p_sys;
  67.     if (p_cdda->i_debug & (INPUT_DBG_CALL|INPUT_DBG_EXT))
  68.     {
  69.         msg_Dbg( p_cdda_input, "old CDText Enabled %d, new %d",
  70.                  p_cdda->b_cdtext, val.b_bool);
  71.     }
  72.     p_cdda->b_cdtext = val.b_bool;
  73.     return VLC_SUCCESS;
  74. }
  75. int
  76. CDDANavModeCB( vlc_object_t *p_this, const char *psz_name,
  77.                         vlc_value_t oldval, vlc_value_t val, void *p_data )
  78. {
  79.     cdda_data_t *p_cdda;
  80.     if (NULL == p_cdda_input) return VLC_EGENERIC;
  81.     p_cdda = (cdda_data_t *)p_cdda_input->p_sys;
  82.     if (p_cdda->i_debug & (INPUT_DBG_CALL|INPUT_DBG_EXT))
  83.     {
  84.         msg_Dbg( p_cdda_input,
  85.          "old Navigation Mode Enabled %d, new %d",
  86.                  p_cdda->b_nav_mode, val.b_bool);
  87.     }
  88.     p_cdda->b_nav_mode = val.b_bool;
  89.     return VLC_SUCCESS;
  90. }
  91. int
  92. CDTextPreferCB   ( vlc_object_t *p_this, const char *psz_name,
  93.                        vlc_value_t oldval, vlc_value_t val, void *p_data )
  94. {
  95.     cdda_data_t *p_cdda;
  96.     if (NULL == p_cdda_input) return VLC_EGENERIC;
  97.     p_cdda = (cdda_data_t *)p_cdda_input->p_sys;
  98. #ifdef HAVE_LIBCDDB
  99.     if ( p_cdda->i_debug & (INPUT_DBG_CALL|INPUT_DBG_EXT))
  100.     {
  101.         msg_Dbg( p_cdda_input, "old CDText Prefer (x%0x) %d, new (x%0x) %d",
  102.                  p_cdda->b_cdtext_prefer, p_cdda->b_cdtext_prefer,
  103.                  val.b_bool, val.b_bool);
  104.     }
  105.     p_cdda->b_cdtext_prefer = val.b_bool;
  106. #endif
  107.     return VLC_SUCCESS;
  108. }
  109. int
  110. CDDABlocksPerReadCB ( vlc_object_t *p_this, const char *psz_name,
  111.                           vlc_value_t oldval, vlc_value_t val, void *p_data )
  112. {
  113.     cdda_data_t *p_cdda;
  114.     if (NULL == p_cdda_input) return VLC_EGENERIC;
  115.     p_cdda = (cdda_data_t *)p_cdda_input->p_sys;
  116.     if (p_cdda->i_debug & (INPUT_DBG_CALL|INPUT_DBG_EXT))
  117.     {
  118.         msg_Dbg( p_cdda_input, "old blocks per read: %d, new %d",
  119.                  p_cdda->i_blocks_per_read, val.i_int);
  120.     }
  121.     if (0 == val.i_int) val.i_int = DEFAULT_BLOCKS_PER_READ;
  122.     if ( val.i_int >= MIN_BLOCKS_PER_READ && val.i_int <= MAX_BLOCKS_PER_READ )
  123.          p_cdda->i_blocks_per_read = val.i_int;
  124.     else
  125.     {
  126.         msg_Warn( p_cdda_input,
  127.              "number of blocks (%d) has to be between %d and %d. No change.",
  128.               val.i_int, MIN_BLOCKS_PER_READ, MAX_BLOCKS_PER_READ );
  129.     }
  130.     return VLC_SUCCESS;
  131. }