本文整理汇总了C++中AUDDBG函数的典型用法代码示例。如果您正苦于以下问题:C++ AUDDBG函数的具体用法?C++ AUDDBG怎么用?C++ AUDDBG使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了AUDDBG函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: mlp_hook_playback_begin
static void mlp_hook_playback_begin(gpointer hook_data, gpointer user_data)
{
gint playlist = mlp_playlist_get_playing();
gint pos = mlp_playlist_get_position(playlist);
if (mlp_playlist_entry_get_length (playlist, pos, FALSE) < 30)
{
AUDDBG(" *** not submitting due to entry->length < 30");
return;
}
gchar * filename = mlp_playlist_entry_get_filename (playlist, pos);
if (ishttp (filename))
{
AUDDBG(" *** not submitting due to HTTP source");
str_unref (filename);
return;
}
str_unref (filename);
sc_idle(m_scrobbler);
if (submit_tuple)
tuple_unref (submit_tuple);
submit_tuple = mlp_playlist_entry_get_tuple (playlist, pos, FALSE);
if (! submit_tuple)
return;
sc_addentry(m_scrobbler, submit_tuple, tuple_get_int(submit_tuple, FIELD_LENGTH, NULL) / 1000);
if (!track_timeout)
track_timeout = g_timeout_add_seconds(1, sc_timeout, NULL);
}
示例2: pulse_drain
static void pulse_drain(void) {
pa_operation *o = NULL;
int success = 0;
CHECK_CONNECTED();
pa_threaded_mainloop_lock(mainloop);
CHECK_DEAD_GOTO(fail, 0);
if (!(o = pa_stream_drain(stream, stream_success_cb, &success))) {
AUDDBG("pa_stream_drain() failed: %s", pa_strerror(pa_context_errno(context)));
goto fail;
}
while (pa_operation_get_state(o) != PA_OPERATION_DONE) {
CHECK_DEAD_GOTO(fail, 1);
pa_threaded_mainloop_wait(mainloop);
}
if (!success)
AUDDBG("pa_stream_drain() failed: %s", pa_strerror(pa_context_errno(context)));
fail:
if (o)
pa_operation_unref(o);
pa_threaded_mainloop_unlock(mainloop);
}
示例3: metadata_callback
void metadata_callback(const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data)
{
callback_info *info = (callback_info*) client_data;
gsize size;
if (metadata->type == FLAC__METADATA_TYPE_STREAMINFO)
{
info->stream.samples = metadata->data.stream_info.total_samples;
AUDDBG("total_samples=%lld\n", (long long) metadata->data.stream_info.total_samples);
info->stream.bits_per_sample = metadata->data.stream_info.bits_per_sample;
AUDDBG("bits_per_sample=%d\n", metadata->data.stream_info.bits_per_sample);
info->stream.channels = metadata->data.stream_info.channels;
AUDDBG("channels=%d\n", metadata->data.stream_info.channels);
info->stream.samplerate = metadata->data.stream_info.sample_rate;
AUDDBG("sample_rate=%d\n", metadata->data.stream_info.sample_rate);
size = vfs_fsize(info->fd);
if (size == -1 || info->stream.samples == 0)
info->bitrate = 0;
else
info->bitrate = 8 * size * (gint64) info->stream.samplerate / info->stream.samples;
AUDDBG("bitrate=%d\n", info->bitrate);
info->metadata_changed = TRUE;
}
}
示例4: get_format_by_extension
static AVInputFormat * get_format_by_extension (const gchar * name)
{
const gchar * ext0, * sub;
uri_parse (name, NULL, & ext0, & sub, NULL);
if (ext0 == sub)
return NULL;
gchar * ext = g_ascii_strdown (ext0 + 1, sub - ext0 - 1);
AUDDBG ("Get format by extension: %s\n", name);
pthread_mutex_lock (& data_mutex);
if (! extension_dict)
extension_dict = create_extension_dict ();
AVInputFormat * f = g_hash_table_lookup (extension_dict, ext);
pthread_mutex_unlock (& data_mutex);
if (f)
AUDDBG ("Format %s.\n", f->name);
else
AUDDBG ("Format unknown.\n");
g_free (ext);
return f;
}
示例5: start_single
static void start_single (int type)
{
PluginHandle * p;
if ((p = find_enabled (type)) != NULL)
{
AUDDBG ("Starting selected %s plugin %s.\n", table[type].name,
plugin_get_name (p));
if (table[type].u.s.set_current (p))
return;
AUDDBG ("%s failed to start.\n", plugin_get_name (p));
plugin_set_enabled (p, FALSE);
}
AUDDBG ("Probing for %s plugin.\n", table[type].name);
if ((p = table[type].u.s.probe ()) == NULL)
{
fprintf (stderr, "FATAL: No %s plugin found.\n", table[type].name);
exit (EXIT_FAILURE);
}
AUDDBG ("Starting %s.\n", plugin_get_name (p));
plugin_set_enabled (p, TRUE);
if (! table[type].u.s.set_current (p))
{
fprintf (stderr, "FATAL: %s failed to start.\n", plugin_get_name (p));
plugin_set_enabled (p, FALSE);
exit (EXIT_FAILURE);
}
}
示例6: set_format
static bool_t set_format(int format, int rate, int channels)
{
int param;
AUDDBG("Audio format: %s, sample rate: %dHz, number of channels: %d.\n", oss_format_to_text(format), rate, channels);
/* Enable/disable format conversions made by the OSS software */
param = aud_get_bool("oss4", "cookedmode");
CHECK(ioctl, oss_data->fd, SNDCTL_DSP_COOKEDMODE, ¶m);
AUDDBG("%s format conversions made by the OSS software.\n", param ? "Enabled" : "Disabled");
param = format;
CHECK_NOISY(ioctl, oss_data->fd, SNDCTL_DSP_SETFMT, ¶m);
CHECK_VAL(param == format, ERROR_NOISY, "Selected audio format is not supported by the device.\n");
param = rate;
CHECK_NOISY(ioctl, oss_data->fd, SNDCTL_DSP_SPEED, ¶m);
CHECK_VAL(param >= rate * 9 / 10 && param <= rate * 11 / 10, ERROR_NOISY,
"Selected sample rate is not supported by the device.\n");
param = channels;
CHECK_NOISY(ioctl, oss_data->fd, SNDCTL_DSP_CHANNELS, ¶m);
CHECK_VAL(param == channels, ERROR_NOISY, "Selected number of channels is not supported by the device.\n");
oss_data->format = format;
oss_data->rate = rate;
oss_data->channels = channels;
oss_data->bits_per_sample = oss_format_to_bits(oss_data->format);
return TRUE;
FAILED:
return FALSE;
}
示例7: scrobbler_communication_init
//called from scrobbler_init() @ scrobbler.c
bool_t scrobbler_communication_init() {
CURLcode curl_requests_result = curl_global_init(CURL_GLOBAL_DEFAULT);
if (curl_requests_result != CURLE_OK) {
AUDDBG("Could not initialize libCURL: %s.\n", curl_easy_strerror(curl_requests_result));
return FALSE;
}
curlHandle = curl_easy_init();
if (curlHandle == NULL) {
AUDDBG("Could not initialize libCURL.\n");
return FALSE;
}
curl_requests_result = curl_easy_setopt(curlHandle, CURLOPT_URL, SCROBBLER_URL);
if (curl_requests_result != CURLE_OK) {
AUDDBG("Could not define scrobbler destination URL: %s.\n", curl_easy_strerror(curl_requests_result));
return FALSE;
}
curl_requests_result = curl_easy_setopt(curlHandle, CURLOPT_WRITEFUNCTION, result_callback);
if (curl_requests_result != CURLE_OK) {
AUDDBG("Could not register scrobbler callback function: %s.\n", curl_easy_strerror(curl_requests_result));
return FALSE;
}
return TRUE;
}
示例8: general_load
static void general_load (PluginHandle * plugin)
{
GList * node = g_list_find_custom (loaded_general_plugins, plugin,
(GCompareFunc) general_find_cb);
if (node != NULL)
return;
AUDDBG ("Loading %s.\n", plugin_get_name (plugin));
GeneralPlugin * gp = plugin_get_header (plugin);
g_return_if_fail (gp != NULL);
LoadedGeneral * general = g_slice_new (LoadedGeneral);
general->plugin = plugin;
general->gp = gp;
general->widget = NULL;
if (gp->get_widget != NULL)
general->widget = gp->get_widget ();
if (general->widget != NULL)
{
AUDDBG ("Adding %s to interface.\n", plugin_get_name (plugin));
g_signal_connect (general->widget, "destroy", (GCallback)
gtk_widget_destroyed, & general->widget);
interface_add_plugin_widget (plugin, general->widget);
}
loaded_general_plugins = g_list_prepend (loaded_general_plugins, general);
}
示例9: wv_probe_for_tuple
static Tuple *
wv_probe_for_tuple(const char * filename, VFSFile * fd)
{
WavpackContext *ctx;
Tuple *tu;
char error[1024];
ctx = WavpackOpenFileInputEx(&wv_readers, fd, NULL, error, OPEN_TAGS, 0);
if (ctx == NULL)
return NULL;
AUDDBG("starting probe of %p\n", (void *) fd);
vfs_rewind(fd);
tu = tuple_new_from_filename(filename);
vfs_rewind(fd);
tag_tuple_read(tu, fd);
tuple_set_int(tu, FIELD_LENGTH, NULL,
((uint64_t) WavpackGetNumSamples(ctx) * 1000) / (uint64_t) WavpackGetSampleRate(ctx));
tuple_set_str(tu, FIELD_CODEC, NULL, "WavPack");
char * quality = wv_get_quality (ctx);
tuple_set_str (tu, FIELD_QUALITY, NULL, quality);
str_unref (quality);
WavpackCloseFile(ctx);
AUDDBG("returning tuple %p for file %p\n", (void *) tu, (void *) fd);
return tu;
}
示例10: start
void start(void) {
sc_going = 1;
gchar * username = mlp_get_string ("audioscrobbler", "username");
gchar * password = mlp_get_string ("audioscrobbler", "password");
gchar * sc_url = mlp_get_string ("audioscrobbler", "sc_url");
if ((!username || !password) || (!*username || !*password))
{
AUDDBG("username/password not found - not starting last.fm support");
sc_going = 0;
}
else
sc_init(username, password, sc_url);
g_free (username);
g_free (password);
g_free (sc_url);
m_scrobbler = g_mutex_new();
hook_associate("playback begin", mlp_hook_playback_begin, NULL);
hook_associate("playback stop", mlp_hook_playback_end, NULL);
AUDDBG("plugin started");
sc_idle(m_scrobbler);
}
示例11: pulse_flush
static void pulse_flush(int time) {
pa_operation *o = NULL;
int success = 0;
CHECK_CONNECTED();
pa_threaded_mainloop_lock(mainloop);
CHECK_DEAD_GOTO(fail, 1);
written = time * (int64_t) bytes_per_second / 1000;
flush_time = time;
if (!(o = pa_stream_flush(stream, stream_success_cb, &success))) {
AUDDBG("pa_stream_flush() failed: %s", pa_strerror(pa_context_errno(context)));
goto fail;
}
while (pa_operation_get_state(o) != PA_OPERATION_DONE) {
CHECK_DEAD_GOTO(fail, 1);
pa_threaded_mainloop_wait(mainloop);
}
if (!success)
AUDDBG("pa_stream_flush() failed: %s", pa_strerror(pa_context_errno(context)));
fail:
if (o)
pa_operation_unref(o);
pa_threaded_mainloop_unlock(mainloop);
}
示例12: delete_lines_from_scrobble_log
static void delete_lines_from_scrobble_log (GSList **lines_to_remove_ptr, gchar *queuepath) {
GSList *lines_to_remove = *lines_to_remove_ptr;
gchar *contents = NULL;
gchar **lines = NULL;
gchar **finallines = g_malloc_n(1, sizeof(gchar *));
int n_finallines;
if (lines_to_remove == NULL) {
return;
}
lines_to_remove = g_slist_reverse(lines_to_remove);
pthread_mutex_lock(&log_access_mutex);
gboolean success = g_file_get_contents(queuepath, &contents, NULL, NULL);
if (!success) {
AUDDBG("Could not read scrobbler.log contents.\n");
} else {
lines = g_strsplit(contents, "\n", 0);
n_finallines = 0;
for (int i = 0 ; lines[i] != NULL && strlen(lines[i]) > 0; i++) {
if (lines_to_remove != NULL && *((int *) (lines_to_remove->data)) == i) {
//this line is to remove
lines_to_remove = g_slist_next(lines_to_remove);
} else {
//keep this line
n_finallines++;
finallines = g_realloc_n(finallines, n_finallines, sizeof(gchar *));
finallines[n_finallines-1] = g_strdup(lines[i]);
}
}
finallines = g_realloc_n(finallines, n_finallines+2, sizeof(gchar *));
finallines[n_finallines] = g_strdup("");
finallines[n_finallines+1] = NULL;
g_free(contents);
contents = g_strjoinv("\n", finallines);
success = g_file_set_contents(queuepath, contents, -1, NULL);
if (!success) {
AUDDBG("Could not write to scrobbler.log!\n");
}
}
pthread_mutex_unlock(&log_access_mutex);
g_strfreev(finallines);
g_strfreev(lines);
g_free(contents);
}
示例13: scrobbler_test_connection
//returns:
// FALSE if there was a network problem.
// TRUE otherwise (scrobbling_enabled must be checked)
//sets scrobbling_enabled to TRUE if the session is OK
//sets session_key to NULL if it is invalid
static bool_t scrobbler_test_connection() {
if (session_key == NULL || strlen(session_key) == 0) {
scrobbling_enabled = FALSE;
return TRUE;
}
gchar *testmsg = create_message_to_lastfm("user.getRecommendedArtists",
3,
"limit", "1",
"api_key", SCROBBLER_API_KEY,
"sk", session_key
);
bool_t success = send_message_to_lastfm(testmsg);
g_free(testmsg);
if (success == FALSE) {
AUDDBG("Network problems. Will not scrobble any tracks.\n");
scrobbling_enabled = FALSE;
if (permission_check_requested) {
perm_result = PERMISSION_NONET;
}
return FALSE;
}
gchar *error_code = NULL;
gchar *error_detail = NULL;
if (read_authentication_test_result(&error_code, &error_detail) == FALSE) {
AUDDBG("Error code: %s. Detail: %s.\n", error_code, error_detail);
if (error_code != NULL && (
g_strcmp0(error_code, "4") == 0 || //error code 4: Authentication Failed - You do not have permissions to access the service
g_strcmp0(error_code, "9") == 0 //error code 9: Invalid session key - Please re-authenticate
)) {
g_free(error_code);
g_free(error_detail);
g_free(session_key);
session_key = NULL;
aud_set_string("scrobbler", "session_key", "");
scrobbling_enabled = FALSE;
return TRUE;
} else {
//network problem.
scrobbling_enabled = FALSE;
AUDDBG("Connection NOT OK. Scrobbling disabled\n");
return FALSE;
}
} else {
//THIS IS THE ONLY PLACE WHERE SCROBBLING IS SET TO ENABLED IN RUN-TIME
scrobbling_enabled = TRUE;
AUDDBG("Connection OK. Scrobbling enabled.\n");
return TRUE;
}
}
示例14: start_multi_cb
static bool_t start_multi_cb (PluginHandle * p, void * type)
{
AUDDBG ("Starting %s.\n", plugin_get_name (p));
if (! table[GPOINTER_TO_INT (type)].u.m.start (p))
{
AUDDBG ("%s failed to start; disabling.\n", plugin_get_name (p));
plugin_set_enabled (p, FALSE);
}
return TRUE;
}
示例15: send_message_to_lastfm
static bool_t send_message_to_lastfm(gchar *data) {
AUDDBG("This message will be sent to last.fm:\n%s\n%%%%End of message%%%%\n", data);//Enter?\n", data);
curl_easy_setopt(curlHandle, CURLOPT_POSTFIELDS, data);
CURLcode curl_requests_result = curl_easy_perform(curlHandle);
if (curl_requests_result != CURLE_OK) {
AUDDBG("Could not communicate with last.fm: %s.\n", curl_easy_strerror(curl_requests_result));
return FALSE;
}
return TRUE;
}