Eina_Bool size : 1;
Eina_Bool format : 1;
Eina_Bool aspect : 1;
+ Eina_Bool orientation: 1;
Eina_Bool crop : 1;
Eina_Bool quality : 1;
Eina_Bool compress : 1;
int tw, th;
int format;
int aspect;
+ int orientation;
float cx, cy;
int quality;
int compress;
case ETHUMBD_FDO:
case ETHUMBD_FORMAT:
case ETHUMBD_ASPECT:
+ case ETHUMBD_ORIENTATION:
case ETHUMBD_QUALITY:
case ETHUMBD_COMPRESS:
case ETHUMBD_SIZE_W:
_ethumbd_pipe_write_setup(ed, ETHUMBD_FORMAT, &setup->format);
if (setup->flags.aspect)
_ethumbd_pipe_write_setup(ed, ETHUMBD_ASPECT, &setup->aspect);
+ if (setup->flags.orientation)
+ _ethumbd_pipe_write_setup(ed, ETHUMBD_ORIENTATION, &setup->orientation);
if (setup->flags.crop)
{
_ethumbd_pipe_write_setup(ed, ETHUMBD_CROP_X, &setup->cx);
}
static int
+_ethumb_dbus_orientation_set(struct _Ethumb_Object *eobject __UNUSED__, DBusMessageIter *iter, struct _Ethumb_Request *request)
+{
+ int type;
+ dbus_int32_t orientation;
+
+ type = dbus_message_iter_get_arg_type(iter);
+ if (type != DBUS_TYPE_INT32)
+ {
+ ERR("invalid param for orientation_set.");
+ return 0;
+ }
+
+ dbus_message_iter_get_basic(iter, &orientation);
+ DBG("setting orientation to: %d", orientation);
+ request->setup.flags.orientation = 1;
+ request->setup.orientation = orientation;
+
+ return 1;
+}
+
+static int
_ethumb_dbus_crop_set(struct _Ethumb_Object *eobject __UNUSED__, DBusMessageIter *iter, struct _Ethumb_Request *request)
{
DBusMessageIter oiter;
{"size", _ethumb_dbus_size_set},
{"format", _ethumb_dbus_format_set},
{"aspect", _ethumb_dbus_aspect_set},
+ {"orientation", _ethumb_dbus_orientation_set},
{"crop", _ethumb_dbus_crop_set},
{"quality", _ethumb_dbus_quality_set},
{"compress", _ethumb_dbus_compress_set},
}
static int
+_ec_orientation_set(struct _Ethumbd_Child *ec, Ethumb *e)
+{
+ int r;
+ int value;
+
+ r = _ec_read_safe(STDIN_FILENO, &value, sizeof(value));
+ if (!r)
+ return 0;
+ ethumb_thumb_orientation_set(e, value);
+ DBG("orientation = %d", value);
+
+ return 1;
+}
+
+static int
_ec_crop_set(struct _Ethumbd_Child *ec, Ethumb *e)
{
int r;
case ETHUMBD_ASPECT:
_ec_aspect_set(ec, e);
break;
+ case ETHUMBD_ORIENTATION:
+ _ec_orientation_set(ec, e);
+ break;
case ETHUMBD_CROP_X:
_ec_crop_set(ec, e);
break;