libpurple/xfer.c

changeset 40258
263f9375fc8d
parent 40257
e6692de3b4de
child 40260
663b8a40dad5
equal deleted inserted replaced
40257:e6692de3b4de 40258:263f9375fc8d
71 size_t current_buffer_size; /* This gradually increases for fast 71 size_t current_buffer_size; /* This gradually increases for fast
72 network connections. */ 72 network connections. */
73 73
74 PurpleXferStatus status; /* File Transfer's status. */ 74 PurpleXferStatus status; /* File Transfer's status. */
75 75
76 gpointer ui_data; /* UI-specific data */
77 PurpleXferUiOps *ui_ops; /* UI-specific operations. */ 76 PurpleXferUiOps *ui_ops; /* UI-specific operations. */
78 77
79 /* 78 /*
80 * Used to moderate the file transfer when either the read/write ui_ops are 79 * Used to moderate the file transfer when either the read/write ui_ops are
81 * set or fd is not set. In those cases, the UI/protocol call the respective 80 * set or fd is not set. In those cases, the UI/protocol call the respective
114 PROP_BYTES_SENT, 113 PROP_BYTES_SENT,
115 PROP_START_TIME, 114 PROP_START_TIME,
116 PROP_END_TIME, 115 PROP_END_TIME,
117 PROP_STATUS, 116 PROP_STATUS,
118 PROP_PROGRESS, 117 PROP_PROGRESS,
119 PROP_UI_DATA,
120 PROP_LAST 118 PROP_LAST
121 }; 119 };
122 120
123 static GParamSpec *properties[PROP_LAST]; 121 static GParamSpec *properties[PROP_LAST];
124 122
1927 g_return_if_fail(PURPLE_IS_XFER(xfer)); 1925 g_return_if_fail(PURPLE_IS_XFER(xfer));
1928 1926
1929 g_signal_emit(xfer, signals[SIG_ADD_THUMBNAIL], 0, formats, NULL); 1927 g_signal_emit(xfer, signals[SIG_ADD_THUMBNAIL], 0, formats, NULL);
1930 } 1928 }
1931 1929
1932 void purple_xfer_set_ui_data(PurpleXfer *xfer, gpointer ui_data)
1933 {
1934 PurpleXferPrivate *priv = NULL;
1935
1936 g_return_if_fail(PURPLE_IS_XFER(xfer));
1937
1938 priv = purple_xfer_get_instance_private(xfer);
1939
1940 priv->ui_data = ui_data;
1941
1942 g_object_notify_by_pspec(G_OBJECT(xfer), properties[PROP_UI_DATA]);
1943 }
1944
1945 gpointer purple_xfer_get_ui_data(PurpleXfer *xfer)
1946 {
1947 PurpleXferPrivate *priv = NULL;
1948
1949 g_return_val_if_fail(PURPLE_IS_XFER(xfer), NULL);
1950
1951 priv = purple_xfer_get_instance_private(xfer);
1952
1953 return priv->ui_data;
1954 }
1955
1956 /************************************************************************** 1930 /**************************************************************************
1957 * GObject code 1931 * GObject code
1958 **************************************************************************/ 1932 **************************************************************************/
1959 static void 1933 static void
1960 purple_xfer_set_property(GObject *obj, guint param_id, const GValue *value, 1934 purple_xfer_set_property(GObject *obj, guint param_id, const GValue *value,
1998 purple_xfer_set_bytes_sent(xfer, g_value_get_int64(value)); 1972 purple_xfer_set_bytes_sent(xfer, g_value_get_int64(value));
1999 break; 1973 break;
2000 case PROP_STATUS: 1974 case PROP_STATUS:
2001 purple_xfer_set_status(xfer, g_value_get_enum(value)); 1975 purple_xfer_set_status(xfer, g_value_get_enum(value));
2002 break; 1976 break;
2003 case PROP_UI_DATA:
2004 purple_xfer_set_ui_data(xfer, g_value_get_pointer(value));
2005 break;
2006 default: 1977 default:
2007 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); 1978 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
2008 break; 1979 break;
2009 } 1980 }
2010 } 1981 }
2064 case PROP_STATUS: 2035 case PROP_STATUS:
2065 g_value_set_enum(value, purple_xfer_get_status(xfer)); 2036 g_value_set_enum(value, purple_xfer_get_status(xfer));
2066 break; 2037 break;
2067 case PROP_PROGRESS: 2038 case PROP_PROGRESS:
2068 g_value_set_double(value, purple_xfer_get_progress(xfer)); 2039 g_value_set_double(value, purple_xfer_get_progress(xfer));
2069 break;
2070 case PROP_UI_DATA:
2071 g_value_set_pointer(value, purple_xfer_get_ui_data(xfer));
2072 break; 2040 break;
2073 default: 2041 default:
2074 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); 2042 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
2075 break; 2043 break;
2076 } 2044 }
2246 2214
2247 properties[PROP_PROGRESS] = g_param_spec_double( 2215 properties[PROP_PROGRESS] = g_param_spec_double(
2248 "progress", "Progress", 2216 "progress", "Progress",
2249 "The current progress of the file transfer.", -1.0, 1.0, -1.0, 2217 "The current progress of the file transfer.", -1.0, 1.0, -1.0,
2250 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); 2218 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
2251
2252 properties[PROP_UI_DATA] = g_param_spec_pointer("ui-data", "UI Data",
2253 "The UI specific data for this xfer",
2254 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
2255 2219
2256 g_object_class_install_properties(obj_class, PROP_LAST, properties); 2220 g_object_class_install_properties(obj_class, PROP_LAST, properties);
2257 2221
2258 /* Signals */ 2222 /* Signals */
2259 2223

mercurial