#include "fd.h"
#include "ipc.h"
#include "portable_io.h"
+#include "sideband.h"
#include "command.h"
static struct osl_table *audio_file_table;
{
struct ls_options *opts = query->data;
char *p, *pattern_start = (char *)query->data + sizeof(*opts);
- struct para_buffer b = {.max_size = shm_get_shmmax(),
+ struct para_buffer b = {
+ .max_size = shm_get_shmmax(),
.flags = (opts->mode == LS_MODE_PARSER)? PBF_SIZE_PREFIX : 0,
- .max_size_handler = pass_buffer_as_shm, .private_data = &fd};
+ .max_size_handler = afs_max_size_handler,
+ .private_data = &(struct afs_max_size_handler_data) {
+ .fd = fd,
+ }
+ };
int i = 0, ret;
time_t current_time;
opts.mode = mode;
opts.num_patterns = cc->argc - i;
ret = send_option_arg_callback_request(&query, opts.num_patterns,
- cc->argv + i, com_ls_callback, sc_send_result, cc);
+ cc->argv + i, com_ls_callback, afs_cb_result_handler, cc);
return ret;
}
char afsi_buf[AFSI_SIZE];
uint32_t flags = read_u32(buf + CAB_FLAGS_OFFSET);
struct afs_info default_afsi = {.last_played = 0};
- struct para_buffer msg = {.max_size = shm_get_shmmax(),
- .max_size_handler = pass_buffer_as_shm, .private_data = &fd};
+ struct para_buffer msg = {
+ .max_size = shm_get_shmmax(),
+ .max_size_handler = afs_max_size_handler,
+ .private_data = &(struct afs_max_size_handler_data) {
+ .fd = fd,
+ }
+ };
uint16_t afhi_offset, chunks_offset;
hash = (unsigned char *)buf + CAB_HASH_OFFSET;
}
save_add_callback_buffer(hash, path, afhi_ptr, pad->flags, format_num, &obj);
/* Ask afs to consider this entry for adding. */
- ret = send_callback_request(com_add_callback, &obj, sc_send_result, pad->cc);
+ ret = send_callback_request(com_add_callback, &obj,
+ afs_cb_result_handler, pad->cc);
goto out_free;
out_unmap:
send_ret = sc_send_va_buffer(&pad->cc->scc,
"failed to add %s (%s)\n", path, para_strerror(-ret));
free(obj.data);
- if (afhi_ptr) {
- free(afhi_ptr->chunk_table);
- free(afhi_ptr->techinfo);
- free(afhi_ptr->tags.artist);
- free(afhi_ptr->tags.title);
- free(afhi_ptr->tags.year);
- free(afhi_ptr->tags.album);
- free(afhi_ptr->tags.comment);
- }
+ clear_afhi(afhi_ptr);
/* Stop adding files only on send errors. */
return send_ret;
}
.pb = {
.max_size = shm_get_shmmax(),
.private_data = &fd,
- .max_size_handler = pass_buffer_as_shm
+ .max_size_handler = afs_max_size_handler
}
};
int ret, ret2 = 0;
if (i >= cc->argc)
return -E_AFT_SYNTAX;
ret = send_option_arg_callback_request(&query, cc->argc - i,
- cc->argv + i, com_touch_callback, sc_send_result, cc);
+ cc->argv + i, com_touch_callback, afs_cb_result_handler, cc);
if (ret < 0)
sc_send_va_buffer(&cc->scc, "%s\n", para_strerror(-ret));
return ret;
.pb = {
.max_size = shm_get_shmmax(),
.private_data = &fd,
- .max_size_handler = pass_buffer_as_shm
+ .max_size_handler = afs_max_size_handler
}
};
int ret;
if (i >= cc->argc)
return -E_AFT_SYNTAX;
ret = send_option_arg_callback_request(&query, cc->argc - i,
- cc->argv + i, com_rm_callback, sc_send_result, cc);
+ cc->argv + i, com_rm_callback, afs_cb_result_handler, cc);
if (ret < 0)
sc_send_va_buffer(&cc->scc, "%s\n", para_strerror(-ret));
return ret;
.pb = {
.max_size = shm_get_shmmax(),
.private_data = &fd,
- .max_size_handler = pass_buffer_as_shm
+ .max_size_handler = afs_max_size_handler
}
};
int ret;
if (!(flags & ~CPSI_FLAG_VERBOSE)) /* no copy flags given */
flags = ~(unsigned)CPSI_FLAG_VERBOSE | flags;
ret = send_option_arg_callback_request(&options, cc->argc - i,
- cc->argv + i, com_cpsi_callback, sc_send_result, cc);
+ cc->argv + i, com_cpsi_callback, afs_cb_result_handler, cc);
if (ret < 0)
sc_send_va_buffer(&cc->scc, "%s\n", para_strerror(-ret));
return ret;
struct osl_object query = {.data = &parser_friendly,
.size = sizeof(parser_friendly)};
- return send_callback_request(afs_stat_callback, &query, sc_send_result, cc);
+ return send_callback_request(afs_stat_callback, &query,
+ afs_cb_result_handler, cc);
}
/* TODO: optionally fix problems by removing offending rows */
{
struct para_buffer pb = {
.max_size = shm_get_shmmax(),
- .private_data = &fd,
- .max_size_handler = pass_buffer_as_shm
+ .private_data = &(struct afs_max_size_handler_data) {
+ .fd = fd,
+ },
+ .max_size_handler = afs_max_size_handler
};
int ret = para_printf(&pb, "checking audio file table...\n");