mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-14 07:32:35 -05:00
Add FS #10214. Initial commit of the original PDa code for the GSoC Pure Data plugin project of Wincent Balin. Stripped some non-sourcefiles and added a rockbox readme that needs a bit more info from Wincent. Is added to CATEGORIES and viewers, but not yet to SUBDIRS (ie doesn't build yet)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21044 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
95fa7f6a2e
commit
513389b4c1
199 changed files with 139349 additions and 1 deletions
252
apps/plugins/pdbox/PDa/src/m_fixed.c
Normal file
252
apps/plugins/pdbox/PDa/src/m_fixed.c
Normal file
|
|
@ -0,0 +1,252 @@
|
|||
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/tcp.h>
|
||||
#include <netdb.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "m_pd.h"
|
||||
#include "m_imp.h"
|
||||
|
||||
static t_class *ipod_class = 0;
|
||||
|
||||
typedef struct _ipod
|
||||
{
|
||||
t_object x_obj;
|
||||
t_symbol* x_what;
|
||||
} t_ipod;
|
||||
|
||||
static t_ipod* ipod;
|
||||
static t_int x_fd = -1;
|
||||
|
||||
|
||||
|
||||
static void ipod_connect()
|
||||
{
|
||||
struct sockaddr_in server;
|
||||
struct hostent *hp;
|
||||
int sockfd;
|
||||
int portno = 3334;
|
||||
char hostname[] = "127.0.0.1";
|
||||
int intarg;
|
||||
if (x_fd >= 0)
|
||||
{
|
||||
error("ipod_connect: already connected");
|
||||
return;
|
||||
}
|
||||
|
||||
/* create a socket */
|
||||
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
|
||||
|
||||
if (sockfd < 0)
|
||||
{
|
||||
sys_sockerror("socket");
|
||||
return;
|
||||
}
|
||||
|
||||
/* connect socket using hostname provided in command line */
|
||||
|
||||
server.sin_family = AF_INET;
|
||||
hp = gethostbyname(hostname);
|
||||
if (hp == 0)
|
||||
{
|
||||
post("bad host?\n");
|
||||
return;
|
||||
}
|
||||
|
||||
memcpy((char *)&server.sin_addr, (char *)hp->h_addr, hp->h_length);
|
||||
|
||||
server.sin_port = htons((u_short)portno);
|
||||
if (connect(sockfd, (struct sockaddr *) &server, sizeof (server)) < 0)
|
||||
{
|
||||
sys_sockerror("connecting stream socket");
|
||||
sys_closesocket(sockfd);
|
||||
return;
|
||||
}
|
||||
post("connected %s %d",hostname,portno);
|
||||
x_fd = sockfd;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void ipod_bang(t_ipod *x)
|
||||
{
|
||||
static char sendme[200];
|
||||
sprintf(sendme,"%s bang;\n",x->x_what->s_name);
|
||||
send(x_fd,sendme,strlen(sendme),0);
|
||||
|
||||
// if (x->x_sym->s_thing) pd_bang(x->x_sym->s_thing);
|
||||
}
|
||||
|
||||
static void ipod_float(t_ipod *x, t_float f)
|
||||
{
|
||||
static char sendme[200];
|
||||
|
||||
sprintf(sendme,"%s %f;\n",x->x_what->s_name,f);
|
||||
send(x_fd,sendme,strlen(sendme),0);
|
||||
|
||||
// post("forwarding float %s",x->x_what->s_name);
|
||||
// if (x->x_sym->s_thing) pd_float(x->x_sym->s_thing, f);
|
||||
}
|
||||
|
||||
static void *ipod_new(t_symbol* what)
|
||||
{
|
||||
t_ipod *x = (t_ipod *)pd_new(ipod_class);
|
||||
post("new ipod %s",what->s_name);
|
||||
x->x_what = what;
|
||||
return (x);
|
||||
}
|
||||
|
||||
static void ipod_setup(void)
|
||||
{
|
||||
ipod_class = class_new(gensym("ipod"), (t_newmethod)ipod_new, 0,
|
||||
sizeof(t_ipod), 0, A_DEFSYM, 0);
|
||||
class_addbang(ipod_class, ipod_bang);
|
||||
class_addfloat(ipod_class, ipod_float);
|
||||
ipod_connect();
|
||||
}
|
||||
|
||||
void pd_checkgui(t_pd *x, t_symbol *s)
|
||||
{
|
||||
if (!strncmp(s->s_name,"pod_",4))
|
||||
if (!strcmp((*x)->c_name->s_name,"gatom") ||
|
||||
!strcmp((*x)->c_name->s_name,"vsl") ||
|
||||
!strcmp((*x)->c_name->s_name,"hsl") ||
|
||||
!strcmp((*x)->c_name->s_name,"bng") ||
|
||||
!strcmp((*x)->c_name->s_name,"vradio") ||
|
||||
!strcmp((*x)->c_name->s_name,"hradio")) {
|
||||
|
||||
post("binding %s to %s",s->s_name,(*x)->c_name->s_name);
|
||||
if (!ipod_class) ipod_setup();
|
||||
ipod = ipod_new(s);
|
||||
pd_bind(&ipod->x_obj.ob_pd,s);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/tcp.h>
|
||||
#include <netdb.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "m_pd.h"
|
||||
#include "m_imp.h"
|
||||
|
||||
static t_class *ipod_class = 0;
|
||||
|
||||
typedef struct _ipod
|
||||
{
|
||||
t_object x_obj;
|
||||
t_symbol* x_what;
|
||||
} t_ipod;
|
||||
|
||||
static t_ipod* ipod;
|
||||
static t_int x_fd = -1;
|
||||
|
||||
|
||||
|
||||
static void ipod_connect()
|
||||
{
|
||||
struct sockaddr_in server;
|
||||
struct hostent *hp;
|
||||
int sockfd;
|
||||
int portno = 3334;
|
||||
char hostname[] = "127.0.0.1";
|
||||
int intarg;
|
||||
if (x_fd >= 0)
|
||||
{
|
||||
error("ipod_connect: already connected");
|
||||
return;
|
||||
}
|
||||
|
||||
/* create a socket */
|
||||
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
|
||||
|
||||
if (sockfd < 0)
|
||||
{
|
||||
sys_sockerror("socket");
|
||||
return;
|
||||
}
|
||||
|
||||
/* connect socket using hostname provided in command line */
|
||||
|
||||
server.sin_family = AF_INET;
|
||||
hp = gethostbyname(hostname);
|
||||
if (hp == 0)
|
||||
{
|
||||
post("bad host?\n");
|
||||
return;
|
||||
}
|
||||
|
||||
memcpy((char *)&server.sin_addr, (char *)hp->h_addr, hp->h_length);
|
||||
|
||||
server.sin_port = htons((u_short)portno);
|
||||
if (connect(sockfd, (struct sockaddr *) &server, sizeof (server)) < 0)
|
||||
{
|
||||
sys_sockerror("connecting stream socket");
|
||||
sys_closesocket(sockfd);
|
||||
return;
|
||||
}
|
||||
post("connected %s %d",hostname,portno);
|
||||
x_fd = sockfd;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void ipod_bang(t_ipod *x)
|
||||
{
|
||||
static char sendme[200];
|
||||
sprintf(sendme,"%s bang;\n",x->x_what->s_name);
|
||||
send(x_fd,sendme,strlen(sendme),0);
|
||||
|
||||
// if (x->x_sym->s_thing) pd_bang(x->x_sym->s_thing);
|
||||
}
|
||||
|
||||
static void ipod_float(t_ipod *x, t_float f)
|
||||
{
|
||||
static char sendme[200];
|
||||
|
||||
sprintf(sendme,"%s %f;\n",x->x_what->s_name,f);
|
||||
send(x_fd,sendme,strlen(sendme),0);
|
||||
|
||||
// post("forwarding float %s",x->x_what->s_name);
|
||||
// if (x->x_sym->s_thing) pd_float(x->x_sym->s_thing, f);
|
||||
}
|
||||
|
||||
static void *ipod_new(t_symbol* what)
|
||||
{
|
||||
t_ipod *x = (t_ipod *)pd_new(ipod_class);
|
||||
post("new ipod %s",what->s_name);
|
||||
x->x_what = what;
|
||||
return (x);
|
||||
}
|
||||
|
||||
static void ipod_setup(void)
|
||||
{
|
||||
ipod_class = class_new(gensym("ipod"), (t_newmethod)ipod_new, 0,
|
||||
sizeof(t_ipod), 0, A_DEFSYM, 0);
|
||||
class_addbang(ipod_class, ipod_bang);
|
||||
class_addfloat(ipod_class, ipod_float);
|
||||
ipod_connect();
|
||||
}
|
||||
|
||||
void pd_checkgui(t_pd *x, t_symbol *s)
|
||||
{
|
||||
if (!strncmp(s->s_name,"pod_",4))
|
||||
if (!strcmp((*x)->c_name->s_name,"gatom") ||
|
||||
!strcmp((*x)->c_name->s_name,"vsl") ||
|
||||
!strcmp((*x)->c_name->s_name,"hsl") ||
|
||||
!strcmp((*x)->c_name->s_name,"bng") ||
|
||||
!strcmp((*x)->c_name->s_name,"vradio") ||
|
||||
!strcmp((*x)->c_name->s_name,"hradio")) {
|
||||
|
||||
post("binding %s to %s",s->s_name,(*x)->c_name->s_name);
|
||||
if (!ipod_class) ipod_setup();
|
||||
ipod = ipod_new(s);
|
||||
pd_bind(&ipod->x_obj.ob_pd,s);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue