Added a plug-in to lock and unlock the screen automatically
This commit is contained in:
parent
4df6693d36
commit
d2d122f632
1
Makefile
1
Makefile
@ -99,6 +99,7 @@ dist:
|
|||||||
$(PACKAGE)-$(VERSION)/src/plugins/debug.c \
|
$(PACKAGE)-$(VERSION)/src/plugins/debug.c \
|
||||||
$(PACKAGE)-$(VERSION)/src/plugins/engineering.c \
|
$(PACKAGE)-$(VERSION)/src/plugins/engineering.c \
|
||||||
$(PACKAGE)-$(VERSION)/src/plugins/gprs.c \
|
$(PACKAGE)-$(VERSION)/src/plugins/gprs.c \
|
||||||
|
$(PACKAGE)-$(VERSION)/src/plugins/locker.c \
|
||||||
$(PACKAGE)-$(VERSION)/src/plugins/openmoko.c \
|
$(PACKAGE)-$(VERSION)/src/plugins/openmoko.c \
|
||||||
$(PACKAGE)-$(VERSION)/src/plugins/oss.c \
|
$(PACKAGE)-$(VERSION)/src/plugins/oss.c \
|
||||||
$(PACKAGE)-$(VERSION)/src/plugins/panel.c \
|
$(PACKAGE)-$(VERSION)/src/plugins/panel.c \
|
||||||
|
@ -47,7 +47,6 @@ typedef enum _PhoneEncoding
|
|||||||
|
|
||||||
typedef enum _PhoneEventType
|
typedef enum _PhoneEventType
|
||||||
{
|
{
|
||||||
PHONE_EVENT_TYPE_CALLING, /* char const * number */
|
|
||||||
PHONE_EVENT_TYPE_KEY_TONE,
|
PHONE_EVENT_TYPE_KEY_TONE,
|
||||||
PHONE_EVENT_TYPE_MODEM_EVENT, /* ModemEvent * event */
|
PHONE_EVENT_TYPE_MODEM_EVENT, /* ModemEvent * event */
|
||||||
PHONE_EVENT_TYPE_NOTIFICATION_OFF,
|
PHONE_EVENT_TYPE_NOTIFICATION_OFF,
|
||||||
@ -74,13 +73,6 @@ typedef union _PhoneEvent
|
|||||||
{
|
{
|
||||||
PhoneEventType type;
|
PhoneEventType type;
|
||||||
|
|
||||||
/* PHONE_EVENT_TYPE_CALLING */
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
PhoneEventType type;
|
|
||||||
char const * number;
|
|
||||||
} calling;
|
|
||||||
|
|
||||||
/* PHONE_EVENT_TYPE_MODEM_EVENT */
|
/* PHONE_EVENT_TYPE_MODEM_EVENT */
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
|
@ -2955,7 +2955,6 @@ void phone_write_send(Phone * phone)
|
|||||||
/* phone_call_number */
|
/* phone_call_number */
|
||||||
static int _phone_call_number(Phone * phone, char const * number)
|
static int _phone_call_number(Phone * phone, char const * number)
|
||||||
{
|
{
|
||||||
PhoneEvent event;
|
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
time_t date;
|
time_t date;
|
||||||
struct tm t;
|
struct tm t;
|
||||||
@ -2963,11 +2962,6 @@ static int _phone_call_number(Phone * phone, char const * number)
|
|||||||
|
|
||||||
if(number == NULL)
|
if(number == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
memset(&event, 0, sizeof(event));
|
|
||||||
event.type = PHONE_EVENT_TYPE_CALLING;
|
|
||||||
event.calling.number = number;
|
|
||||||
if(phone_event(phone, &event) != 0)
|
|
||||||
return -1;
|
|
||||||
modem_request_type(phone->modem, MODEM_REQUEST_CALL,
|
modem_request_type(phone->modem, MODEM_REQUEST_CALL,
|
||||||
MODEM_CALL_TYPE_VOICE, number, 0);
|
MODEM_CALL_TYPE_VOICE, number, 0);
|
||||||
phone_show_call(phone, TRUE, PHONE_CALL_OUTGOING, "", number);
|
phone_show_call(phone, TRUE, PHONE_CALL_OUTGOING, "", number);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
SUBDIRS = 16x16 24x24 32x32 48x48
|
SUBDIRS = 16x16 24x24 32x32 48x48
|
||||||
TARGETS = blacklist.so debug.so engineering.so gprs.so openmoko.so oss.so panel.so profiles.so smscrypt.so
|
TARGETS = blacklist.so debug.so engineering.so gprs.so locker.so openmoko.so oss.so panel.so profiles.so smscrypt.so
|
||||||
PREFIX = /usr/local
|
PREFIX = /usr/local
|
||||||
DESTDIR =
|
DESTDIR =
|
||||||
LIBDIR = $(PREFIX)/lib
|
LIBDIR = $(PREFIX)/lib
|
||||||
@ -50,6 +50,13 @@ gprs_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)
|
|||||||
gprs.so: $(gprs_OBJS)
|
gprs.so: $(gprs_OBJS)
|
||||||
$(LD) -o gprs.so $(gprs_OBJS) $(gprs_LDFLAGS)
|
$(LD) -o gprs.so $(gprs_OBJS) $(gprs_LDFLAGS)
|
||||||
|
|
||||||
|
locker_OBJS = locker.o
|
||||||
|
locker_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
|
||||||
|
locker_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)
|
||||||
|
|
||||||
|
locker.so: $(locker_OBJS)
|
||||||
|
$(LD) -o locker.so $(locker_OBJS) $(locker_LDFLAGS)
|
||||||
|
|
||||||
openmoko_OBJS = openmoko.o
|
openmoko_OBJS = openmoko.o
|
||||||
openmoko_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) -I../modems $(CFLAGSF) $(CFLAGS) `pkg-config --cflags alsa`
|
openmoko_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) -I../modems $(CFLAGSF) $(CFLAGS) `pkg-config --cflags alsa`
|
||||||
openmoko_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs alsa`
|
openmoko_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs alsa`
|
||||||
@ -94,9 +101,12 @@ debug.o: debug.c ../../include/Phone.h
|
|||||||
engineering.o: engineering.c ../../include/Phone.h
|
engineering.o: engineering.c ../../include/Phone.h
|
||||||
$(CC) $(engineering_CFLAGS) -c engineering.c
|
$(CC) $(engineering_CFLAGS) -c engineering.c
|
||||||
|
|
||||||
gprs.o: gprs.c
|
gprs.o: gprs.c ../../include/Phone.h
|
||||||
$(CC) $(gprs_CFLAGS) -c gprs.c
|
$(CC) $(gprs_CFLAGS) -c gprs.c
|
||||||
|
|
||||||
|
locker.o: locker.c ../../include/Phone.h
|
||||||
|
$(CC) $(locker_CFLAGS) -c locker.c
|
||||||
|
|
||||||
openmoko.o: openmoko.c ../../include/Phone.h
|
openmoko.o: openmoko.c ../../include/Phone.h
|
||||||
$(CC) $(openmoko_CFLAGS) -c openmoko.c
|
$(CC) $(openmoko_CFLAGS) -c openmoko.c
|
||||||
|
|
||||||
@ -114,11 +124,11 @@ smscrypt.o: smscrypt.c ../../include/Phone.h
|
|||||||
|
|
||||||
clean:
|
clean:
|
||||||
@for i in $(SUBDIRS); do (cd $$i && $(MAKE) clean) || exit; done
|
@for i in $(SUBDIRS); do (cd $$i && $(MAKE) clean) || exit; done
|
||||||
$(RM) -- $(blacklist_OBJS) $(debug_OBJS) $(engineering_OBJS) $(gprs_OBJS) $(openmoko_OBJS) $(oss_OBJS) $(panel_OBJS) $(profiles_OBJS) $(smscrypt_OBJS)
|
$(RM) -- $(blacklist_OBJS) $(debug_OBJS) $(engineering_OBJS) $(gprs_OBJS) $(locker_OBJS) $(openmoko_OBJS) $(oss_OBJS) $(panel_OBJS) $(profiles_OBJS) $(smscrypt_OBJS)
|
||||||
|
|
||||||
distclean:
|
distclean:
|
||||||
@for i in $(SUBDIRS); do (cd $$i && $(MAKE) distclean) || exit; done
|
@for i in $(SUBDIRS); do (cd $$i && $(MAKE) distclean) || exit; done
|
||||||
$(RM) -- $(blacklist_OBJS) $(debug_OBJS) $(engineering_OBJS) $(gprs_OBJS) $(openmoko_OBJS) $(oss_OBJS) $(panel_OBJS) $(profiles_OBJS) $(smscrypt_OBJS)
|
$(RM) -- $(blacklist_OBJS) $(debug_OBJS) $(engineering_OBJS) $(gprs_OBJS) $(locker_OBJS) $(openmoko_OBJS) $(oss_OBJS) $(panel_OBJS) $(profiles_OBJS) $(smscrypt_OBJS)
|
||||||
$(RM) -- $(TARGETS)
|
$(RM) -- $(TARGETS)
|
||||||
|
|
||||||
install: $(TARGETS)
|
install: $(TARGETS)
|
||||||
@ -132,6 +142,8 @@ install: $(TARGETS)
|
|||||||
$(MKDIR) $(DESTDIR)$(LIBDIR)/Phone/plugins
|
$(MKDIR) $(DESTDIR)$(LIBDIR)/Phone/plugins
|
||||||
$(INSTALL) -m 0644 -- gprs.so $(DESTDIR)$(LIBDIR)/Phone/plugins/gprs.so
|
$(INSTALL) -m 0644 -- gprs.so $(DESTDIR)$(LIBDIR)/Phone/plugins/gprs.so
|
||||||
$(MKDIR) $(DESTDIR)$(LIBDIR)/Phone/plugins
|
$(MKDIR) $(DESTDIR)$(LIBDIR)/Phone/plugins
|
||||||
|
$(INSTALL) -m 0644 -- locker.so $(DESTDIR)$(LIBDIR)/Phone/plugins/locker.so
|
||||||
|
$(MKDIR) $(DESTDIR)$(LIBDIR)/Phone/plugins
|
||||||
$(INSTALL) -m 0644 -- openmoko.so $(DESTDIR)$(LIBDIR)/Phone/plugins/openmoko.so
|
$(INSTALL) -m 0644 -- openmoko.so $(DESTDIR)$(LIBDIR)/Phone/plugins/openmoko.so
|
||||||
$(MKDIR) $(DESTDIR)$(LIBDIR)/Phone/plugins
|
$(MKDIR) $(DESTDIR)$(LIBDIR)/Phone/plugins
|
||||||
$(INSTALL) -m 0644 -- panel.so $(DESTDIR)$(LIBDIR)/Phone/plugins/panel.so
|
$(INSTALL) -m 0644 -- panel.so $(DESTDIR)$(LIBDIR)/Phone/plugins/panel.so
|
||||||
@ -146,6 +158,7 @@ uninstall:
|
|||||||
$(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/debug.so
|
$(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/debug.so
|
||||||
$(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/engineering.so
|
$(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/engineering.so
|
||||||
$(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/gprs.so
|
$(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/gprs.so
|
||||||
|
$(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/locker.so
|
||||||
$(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/openmoko.so
|
$(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/openmoko.so
|
||||||
$(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/panel.so
|
$(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/panel.so
|
||||||
$(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/profiles.so
|
$(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/profiles.so
|
||||||
|
@ -59,7 +59,6 @@ static struct
|
|||||||
|
|
||||||
static DebugPhoneEvents _debug_phone_events[] =
|
static DebugPhoneEvents _debug_phone_events[] =
|
||||||
{
|
{
|
||||||
{ PHONE_EVENT_TYPE_CALLING, "CALLING" },
|
|
||||||
{ PHONE_EVENT_TYPE_KEY_TONE, "KEY_TONE" },
|
{ PHONE_EVENT_TYPE_KEY_TONE, "KEY_TONE" },
|
||||||
{ PHONE_EVENT_TYPE_MODEM_EVENT, "MODEM_EVENT" },
|
{ PHONE_EVENT_TYPE_MODEM_EVENT, "MODEM_EVENT" },
|
||||||
{ PHONE_EVENT_TYPE_NOTIFICATION_OFF, "NOTIFICATION_OFF" },
|
{ PHONE_EVENT_TYPE_NOTIFICATION_OFF, "NOTIFICATION_OFF" },
|
||||||
|
98
src/plugins/locker.c
Normal file
98
src/plugins/locker.c
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
/* $Id$ */
|
||||||
|
/* Copyright (c) 2011 Pierre Pronchery <khorben@defora.org> */
|
||||||
|
/* This file is part of DeforaOS Desktop Phone */
|
||||||
|
/* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, version 3 of the License.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
#include <Desktop/Locker.h>
|
||||||
|
#include "Phone.h"
|
||||||
|
|
||||||
|
|
||||||
|
/* Locker */
|
||||||
|
/* private */
|
||||||
|
/* prototypes */
|
||||||
|
/* plug-in */
|
||||||
|
static int _locker_event(PhonePlugin * plugin, PhoneEvent * event);
|
||||||
|
|
||||||
|
/* useful */
|
||||||
|
static int _locker_action(LockerAction action);
|
||||||
|
|
||||||
|
|
||||||
|
/* public */
|
||||||
|
/* variables */
|
||||||
|
PhonePlugin plugin =
|
||||||
|
{
|
||||||
|
NULL,
|
||||||
|
"Locker",
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
_locker_event,
|
||||||
|
NULL,
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* private */
|
||||||
|
/* functions */
|
||||||
|
/* locker_event */
|
||||||
|
static int _event_modem(ModemEvent * event);
|
||||||
|
|
||||||
|
static int _locker_event(PhonePlugin * plugin, PhoneEvent * event)
|
||||||
|
{
|
||||||
|
switch(event->type)
|
||||||
|
{
|
||||||
|
case PHONE_EVENT_TYPE_MODEM_EVENT:
|
||||||
|
return _event_modem(event->modem_event.event);
|
||||||
|
case PHONE_EVENT_TYPE_SUSPEND:
|
||||||
|
return _locker_action(LOCKER_ACTION_LOCK);
|
||||||
|
default: /* not relevant */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int _event_modem(ModemEvent * event)
|
||||||
|
{
|
||||||
|
switch(event->call.direction)
|
||||||
|
{
|
||||||
|
case MODEM_CALL_DIRECTION_INCOMING:
|
||||||
|
return _locker_action(LOCKER_ACTION_UNLOCK);
|
||||||
|
default: /* not relevant */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* useful */
|
||||||
|
/* locker_action */
|
||||||
|
static int _locker_action(LockerAction action)
|
||||||
|
{
|
||||||
|
GdkEvent event;
|
||||||
|
GdkEventClient * client = &event.client;
|
||||||
|
|
||||||
|
memset(&event, 0, sizeof(event));
|
||||||
|
client->type = GDK_CLIENT_EVENT;
|
||||||
|
client->window = NULL;
|
||||||
|
client->send_event = TRUE;
|
||||||
|
client->message_type = gdk_atom_intern(LOCKER_CLIENT_MESSAGE, FALSE);
|
||||||
|
client->data_format = 8;
|
||||||
|
client->data.b[0] = LOCKER_MESSAGE_ACTION;
|
||||||
|
client->data.b[1] = action;
|
||||||
|
client->data.b[2] = TRUE;
|
||||||
|
gdk_event_send_clientmessage_toall(&event);
|
||||||
|
return 0;
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
subdirs=16x16,24x24,32x32,48x48
|
subdirs=16x16,24x24,32x32,48x48
|
||||||
targets=blacklist,debug,engineering,gprs,openmoko,oss,panel,profiles,smscrypt
|
targets=blacklist,debug,engineering,gprs,locker,openmoko,oss,panel,profiles,smscrypt
|
||||||
cppflags_force=-I ../../include
|
cppflags_force=-I ../../include
|
||||||
cppflags=
|
cppflags=
|
||||||
cflags_force=-W `pkg-config --cflags libSystem gtk+-2.0`
|
cflags_force=-W `pkg-config --cflags libSystem gtk+-2.0`
|
||||||
@ -35,6 +35,17 @@ type=plugin
|
|||||||
sources=gprs.c
|
sources=gprs.c
|
||||||
install=$(LIBDIR)/Phone/plugins
|
install=$(LIBDIR)/Phone/plugins
|
||||||
|
|
||||||
|
[gprs.c]
|
||||||
|
depends=../../include/Phone.h
|
||||||
|
|
||||||
|
[locker]
|
||||||
|
type=plugin
|
||||||
|
sources=locker.c
|
||||||
|
install=$(LIBDIR)/Phone/plugins
|
||||||
|
|
||||||
|
[locker.c]
|
||||||
|
depends=../../include/Phone.h
|
||||||
|
|
||||||
[openmoko]
|
[openmoko]
|
||||||
type=plugin
|
type=plugin
|
||||||
sources=openmoko.c
|
sources=openmoko.c
|
||||||
|
Loading…
Reference in New Issue
Block a user