]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
fix mod_native_file extension thingy
authorAnthony Minessale <anthony.minessale@gmail.com>
Mon, 12 Feb 2007 22:56:08 +0000 (22:56 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Mon, 12 Feb 2007 22:56:08 +0000 (22:56 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4212 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/include/switch_types.h
src/mod/formats/mod_native_file/mod_native_file.c
src/switch_ivr.c

index adb5556dd1d78f8e3bfe43ddafb57ab0e2947841..25c0400f8862f02b0cb7ddea8318cbdacc651b90 100644 (file)
@@ -682,6 +682,7 @@ SWITCH_FILE_DATA_FLOAT =        (1 <<  5) - Read data in floats
 SWITCH_FILE_DATA_DOUBLE =       (1 <<  6) - Read data in doubles
 SWITCH_FILE_DATA_RAW =          (1 <<  7) - Read data as is
 SWITCH_FILE_PAUSE =             (1 <<  8) - Pause
+SWITCH_FILE_NATIVE =            (1 <<  8) - File is in native format (no transcoding)
 </pre>
  */
 typedef enum {
@@ -693,7 +694,8 @@ typedef enum {
        SWITCH_FILE_DATA_FLOAT =                (1 <<  5),
        SWITCH_FILE_DATA_DOUBLE =               (1 <<  6),
        SWITCH_FILE_DATA_RAW =                  (1 <<  7),
-       SWITCH_FILE_PAUSE =                             (1 <<  8)
+       SWITCH_FILE_PAUSE =                             (1 <<  8),
+       SWITCH_FILE_NATIVE =                    (1 <<  9)
 } switch_file_flag_t;
 
 typedef enum {
index 21ef5976baa21a2d8f36cfce40e50cacb32d14c1..50b26bdc1e94601523034e1f3e25bf0878a0ec70 100644 (file)
@@ -78,6 +78,7 @@ static switch_status_t native_file_file_open(switch_file_handle_t *handle, char
        handle->seekable = 1;
        handle->speed = 0;
        handle->private_info = context;
+       handle->flags |=  SWITCH_FILE_NATIVE;
        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Opening File [%s] %dhz\n", path, handle->samplerate);
 
 
index 3c764278d9c97dae049ce14c16cc9f092522f0ed..b367c740cb3f0cd11df6a1d475bc168f75953061 100644 (file)
@@ -1142,6 +1142,9 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess
                switch_core_session_reset(session);
                return SWITCH_STATUS_NOTFOUND;
        }
+       if (switch_test_flag(fh, SWITCH_FILE_NATIVE)) {
+               asis = 1;
+       }
 
 
        write_frame.data = abuf;