2 #include <../neuronmusic/nrnmusic.h> 43 if (next_) {
delete next_; }
47 for (i=next_;
i; i =
j) {
60 virtual int type() {
return 100; }
100 ((MUSIC::EventOutputPort*)vport)->
101 insertEvent(tt / 1000.0,
102 (MUSIC::GlobalIndex)gi);
134 PreSyn* ps = iter->second;
135 ps->music_port_ =
new MusicPortPair((
void*)
this, gi, ps->music_port_);
142 gi_table =
new Gi2PreSynTable(1024);
147 gi_table->insert(gi, ps);
152 gi_table =
new Gi2PreSynTable(1024);
191 char**&
argv = *pargv;
192 if (strlen(argv[0]) >= 5 &&
193 strcmp(argv[0] + strlen(argv[0]) - 5,
"music") == 0) {
196 for (i=0; i <
argc; ++
i) {
197 if (strcmp(argv[i],
"-music") == 0) {
201 if (
getenv (
"_MUSIC_CONFIG_"))
220 static int called = 0;
228 Gi2PreSynTable* pst = eip->
gi_table;
229 std::vector<MUSIC::GlobalIndex> gindices;
233 int gi =
j.cur_key();
235 gindices.push_back (gi);
239 MUSIC::PermutationIndex indices (&gindices.front (),
249 Gi2PreSynTable* pst = eop->
gi_table;
250 std::vector<MUSIC::GlobalIndex> gindices;
253 int gi =
j.cur_key();
255 gindices.push_back (gi);
257 MUSIC::PermutationIndex indices (&gindices.front (),
259 eop->map(&indices, MUSIC::Index::GLOBAL);
void filltable(NRNMUSIC::EventInputPort *, int)
TQItem * event(double tdeliver, DiscreteEvent *, NrnThread *)
static Gid2PreSyn gid2out_
static NetParMusicEvent * npme
void operator()(double t, MUSIC::LocalIndex id)
PyObject * nrnpy_ho2po(Object *)
void static int PortTable * music_input_ports
MusicPortPair(void *port, int gindex, void *p)
virtual void send(double sendtime, NetCvode *, NrnThread *)
virtual void deliver(double, NetCvode *, NrnThread *)
Represent main neuron object computed by single thread.
Gi2PreSynTable * gi_table
void psl_append(PreSyn *)
EventOutputPort * publishEventOutput(std::string identifier)
Object * hoc_new_object(Symbol *, void *)
#define implementTable(Table, Key, Value)
Object * nrnpy_po2ho(PyObject *)
void nrnmusic_init(int *, char ***)
void nrnmusic_injectlist(void *vp, double tt)
MUSIC::Setup * nrnmusic_setup
virtual ~NetParMusicEvent()
static double usable_mindelay_
void hoc_execerror(const char *, const char *)
int is_point_process(Object *)
char * getenv(const char *s)
virtual void send(double, NetCvode *, NrnThread *)
#define TableIterator(Table)
MUSIC::Runtime * nrnmusic_runtime
void gid2index(int gid, int gi)
void nrnmusic_inject(void *port, int gindex, double tt)
static void nrnmusic_runtime_phase()
EventInputPort * publishEventInput(std::string identifier)
declareTable(PortTable, void *, int) implementTable(PortTable
void nrnmusic_spikehandle(void *vport, double tt, int gindex)
void nrnmusic_terminate()
static Symbol * netcon_sym_
static PortTable * music_output_ports
NetCvode * net_cvode_instance