summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSadrul Habib Chowdhury <sadrul@pidgin.im>2008-05-13 02:24:17 +0000
committerSadrul Habib Chowdhury <sadrul@pidgin.im>2008-05-13 02:24:17 +0000
commitc4a400d6c4fdc49fd010a40a8b10c5ec8fc73b38 (patch)
tree0d5a8c9de0111d4295ecf55d9c24a090563bcbb2
parente27ad8420528ef05185b6d417a48928f0de14ecf (diff)
downloadpidgin-c4a400d6c4fdc49fd010a40a8b10c5ec8fc73b38.tar.gz
Expose smiley API to perl plugins.
-rw-r--r--libpurple/plugins/perl/Makefile.am1
-rw-r--r--libpurple/plugins/perl/common/MANIFEST1
-rw-r--r--libpurple/plugins/perl/common/Makefile.mingw3
-rw-r--r--libpurple/plugins/perl/common/Purple.xs2
-rw-r--r--libpurple/plugins/perl/common/Smiley.xs81
-rw-r--r--libpurple/plugins/perl/common/module.h4
-rw-r--r--libpurple/plugins/perl/common/typemap1
7 files changed, 92 insertions, 1 deletions
diff --git a/libpurple/plugins/perl/Makefile.am b/libpurple/plugins/perl/Makefile.am
index 73388ffb87..e17292380d 100644
--- a/libpurple/plugins/perl/Makefile.am
+++ b/libpurple/plugins/perl/Makefile.am
@@ -67,6 +67,7 @@ common_sources = \
common/SavedStatuses.xs \
common/Server.xs \
common/Signal.xs \
+ common/Smiley.xs \
common/Sound.xs \
common/Status.xs \
common/Stringref.xs \
diff --git a/libpurple/plugins/perl/common/MANIFEST b/libpurple/plugins/perl/common/MANIFEST
index 7c310c092c..75e701224a 100644
--- a/libpurple/plugins/perl/common/MANIFEST
+++ b/libpurple/plugins/perl/common/MANIFEST
@@ -28,6 +28,7 @@ SSLConn.xs
SavedStatuses.xs
Server.xs
Signal.xs
+Smiley.xs
Sound.xs
Status.xs
Stringref.xs
diff --git a/libpurple/plugins/perl/common/Makefile.mingw b/libpurple/plugins/perl/common/Makefile.mingw
index f85e89ba1f..1a4b8150e7 100644
--- a/libpurple/plugins/perl/common/Makefile.mingw
+++ b/libpurple/plugins/perl/common/Makefile.mingw
@@ -61,8 +61,9 @@ XS_FILES = Account.xs \
Roomlist.xs \
SSLConn.xs \
SavedStatuses.xs \
- Signal.xs \
Server.xs \
+ Signal.xs \
+ Smiley.xs \
Sound.xs \
Status.xs \
Stringref.xs \
diff --git a/libpurple/plugins/perl/common/Purple.xs b/libpurple/plugins/perl/common/Purple.xs
index 58d00958ba..6e39ec300f 100644
--- a/libpurple/plugins/perl/common/Purple.xs
+++ b/libpurple/plugins/perl/common/Purple.xs
@@ -30,6 +30,7 @@ PURPLE_PERL_BOOT_PROTO(SSL);
PURPLE_PERL_BOOT_PROTO(SavedStatus);
PURPLE_PERL_BOOT_PROTO(Serv);
PURPLE_PERL_BOOT_PROTO(Signal);
+PURPLE_PERL_BOOT_PROTO(Smiley);
PURPLE_PERL_BOOT_PROTO(Sound);
PURPLE_PERL_BOOT_PROTO(Status);
PURPLE_PERL_BOOT_PROTO(Stringref);
@@ -68,6 +69,7 @@ BOOT:
PURPLE_PERL_BOOT(SavedStatus);
PURPLE_PERL_BOOT(Serv);
PURPLE_PERL_BOOT(Signal);
+ PURPLE_PERL_BOOT(Smiley);
PURPLE_PERL_BOOT(Sound);
PURPLE_PERL_BOOT(Status);
PURPLE_PERL_BOOT(Stringref);
diff --git a/libpurple/plugins/perl/common/Smiley.xs b/libpurple/plugins/perl/common/Smiley.xs
new file mode 100644
index 0000000000..560fd2d29d
--- /dev/null
+++ b/libpurple/plugins/perl/common/Smiley.xs
@@ -0,0 +1,81 @@
+#include "module.h"
+
+MODULE = Purple::Smiley PACKAGE = Purple::Smiley PREFIX = purple_smiley_
+PROTOTYPES: ENABLE
+
+Purple::Smiley
+purple_smiley_new(img, shortcut)
+ Purple::StoredImage img
+ const char * shortcut
+
+Purple::Smiley
+purple_smiley_new_from_file(shortcut, filepath)
+ const char * shortcut
+ const char * filepath
+
+void
+purple_smiley_delete(smiley)
+ Purple::Smiley smiley
+
+gboolean
+purple_smiley_set_shortcut(smiley, shortcut)
+ Purple::Smiley smiley
+ const char * shortcut
+
+void
+purple_smiley_set_data(smiley, data, data_len, keepfilename)
+ Purple::Smiley smiley
+ guchar * data
+ size_t data_len
+ gboolean keepfilename
+
+const char *
+purple_smiley_get_shortcut(smiley)
+ Purple::Smiley smiley
+
+const char *
+purple_smiley_get_checksum(smiley)
+ Purple::Smiley smiley
+
+Purple::StoredImage
+purple_smiley_get_stored_image(smiley)
+ Purple::Smiley smiley
+
+gconstpointer
+purple_smiley_get_data(smiley, len)
+ Purple::Smiley smiley
+ size_t * len
+
+const char *
+purple_smiley_get_extension(smiley)
+ Purple::Smiley smiley
+
+
+gchar_own *
+purple_smiley_get_full_path(smiley)
+ Purple::Smiley smiley
+
+
+MODULE = Purple::Smiley PACKAGE = Purple::Smileys PREFIX = purple_smileys_
+PROTOTYPES: ENABLE
+
+void
+purple_smileys_get_all()
+PREINIT:
+ GList *l;
+PPCODE:
+ for (l = purple_smileys_get_all(); l != NULL; l = g_list_delete_link(l, l)) {
+ XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::Smiley")));
+ }
+
+Purple::Smiley
+purple_smileys_find_by_shortcut(shortcut)
+ const char * shortcut
+
+Purple::Smiley
+purple_smileys_find_by_checksum(checksum)
+ const char * checksum
+
+const char *
+purple_smileys_get_storing_dir()
+
diff --git a/libpurple/plugins/perl/common/module.h b/libpurple/plugins/perl/common/module.h
index a05c59e2c7..b7b2c5568a 100644
--- a/libpurple/plugins/perl/common/module.h
+++ b/libpurple/plugins/perl/common/module.h
@@ -51,6 +51,7 @@ typedef struct group *Purple__Group;
#include "savedstatuses.h"
#include "server.h"
#include "signals.h"
+#include "smiley.h"
#include "sound.h"
#include "sslconn.h"
#include "status.h"
@@ -240,6 +241,9 @@ typedef PurpleRoomlistUiOps * Purple__Roomlist__UiOps;
typedef PurpleSavedStatus * Purple__SavedStatus;
typedef PurpleSavedStatusSub * Purple__SavedStatus__Sub;
+/* smiley.h */
+typedef PurpleSmiley * Purple__Smiley;
+
/* sound.h */
typedef PurpleSoundEventID Purple__SoundEventID;
typedef PurpleSoundUiOps * Purple__Sound__UiOps;
diff --git a/libpurple/plugins/perl/common/typemap b/libpurple/plugins/perl/common/typemap
index 83af8f0551..5e9ebfb306 100644
--- a/libpurple/plugins/perl/common/typemap
+++ b/libpurple/plugins/perl/common/typemap
@@ -151,6 +151,7 @@ Purple::Ssl::Ops T_PurpleObj
Purple::Presence T_PurpleObj
Purple::PresenceContext T_IV
+Purple::Smiley T_PurpleObj
Purple::Status T_PurpleObj
Purple::StatusAttr T_PurpleObj
Purple::StatusPrimitive T_IV