LMPX.COM |
Home | Linux | Mysql | PHP | XML | ||
|
|
|||
From: David Soria Parra Date: Mon Aug 25 14:34:07 2008 Subject: cvs: pecl /ktaglib ktaglib_id3v2_attachedpictureframe.cpp
dsp Mon Aug 25 20:34:07 2008 UTC
Modified files:
/pecl/ktaglib ktaglib_id3v2_attachedpictureframe.cpp
Log:
Add a setPicture method to the AttachedPictureFrame class
We add a setPicture frame that allows to set the image of an
attached picture frame, which then can be easily added to a
newly created tag using the addFrame() method.
http://cvs.php.net/viewvc.cgi/pecl/ktaglib/ktaglib_id3v2_attachedpictureframe.cpp?r1=1.3&r2=1.4&diff_format=u
Index: pecl/ktaglib/ktaglib_id3v2_attachedpictureframe.cpp
diff -u pecl/ktaglib/ktaglib_id3v2_attachedpictureframe.cpp:1.3 pecl/ktaglib/ktaglib_id3v2_attachedpictureframe.cpp:1.4
--- pecl/ktaglib/ktaglib_id3v2_attachedpictureframe.cpp:1.3 Mon Aug 25 20:33:17 2008
+++ pecl/ktaglib/ktaglib_id3v2_attachedpictureframe.cpp Mon Aug 25 20:34:07 2008
@@ -40,6 +40,29 @@
ZEND_ARG_INFO(0, filename)
ZEND_END_ARG_INFO()
+static int
+attachedpicture_set_picture(TagLib::ID3v2::AttachedPictureFrame * frame, char * filename TSRMLS_DC)
+{
+ int len;
+ long maxlen = PHP_STREAM_COPY_ALL;
+ char *contents;
+ php_stream_context *context = NULL;
+ php_stream * stream;
+
+ stream = php_stream_open_wrapper(filename, "rb", ENFORCE_SAFE_MODE | REPORT_ERRORS, NULL);
+
+ if (!stream) {
+ return -1;
+ }
+
+ if ((len = php_stream_copy_to_mem(stream, &contents, maxlen, 0)) > 0) {
+ frame->setPicture(TagLib::ByteVector(contents));
+ return 0;
+ }
+
+ return -1;
+}
+
PHP_METHOD(KTaglib_ID3v2_AttachedPictureFrame, __construct)
{
char * filename;
@@ -59,6 +82,23 @@
}
}
+PHP_METHOD(KTaglib_ID3v2_AttachedPictureFrame, setPicture)
+{
+ char * filename;
+ int filename_len;
+ ze_ktaglib_object *intern = NULL;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &filename, &filename_len) == FAILURE) {
+ return;
+ }
+
+ intern = (ze_ktaglib_object*) zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ if (filename) {
+ attachedpicture_set_picture((TagLib::ID3v2::AttachedPictureFrame *)intern->frame, filename TSRMLS_CC);
+ }
+}
+
PHP_METHOD(KTaglib_ID3v2_AttachedPictureFrame, getDescription)
{
ze_ktaglib_object *intern = NULL;
@@ -106,6 +146,7 @@
static zend_function_entry KTaglib_ID3v2_AttachedPictureFrame_methods[] = {
PHP_ME(KTaglib_ID3v2_AttachedPictureFrame, __construct, NULL, ZEND_ACC_PUBLIC)
+ PHP_ME(KTaglib_ID3v2_AttachedPictureFrame, setPicture, NULL, ZEND_ACC_PUBLIC)
PHP_ME(KTaglib_ID3v2_AttachedPictureFrame, getMimeType, NULL, ZEND_ACC_PUBLIC)
PHP_ME(KTaglib_ID3v2_AttachedPictureFrame, getDescription, NULL, ZEND_ACC_PUBLIC)
PHP_ME(KTaglib_ID3v2_AttachedPictureFrame, savePicture, KTaglib_ID3v2_AttachedPictureFrame_savePicture_args, ZEND_ACC_PUBLIC)
| Navigate in group php.pecl.cvs at sever news.php.net | |
| Previous | Next |
| © No Copyright You are free to use Anything |
Site Maintained by PHP Developer
Powered By PHP Consultants |