2 * This file is part of sharing-plugin-template
4 * Copyright (C) 2008-2009 Nokia Corporation. All rights reserved.
6 * This maemo code example is licensed under a MIT-style license,
7 * that can be found in the file called "COPYING" in the root
15 // Somehow garage builder doesn't have normal libsharing headers
16 #include "libsharing/sharing-plugin-interface.h"
17 #include "libsharing/sharing-transfer.h"
18 #include "libsharing/sharing-service-option.h"
20 #include <conicconnection.h>
28 guint sharing_plugin_interface_init (gboolean* dead_mans_switch);
29 guint sharing_plugin_interface_uninit (gboolean* dead_mans_switch);
30 SharingPluginInterfaceSendResult sharing_plugin_interface_send(SharingTransfer* transfer, ConIcConnection* con, gboolean* dead_mans_switch);
31 SharingPluginInterfaceAccountSetupResult sharing_plugin_interface_account_setup(GtkWindow* parent, SharingService* service, SharingAccount** worked_on,osso_context_t* osso);
32 SharingPluginInterfaceAccountValidateResult sharing_plugin_interface_account_validate (SharingAccount* account, ConIcConnection* con, gboolean *cont, gboolean* dead_mans_switch);
33 SharingPluginInterfaceEditAccountResult sharing_plugin_interface_edit_account (GtkWindow* parent, SharingAccount* account, ConIcConnection* con, gboolean* dead_mans_switch);
34 gboolean sharing_plugin_interface_update_options(SharingAccount* account, ConIcConnection* con, gboolean* cont, gboolean* dead_mans_switch, UpdateOptionsCallback cb_func, gpointer cb_data);
37 * sharing_plugin_interface_init:
38 * @dead_mans_switch: What?
40 * Initialize interface
44 guint sharing_plugin_interface_init (gboolean* dead_mans_switch)
46 ULOG_DEBUG_L("sharing_manager_plugin_interface_init");
51 * sharing_plugin_interface_uninit:
52 * @dead_mans_switch: What?
54 * Uninitialize interface
58 guint sharing_plugin_interface_uninit (gboolean* dead_mans_switch)
60 ULOG_DEBUG_L("sharing_manager_plugin_interface_uninit");
65 * sharing_plugin_interface_send:
66 * @transfer: Transfer to be send
67 * @con: Connection used
72 * Returns: Result of send
74 SharingPluginInterfaceSendResult sharing_plugin_interface_send
75 (SharingTransfer* transfer, ConIcConnection* con,
76 gboolean* dead_mans_switch)
78 ULOG_DEBUG_L ("sharing_plugin_interface_send");
79 SharingPluginInterfaceSendResult ret_val = SHARING_SEND_ERROR_UNKNOWN;
80 ret_val = share_item (transfer, con, dead_mans_switch);
85 * sharing_plugin_interface_account_setup:
86 * @transfer: #SharingTransfer send
87 * @service: #SharingService
88 * @worked_on: Connection used
89 * @osso_context_t: Osso context
93 * Returns: Result of account setup
95 SharingPluginInterfaceAccountSetupResult sharing_plugin_interface_account_setup
96 (GtkWindow* parent, SharingService* service, SharingAccount** worked_on,
99 ULOG_DEBUG_L ("sharing_plugin_interface_account_setup");
100 SharingPluginInterfaceAccountSetupResult ret = 0;
105 * sharing_manager_plugin_interface_account_validate:
106 * @account: Account tested
107 * @con: Connection used to test account
110 * Validates account information.
112 * Returns: Result of account validation
114 SharingPluginInterfaceAccountValidateResult
115 sharing_plugin_interface_account_validate (SharingAccount* account,
116 ConIcConnection* con, gboolean *cont, gboolean* dead_mans_switch)
118 ULOG_DEBUG_L ("sharing_plugin_interface_account_validate");
119 SharingPluginInterfaceAccountValidateResult ret_val = 0;
120 ret_val = validate (account, con, cont, dead_mans_switch);
125 * sharing_plugin_interface_edit_account:
126 * @account: Account tested
127 * @con: Connection used to test account
130 * Edit account plugin implementation.
132 * Returns: Result of account edit
134 SharingPluginInterfaceEditAccountResult
135 sharing_plugin_interface_edit_account (GtkWindow* parent,
136 SharingAccount* account, ConIcConnection* con, gboolean* dead_mans_switch)
138 SharingPluginInterfaceEditAccountResult ret = 0;
139 ULOG_DEBUG_L ("sharing_plugin_interface_edit_account");
143 gboolean sharing_plugin_interface_update_options(
144 SharingAccount* account, ConIcConnection* con, gboolean* cont,
145 gboolean* dead_mans_switch, UpdateOptionsCallback cb_func,
148 SharingPluginInterfaceUpdateOptionsResult updateResult = SHARING_UPDATE_OPTIONS_ERROR_UNKNOWN;
150 char* sessionKey = NULL;
151 char* sessionRequestId = NULL;
154 *dead_mans_switch = FALSE;
155 if (yandexGetSessionKey(&sessionKey, &sessionRequestId) == YANDEX_GET_SESSION_KEY_SUCCESS) {
156 *dead_mans_switch = FALSE;
157 if (YANDEX_GET_AUTH_TOKEN_SUCCESS == yandexGetAuthToken(sessionRequestId, sessionKey,
158 sharing_account_get_username(account), sharing_account_get_password(account),
160 GSList* albumsList = NULL;
161 *dead_mans_switch = FALSE;
162 if (YANDEX_GET_ALBUM_LIST_SUCCESS == yandexGetAlbumsList(token,sharing_account_get_username(account),&albumsList) && albumsList) {
163 sharing_account_set_option_values(account,"album",albumsList);
164 updateResult = SHARING_UPDATE_OPTIONS_SUCCESS;
166 *dead_mans_switch = FALSE;
167 if (albumsList) sharing_service_option_values_free(albumsList);
169 *dead_mans_switch = FALSE;
171 *dead_mans_switch = FALSE;
173 if (token) free(token);
174 if (sessionKey) free(sessionKey);
175 if (sessionRequestId) free(sessionRequestId);
177 if (cb_func != NULL) {
178 void (*fp) (SharingPluginInterfaceUpdateOptionsResult, gpointer);
180 fp(updateResult, cb_data);