diff options
author | Miodrag Milanovic <mmicko@gmail.com> | 2011-09-09 14:45:13 +0000 |
---|---|---|
committer | Miodrag Milanovic <mmicko@gmail.com> | 2011-09-09 14:45:13 +0000 |
commit | 8831b63c0461c7080b16ef37ef021a3f4432ba53 (patch) | |
tree | 62e51fb976ba0e89949545bd4bef9702f31f5127 /src | |
parent | f679bbfe7006004ebc3b7a78a209639549472698 (diff) |
Made network device selection to be per id, which makes it simpler, and doesn't need hardcoded values (no whatsnew)
Diffstat (limited to 'src')
-rw-r--r-- | src/emu/dinetwork.c | 6 | ||||
-rw-r--r-- | src/emu/dinetwork.h | 2 | ||||
-rw-r--r-- | src/osd/osdnet.c | 6 | ||||
-rw-r--r-- | src/osd/osdnet.h | 2 |
4 files changed, 9 insertions, 7 deletions
diff --git a/src/emu/dinetwork.c b/src/emu/dinetwork.c index b0c188f9a04..830a95d4cb9 100644 --- a/src/emu/dinetwork.c +++ b/src/emu/dinetwork.c @@ -43,9 +43,9 @@ void device_network_interface::set_mac(const char *mac) if(m_dev) m_dev->set_mac(m_mac); } -void device_network_interface::set_interface(const char *name) +void device_network_interface::set_interface(int id) { - m_dev = open_netdev(name, this, (int)(m_bandwidth*1000000/8.0/1500)); + m_dev = open_netdev(id, this, (int)(m_bandwidth*1000000/8.0/1500)); if(!m_dev) - logerror("Network interface %.256s not found\n", name); + logerror("Network interface %d not found\n", id); } diff --git a/src/emu/dinetwork.h b/src/emu/dinetwork.h index c97b429759e..f7f2e38218d 100644 --- a/src/emu/dinetwork.h +++ b/src/emu/dinetwork.h @@ -9,7 +9,7 @@ public: device_network_interface(const machine_config &mconfig, device_t &device, float bandwidth); virtual ~device_network_interface(); - void set_interface(const char *name); + void set_interface(int id); void set_promisc(bool promisc); void set_mac(const char *mac); diff --git a/src/osd/osdnet.c b/src/osd/osdnet.c index 6a2fbbaac2f..b91dea82722 100644 --- a/src/osd/osdnet.c +++ b/src/osd/osdnet.c @@ -3,6 +3,7 @@ typedef struct netdev_entry { + int id; char name[256]; create_netdev func; struct netdev_entry *m_next; @@ -13,17 +14,18 @@ static class simple_list<netdev_entry_t> netdev_list; void add_netdev(const char *name, create_netdev func) { netdev_entry_t *entry = new netdev_entry_t; + entry->id = netdev_list.count(); strncpy(entry->name, name, 255); entry->name[255] = '\0'; entry->func = func; netdev_list.append(*entry); } -class netdev *open_netdev(const char *name, class device_network_interface *ifdev, int rate) +class netdev *open_netdev(int id, class device_network_interface *ifdev, int rate) { netdev_entry_t *entry = netdev_list.first(); while(entry) { - if(!strncmp(name, entry->name, 256)) + if(entry->id==id) return entry->func(entry->name, ifdev, rate); entry = entry->m_next; } diff --git a/src/osd/osdnet.h b/src/osd/osdnet.h index fd80bece7b4..23fc032a061 100644 --- a/src/osd/osdnet.h +++ b/src/osd/osdnet.h @@ -28,6 +28,6 @@ private: #define CREATE_NETDEV(name) class netdev *name(const char *ifname, class device_network_interface *ifdev, int rate) typedef class netdev *(*create_netdev)(const char *ifname, class device_network_interface *ifdev, int rate); -class netdev *open_netdev(const char *name, class device_network_interface *ifdev, int rate); +class netdev *open_netdev(int id, class device_network_interface *ifdev, int rate); void add_netdev(const char *name, create_netdev func); #endif |