37 #include "asterisk/channel.h"
45 *name = *ext = filename;
47 if ((*ext = strrchr(filename,
'.'))) {
73 char *file_in = NULL, *file_out = NULL;
74 char *name_in, *ext_in, *name_out, *ext_out;
80 "Usage: file convert <file_in> <file_out>\n"
81 " Convert from file_in to file_out. If an absolute path\n"
82 " is not given, the default Asterisk sounds directory\n"
85 " file convert tt-weasels.gsm tt-weasels.ulaw\n";
102 if (
split_ext(file_in, &name_in, &ext_in)) {
103 ast_cli(a->
fd,
"'%s' is an invalid filename!\n", a->
argv[2]);
106 if (!(fs_in =
ast_readfile(name_in, ext_in, NULL, O_RDONLY, 0, 0))) {
107 ast_cli(a->
fd,
"Unable to open input file: %s\n", a->
argv[2]);
111 if (
split_ext(file_out, &name_out, &ext_out)) {
112 ast_cli(a->
fd,
"'%s' is an invalid filename!\n", a->
argv[3]);
116 ast_cli(a->
fd,
"Unable to open output file: %s\n", a->
argv[3]);
125 ast_cli(a->
fd,
"Failed to convert %s.%s to %s.%s!\n", name_in, ext_in, name_out, ext_out);
132 ast_cli(a->
fd,
"Converted %s.%s to %s.%s in %dms\n", name_in, ext_in, name_out, ext_out, cost);
#define AST_CLI_DEFINE(fn, txt,...)
#define AST_MODULE_INFO_STANDARD(keystr, desc)
Asterisk main include file. File version handling, generic pbx functions.
void ast_module_unref(struct ast_module *)
int ast_cli_unregister_multiple(struct ast_cli_entry *e, int len)
Unregister multiple commands.
descriptor for a cli entry.
static char * handle_cli_file_convert(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
Convert a file from one format to another.
struct timeval ast_tvnow(void)
Returns current timeval. Meant to replace calls to gettimeofday().
int64_t ast_tvdiff_ms(struct timeval end, struct timeval start)
Computes the difference (in milliseconds) between two struct timeval instances.
Generic File Format Support. Should be included by clients of the file handling routines. File service providers should instead include mod_format.h.
int ast_filedelete(const char *filename, const char *fmt)
Deletes a file.
void ast_cli(int fd, const char *fmt,...)
static force_inline int attribute_pure ast_strlen_zero(const char *s)
static int unload_module(void)
#define ast_strdupa(s)
duplicate a string in memory from the stack
struct ast_frame * ast_readframe(struct ast_filestream *s)
Read a frame from a filestream.
static int load_module(void)
struct ast_filestream * ast_writefile(const char *filename, const char *type, const char *comment, int flags, int check, mode_t mode)
Starts writing a file.
int ast_closestream(struct ast_filestream *f)
Closes a stream.
static struct ast_cli_entry cli_convert[]
This structure is allocated by file.c in one chunk, together with buf_size and desc_size bytes of mem...
Standard Command Line Interface.
int ast_writestream(struct ast_filestream *fs, struct ast_frame *f)
Writes a frame to a stream.
int ast_cli_register_multiple(struct ast_cli_entry *e, int len)
Register multiple commands.
Data structure associated with a single frame of data.
struct ast_filestream * ast_readfile(const char *filename, const char *type, const char *comment, int flags, int check, mode_t mode)
Starts reading from a file.
#define ASTERISK_GPL_KEY
The text the key() function should return.
Asterisk module definitions.
#define ASTERISK_FILE_VERSION(file, version)
Register/unregister a source code file with the core.
static int split_ext(char *filename, char **name, char **ext)
Split the filename to basename and extension.
struct ast_module * ast_module_ref(struct ast_module *)